Get a monitor Beta
Returns one monitor with its uptime over four periods, its last outage, certificate and domain details, who gets alerts, and all of its settings.
Needs an X-API-Key header whose owner has access to uptime monitoring in the app. The call counts once against your daily quota. See Monitoring API: getting started for authentication, rate limits and errors.
Path parameters
| Name | Type | Description |
|---|---|---|
id required | string | The monitor id. |
Request
Response
- {
- "monitor": {
- "id": "mon_79ce3cf9c4fa56e98af4",
- "name": "Checkout",
- "url": "https://shop.example.com/checkout",
- "host": "shop.example.com",
- "type": "http",
- "port": null,
- "status": "up",
- "active": true,
- "statusCode": 200,
- "responseMs": 231,
- "error": null,
- "intervalMinutes": 15,
- "regions": ["default", "eu"],
- "importance": "high",
- "tags": ["production", "shop"],
- "lastCheckedAt": "2026-09-17T09:30:04.221Z",
- "lastChangedAt": "2026-09-16T22:41:10.502Z",
- "createdAt": "2026-08-02T14:22:51.000Z",
- "firstCheckAt": "2026-08-02T14:22:52.310Z",
- "uptime": {
- "24h": { "uptimePct": 100, "outages": 0, "downtimeSeconds": 0, "mtbfSeconds": null, "coveredSeconds": 86400 },
- "7d": { "uptimePct": 99.86, "outages": 1, "downtimeSeconds": 840, "mtbfSeconds": 603960, "coveredSeconds": 604800 },
- "30d": { "uptimePct": 99.9, "outages": 2, "downtimeSeconds": 2460, "mtbfSeconds": 1287270, "coveredSeconds": 2577000 },
- "365d": { "uptimePct": 99.9, "outages": 2, "downtimeSeconds": 2460, "mtbfSeconds": 1287270, "coveredSeconds": 2577000 }
- },
- "lastOutage": {
- "startedAt": "2026-09-16T22:27:10.114Z",
- "resolvedAt": "2026-09-16T22:41:10.502Z",
- "ongoing": false,
- "cause": "HTTP 502",
- "duringMaintenance": false
- },
- "maintenance": {
- "active": null,
- "upcoming": [
- { "occurrenceId": "48213", "maintenanceId": "mw_3f9a0c1d2e4b5a6c7d8e", "description": "Weekly database backup",
- "from": "2026-09-20T02:00:00.000Z", "to": "2026-09-20T03:00:00.000Z", "active": false }
- ]
- },
- "alertContacts": [{ "id": "ct_5b8d1f0a9c2e4d6f7a83", "name": "Night shift" }],
- "alertTeams": [{ "id": "tm_2c7e91a4b6d0f3e85a17", "name": "Support" }],
- "ssl": { "expiresAt": "2026-11-28T23:59:59.000Z", "issuer": "Let's Encrypt", "checkedAt": "2026-09-17T06:00:12.000Z" },
- "domain": { "name": "example.com", "expiresAt": "2027-03-14T00:00:00.000Z", "checkedAt": "2026-09-17T03:12:40.000Z", "error": null },
- "recipients": [{ "id": 42, "name": "Sam Taylor", "email": "[email protected]" }],
- "settings": {
- "name": "Checkout",
- "url": "https://shop.example.com/checkout",
- "intervalMinutes": 15,
- "regions": ["default", "eu"],
- "tags": ["production", "shop"],
- "timeoutSeconds": 30,
- "shouldContain": "Place order",
- "shouldNotContain": "",
- "postData": "",
- "requestHeaders": [],
- "authUsername": "",
- "hasAuthPassword": false,
- "verifyCertificate": true,
- "sslDownDays": 0,
- "importance": "high",
- "recipients": [42],
- "contacts": ["ct_5b8d1f0a9c2e4d6f7a83"],
- "teams": ["tm_2c7e91a4b6d0f3e85a17"],
- "alertAfterMinutes": 2,
- "resendEveryMinutes": 0,
- "notifyBackUp": true,
- "alertMessage": ""
- }
- },
- "usage": { "used": 14, "dailyLimit": 100, "tier": "free" }
- }
Detail fields
The detail has the same basic fields as the list, including type and port (without uptime24h, checks24h, sslExpiresAt and domainExpiresAt), plus:
| Field | Type | Description |
|---|---|---|
firstCheckAt | string | null | When the monitor was first checked. |
uptime | object | Keyed by 24h, 7d, 30d and 365d. Each period only covers time since the first check, so a new monitor isn't marked down for time before it existed. |
uptime.*.uptimePct | number | null | Percentage of the covered time the monitor was up, to two decimal places. null before the first check. |
uptime.*.outages | integer | Number of outages that overlap the period. |
uptime.*.downtimeSeconds | integer | Total time down in the period. |
uptime.*.mtbfSeconds | integer | null | Mean time between failures: up time divided by the number of outages. null with no outages. |
uptime.*.coveredSeconds | integer | How much of the period the figures cover. Time inside a maintenance window is left out, and downtime during maintenance isn't counted. |
lastOutage | object | null | The most recent outage: startedAt, resolvedAt (null while ongoing), ongoing, cause and duringMaintenance (true when all of its downtime fell inside maintenance). null if it has never been down. |
maintenance | object | Maintenance covering this monitor: active is the occurrence running now, or null, and upcoming lists up to 5 more. Each has occurrenceId, maintenanceId, description, from, to and active. See Maintenance windows. |
alertContacts, alertTeams | object[] | The alert contacts and teams this monitor alerts, as { id, name }. The same ids are in settings.contacts and settings.teams; the names are here so you don't have to fetch the contact list to label them. Empty arrays when the monitor has none. |
ssl | object | null | expiresAt, issuer and checkedAt for the certificate. |
domain | object | null | name, expiresAt, checkedAt and error for the domain registration lookup. |
recipients | object[] | Who gets alerts: id, name and email of each workspace user. The monitor's alert contacts and teams are in alertContacts and alertTeams. |
settings | object | Every setting, in the shape you send them. hasAuthPassword tells you whether a password is stored; the password itself is never returned. |
Errors
| Status | When |
|---|---|
401 | The API key is missing or invalid. |
403 | The key's owner doesn't have access to uptime monitoring, or the key isn't linked to a workspace. |
404 | No monitor with that id in your workspace. |
405 | The endpoint doesn't accept that method. |
429 | A rate limit or your daily quota was hit. Read Retry-After, in seconds. |
500 | Something went wrong on our side. Try again. |
503 | The API is temporarily unavailable. Try again shortly. |
Errors are JSON: { "error": "message" }. See Monitoring API errors.
Related
- List monitors: every monitor in the workspace
- Monitor settings: what the settings object holds
- Summary: uptime for any period