API Reference
Manage your monitors, incidents, notifications, and more programmatically via the UptimeMonitorX REST API.
Authentication
All API requests require a valid API key. Create and manage API keys from Dashboard > API Keys.
Creating an API Key
- 1Go to Dashboard > API Keys
- 2Click "Create API Key"
- 3Give it a descriptive name (e.g. "CI/CD Integration")
- 4Copy the generated key - it won't be shown again
- 5Store it securely (env variable, secrets manager)
# Include the API key in the Authorization header:
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://uptimemonitoring.services/api/monitors
Base URL
https://uptimemonitoring.services/apiAll endpoints are relative to this base URL. Responses are JSON.
Rate Limits
| Plan | Requests / Day | Max API Keys |
|---|---|---|
| Free | 100 | 1 |
| Pro | 5,000 | 5 |
| Business | 50,000 | 20 |
| Enterprise | 100,000 | 50 |
Rate limit headers are included in every response. API usage is logged per key.
Endpoints
Monitors
GET
/api/monitorsList all monitors with current status, latency, and check countsPOST
/api/monitorsCreate a new monitor (HTTP, TCP, Ping, or Server)GET
/api/monitors/:idGet details for a specific monitor including latest checksPUT
/api/monitors/:idUpdate monitor configuration (URL, interval, notifications, etc.)DELETE
/api/monitors/:idDelete a monitor and its check historyPOST
/api/monitors/bulk-actionBulk pause, resume, or delete multiple monitorsPOST
/api/monitors/importBulk import monitors from CSVGET
/api/monitors/exportExport all monitors as CSVIncidents
GET
/api/incidentsList incidents with optional monitor filter and date rangeGET
/api/incidents/:idGet incident details including diagnostics and resolutionHeartbeats
GET
/api/heartbeatsList all heartbeat monitorsPOST
/api/heartbeatsCreate a new heartbeat monitorGET
/api/heartbeats/:idGet heartbeat details and ping historyPUT
/api/heartbeats/:idUpdate heartbeat configurationDELETE
/api/heartbeats/:idDelete a heartbeat monitorPOST
/api/heartbeats/:id/pingSend a heartbeat ping (call from your cron job)Domain Monitors
GET
/api/domain-monitorsList all domain monitorsPOST
/api/domain-monitorsAdd a new domain to monitorDELETE
/api/domain-monitors/:idRemove a domain monitorDNS Monitors
GET
/api/dns-monitorsList all DNS monitorsPOST
/api/dns-monitorsCreate a new DNS monitorDELETE
/api/dns-monitors/:idRemove a DNS monitorNotifications
GET
/api/notificationsList all notification channelsPOST
/api/notificationsCreate a new notification channelPUT
/api/notifications/:idUpdate a notification channelDELETE
/api/notifications/:idDelete a notification channelStatus Pages
GET
/api/status-pagesList all status pagesPOST
/api/status-pagesCreate a new status pagePUT
/api/status-pages/:idUpdate status page settings and monitorsDELETE
/api/status-pages/:idDelete a status pageAnalytics & Reports
GET
/api/analyticsGet uptime analytics for all or specific monitorsGET
/api/reportsGenerate SLA uptime reports with custom date rangesTeam
GET
/api/teamList team members and pending invitesPOST
/api/teamInvite a new team member by emailDELETE
/api/team/:idRemove a team memberMaintenance
GET
/api/maintenanceList maintenance windowsPOST
/api/maintenanceCreate a maintenance windowPUT
/api/maintenance/:idUpdate a maintenance windowDELETE
/api/maintenance/:idDelete a maintenance windowBilling
GET
/api/billingGet current subscription, plan details, and usageExample: Create a Monitor
curl -X POST https://uptimemonitoring.services/api/monitors \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Website",
"url": "https://example.com",
"type": "http",
"interval": 300,
"method": "GET"
}'// Response (201 Created)
{
"id": "abc123...",
"name": "My Website",
"url": "https://example.com",
"type": "http",
"status": "unknown",
"interval": 300,
"createdAt": "2026-04-05T10:00:00.000Z"
}Error Handling
The API returns standard HTTP status codes:
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created - resource created successfully |
| 400 | Bad Request - invalid parameters |
| 401 | Unauthorized - missing or invalid API key |
| 403 | Forbidden - insufficient permissions |
| 404 | Not Found - resource doesn't exist |
| 429 | Rate Limited - exceeded daily API limit |
| 500 | Server Error - something went wrong on our end |
Get Started with the API
Create your first API key from the dashboard and start integrating UptimeMonitorX into your CI/CD pipeline, scripts, or custom dashboards.