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

  1. 1Go to Dashboard > API Keys
  2. 2Click "Create API Key"
  3. 3Give it a descriptive name (e.g. "CI/CD Integration")
  4. 4Copy the generated key - it won't be shown again
  5. 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/api

All endpoints are relative to this base URL. Responses are JSON.

Rate Limits

PlanRequests / DayMax API Keys
Free1001
Pro5,0005
Business50,00020
Enterprise100,00050

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 counts
POST/api/monitorsCreate a new monitor (HTTP, TCP, Ping, or Server)
GET/api/monitors/:idGet details for a specific monitor including latest checks
PUT/api/monitors/:idUpdate monitor configuration (URL, interval, notifications, etc.)
DELETE/api/monitors/:idDelete a monitor and its check history
POST/api/monitors/bulk-actionBulk pause, resume, or delete multiple monitors
POST/api/monitors/importBulk import monitors from CSV
GET/api/monitors/exportExport all monitors as CSV

Incidents

GET/api/incidentsList incidents with optional monitor filter and date range
GET/api/incidents/:idGet incident details including diagnostics and resolution

Heartbeats

GET/api/heartbeatsList all heartbeat monitors
POST/api/heartbeatsCreate a new heartbeat monitor
GET/api/heartbeats/:idGet heartbeat details and ping history
PUT/api/heartbeats/:idUpdate heartbeat configuration
DELETE/api/heartbeats/:idDelete a heartbeat monitor
POST/api/heartbeats/:id/pingSend a heartbeat ping (call from your cron job)

Domain Monitors

GET/api/domain-monitorsList all domain monitors
POST/api/domain-monitorsAdd a new domain to monitor
DELETE/api/domain-monitors/:idRemove a domain monitor

DNS Monitors

GET/api/dns-monitorsList all DNS monitors
POST/api/dns-monitorsCreate a new DNS monitor
DELETE/api/dns-monitors/:idRemove a DNS monitor

Notifications

GET/api/notificationsList all notification channels
POST/api/notificationsCreate a new notification channel
PUT/api/notifications/:idUpdate a notification channel
DELETE/api/notifications/:idDelete a notification channel

Status Pages

GET/api/status-pagesList all status pages
POST/api/status-pagesCreate a new status page
PUT/api/status-pages/:idUpdate status page settings and monitors
DELETE/api/status-pages/:idDelete a status page

Analytics & Reports

GET/api/analyticsGet uptime analytics for all or specific monitors
GET/api/reportsGenerate SLA uptime reports with custom date ranges

Team

GET/api/teamList team members and pending invites
POST/api/teamInvite a new team member by email
DELETE/api/team/:idRemove a team member

Maintenance

GET/api/maintenanceList maintenance windows
POST/api/maintenanceCreate a maintenance window
PUT/api/maintenance/:idUpdate a maintenance window
DELETE/api/maintenance/:idDelete a maintenance window

Billing

GET/api/billingGet current subscription, plan details, and usage

Example: 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:

CodeMeaning
200Success
201Created - resource created successfully
400Bad Request - invalid parameters
401Unauthorized - missing or invalid API key
403Forbidden - insufficient permissions
404Not Found - resource doesn't exist
429Rate Limited - exceeded daily API limit
500Server 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.