API Reference
Integrate UptimeGuard into your workflow using our REST API.
Authentication
All API requests require authentication. Generate an API key from Settings > API Keys. Include it in requests as a header:
Authorization: Bearer zm_your_api_key_hereBase URL
https://api.uptimeguard.com/apiMonitors
List monitors
GET /monitors?teamId=TEAM_IDReturns a paginated list of all monitors for the team.
Get monitor
GET /monitors/:idReturns details for a single monitor including recent checks.
Create monitor
POST /monitors
Content-Type: application/json
{
"name": "My API",
"type": "http",
"url": "https://api.example.com/health",
"interval": 60,
"teamId": "TEAM_ID"
}Update monitor
PUT /monitors/:id
Content-Type: application/json
{
"name": "My API (updated)",
"interval": 30
}Delete monitor
DELETE /monitors/:idPause / resume monitor
PUT /monitors/:id/pause
PUT /monitors/:id/resumeIncidents
List incidents
GET /incidents?teamId=TEAM_ID&limit=20&sort=-createdAtGet incident
GET /incidents/:idAlert channels
List alert channels
GET /alerts?teamId=TEAM_IDCreate alert channel
POST /alerts
Content-Type: application/json
{
"name": "Slack Alerts",
"type": "slack",
"config": {
"webhookUrl": "https://hooks.slack.com/services/..."
},
"teamId": "TEAM_ID"
}Test alert channel
POST /alerts/:id/testStatus pages
List status pages
GET /status-pages?teamId=TEAM_IDCreate status page
POST /status-pages
Content-Type: application/json
{
"name": "My Status Page",
"slug": "my-status",
"visibility": "public",
"teamId": "TEAM_ID"
}Dashboard
Get dashboard stats
GET /dashboard/stats?teamId=TEAM_IDReturns monitor counts, active incidents, issues, top monitor sparklines, and plan summary.
Rate limits
API requests are rate limited to 100 requests per minute per API key. Exceeding the limit returns a 429 Too Many Requests response.
Error handling
All errors return a JSON body with an error field:
{
"error": "Monitor not found"
}| Status Code | Description |
|---|---|
| 400 | Bad request — invalid parameters |
| 401 | Unauthorized — missing or invalid API key |
| 404 | Resource not found |
| 409 | Conflict — resource already exists |
| 429 | Rate limit exceeded |
| 500 | Internal server error |