Skip to content

API reference

Monitors

Monitors endpoints of the StatusTick REST API: list monitors, create a monitor, locations a monitor can be checked from, check a target once without saving it.

List monitors

GET/v1/monitors

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Query Parameters

query?string

Filter, e.g. name:*api*, status:ACTIVE, intervalSeconds>30.

limit?integer
Rangevalue <= 100
Default20
page?integer
Default0
order?string
Default"id"
orderBy?string
Default"ASC"

Value in

  • "ASC"
  • "DESC"

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/monitors?query=name%3A*shop*"
{  "total": 1,  "data": [    {      "id": "mnt_4KrVK3M1DqhDTFouCffKie",      "name": "Shop",      "slug": "shop",      "url": "https://shop.example.com",      "type": "HTTP",      "intervalSeconds": 60,      "lastCheckStatus": "UP",      "lastResponseTimeMs": 184,      "inMaintenance": false,      "status": "ACTIVE"    }  ]}

Create a monitor

POST/v1/monitors

Needs a READ_WRITE key.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/monitors" \  -H "Content-Type: application/json" \  -d '{    "name": "Shop",    "url": "https://shop.example.com",    "type": "HTTP",    "intervalSeconds": 60,    "timeout": 10  }'
{  "id": "mnt_4KrVK3M1DqhDTFouCffKie",  "name": "Shop",  "slug": "shop",  "url": "https://shop.example.com",  "type": "HTTP",  "intervalSeconds": 60,  "settings": {    "timeoutSeconds": 10,    "httpMethod": "GET",    "expectedStatusCodes": [      200    ],    "zones": [      "US_EAST",      "US_WEST",      "EUROPE_WEST"    ],    "requiredFailingZones": 2,    "sslCheckEnabled": true,    "ipVersion": "AUTO"  },  "locationIds": [    "loc_70QYAWZXHXgGldJh1yUxrz",    "loc_78yAMZ5leDEBhjfpSYx1eo",    "loc_39suaI3E3GFcUucbpaIpTi"  ],  "nextCheckAt": "2026-09-28T10:01:00Z",  "lastCheckAt": "2026-09-28T10:00:00Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 184,  "certificate": {    "validFrom": "2026-08-01T00:00:00Z",    "validTo": "2026-10-30T23:59:59Z",    "issuer": "Let's Encrypt",    "subject": "shop.example.com",    "valid": true,    "error": null,    "checkedAt": "2026-09-28T03:00:00Z"  },  "heartbeat": null,  "domain": {    "name": "example.com",    "expiresAt": "2027-08-13T04:00:00Z",    "registrar": "Example Registrar",    "checkedAt": "2026-09-28T03:00:00Z"  },  "pageAssets": null,  "browser": null,  "vendorIds": [    "stripe"  ],  "inMaintenance": false,  "locationOffline": false,  "pausedReason": null,  "status": "ACTIVE",  "createdAt": "2026-09-01T12:00:00Z",  "updatedAt": "2026-09-28T10:00:00Z"}
GET/v1/monitors/locations

The public locations with a running drone (one per zone), then your organization's private locations. Use the id values in a monitor's locationIds setting. BROWSER monitors take the locations of GET /v1/monitors/browser-zones.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Response Body

application/json

curl -X GET "https://example.com/v1/monitors/locations"
[  {    "id": "loc_70QYAWZXHXgGldJh1yUxrz",    "type": "PUBLIC",    "name": "US East",    "regionCode": "us-east"  },  {    "id": "loc_5HbRz8TtYw3nMaK1pQv0Ud",    "type": "PRIVATE",    "name": "Office network",    "regionCode": null  }]
POST/v1/monitors/test

Needs a READ_WRITE key. One check of an unsaved target from one location; nothing is stored. 10 tests a minute.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v1/monitors/test" \  -H "Content-Type: application/json" \  -d '{    "url": "https://shop.example.com",    "type": "HTTP",    "expectedStatusCodes": [      200    ]  }'
{  "status": "UP",  "statusCode": 200,  "responseTimeMs": 184,  "error": null,  "zone": "us-east",  "checkedAt": "2026-09-28T10:00:01Z"}

Move monitors to a group

POST/v1/monitors/bulk/group

Needs a READ_WRITE key. A null or blank group takes the monitors out of their groups. All of them change, or none.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/monitors/bulk/group" \  -H "Content-Type: application/json" \  -d '{    "monitorIds": [      "mnt_4KrVK3M1DqhDTFouCffKie"    ],    "group": "Checkout"  }'
{  "updated": 2}

Add and remove tags

POST/v1/monitors/bulk/tags

Needs a READ_WRITE key. All of the monitors change, or none.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/monitors/bulk/tags" \  -H "Content-Type: application/json" \  -d '{    "monitorIds": [      "mnt_4KrVK3M1DqhDTFouCffKie"    ],    "add": [      "prod"    ],    "remove": [      "beta"    ]  }'
{  "updated": 2}
POST/v1/monitors/bulk/update

Needs a READ_WRITE key. The rules of single updates apply; a refusal names the first monitor refused and nothing changes.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/monitors/bulk/update" \  -H "Content-Type: application/json" \  -d '{    "monitorIds": [      "mnt_4KrVK3M1DqhDTFouCffKie"    ],    "intervalSeconds": 60  }'
{  "updated": 2}

Mute monitors

POST/v1/monitors/bulk/mute

Needs a READ_WRITE key. Muted monitors keep checking and opening incidents but send no alert. A null until mutes until unmuted.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/monitors/bulk/mute" \  -H "Content-Type: application/json" \  -d '{    "monitorIds": [      "mnt_4KrVK3M1DqhDTFouCffKie"    ],    "until": "2026-09-28T18:00:00Z"  }'
{  "updated": 2}

Unmute monitors

POST/v1/monitors/bulk/unmute

Needs a READ_WRITE key.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/monitors/bulk/unmute" \  -H "Content-Type: application/json" \  -d '{    "monitorIds": [      "mnt_4KrVK3M1DqhDTFouCffKie"    ]  }'
{  "updated": 2}

Get a monitor

GET/v1/monitors/{monitorId}

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie"
{  "id": "mnt_4KrVK3M1DqhDTFouCffKie",  "name": "Shop",  "slug": "shop",  "url": "https://shop.example.com",  "type": "HTTP",  "intervalSeconds": 60,  "settings": {    "timeoutSeconds": 10,    "httpMethod": "GET",    "expectedStatusCodes": [      200    ],    "zones": [      "US_EAST",      "US_WEST",      "EUROPE_WEST"    ],    "requiredFailingZones": 2,    "sslCheckEnabled": true,    "ipVersion": "AUTO"  },  "locationIds": [    "loc_70QYAWZXHXgGldJh1yUxrz",    "loc_78yAMZ5leDEBhjfpSYx1eo",    "loc_39suaI3E3GFcUucbpaIpTi"  ],  "nextCheckAt": "2026-09-28T10:01:00Z",  "lastCheckAt": "2026-09-28T10:00:00Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 184,  "certificate": {    "validFrom": "2026-08-01T00:00:00Z",    "validTo": "2026-10-30T23:59:59Z",    "issuer": "Let's Encrypt",    "subject": "shop.example.com",    "valid": true,    "error": null,    "checkedAt": "2026-09-28T03:00:00Z"  },  "heartbeat": null,  "domain": {    "name": "example.com",    "expiresAt": "2027-08-13T04:00:00Z",    "registrar": "Example Registrar",    "checkedAt": "2026-09-28T03:00:00Z"  },  "pageAssets": null,  "browser": null,  "vendorIds": [    "stripe"  ],  "inMaintenance": false,  "locationOffline": false,  "pausedReason": null,  "status": "ACTIVE",  "createdAt": "2026-09-01T12:00:00Z",  "updatedAt": "2026-09-28T10:00:00Z"}
PATCH/v1/monitors/{monitorId}

Needs a READ_WRITE key. Leave out the fields you do not change.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie" \  -H "Content-Type: application/json" \  -d '{    "name": "Shop EU",    "intervalSeconds": 30  }'
{  "id": "string",  "name": "string",  "slug": "string",  "url": "string",  "type": "HTTP",  "intervalSeconds": 0,  "settings": {    "notificationDelayMinutes": 0,    "timeoutSeconds": 0,    "sslCheckEnabled": true,    "redirectCheckEnabled": true,    "httpMethod": "GET",    "requestHeaders": {      "property1": "string",      "property2": "string"    },    "requestBody": "string",    "requestBodyType": "RAW",    "expectedStatusCodes": [      0    ],    "expectedResponseHeaders": {      "property1": "string",      "property2": "string"    },    "responseTextCheck": "string",    "responseTextMode": "CONTAINS",    "responseTextCaseSensitive": true,    "jsonAssertions": [      {        "path": "string",        "equals": "string",        "exists": true      }    ],    "zones": [      "GLOBAL"    ],    "locationIds": [      "string"    ],    "requiredFailingZones": 0,    "blockedOpensIncident": true,    "degradedResponseTimeMs": 0,    "ipVersion": "AUTO",    "sslExpiryAlertDays": [      0    ],    "sslOnTCP": true,    "domainExpiryCheckEnabled": true,    "domainExpiryAlertDays": [      0    ],    "assetCheckEnabled": true,    "assetIgnoreHosts": [      "string"    ],    "dnsRecordType": "string"  },  "locationIds": [    "string"  ],  "nextCheckAt": "2019-08-24T14:15:22Z",  "lastCheckAt": "2019-08-24T14:15:22Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 0,  "certificate": {    "validFrom": "string",    "validTo": "string",    "issuer": "string",    "subject": "string",    "valid": true,    "error": "string",    "checkedAt": "string"  },  "heartbeat": {    "pingPath": "string",    "pingURL": "string",    "graceSeconds": 0,    "lastPingAt": "string",    "lastDurationMs": 0,    "cron": "string",    "timeZone": "string",    "rotatingUntil": "string",    "urlLastUsedAt": "string",    "previousURLLastUsedAt": "string"  },  "domain": {    "name": "string",    "expiresAt": "string",    "registrar": "string",    "checkedAt": "string"  },  "pageAssets": {},  "browser": {    "script": "string",    "language": "TYPESCRIPT",    "variables": {      "property1": "string",      "property2": "string"    },    "allowedHosts": [      "string"    ],    "slowStepThresholdsMs": {      "property1": 1,      "property2": 1    }  },  "database": {    "database": "string",    "user": "string",    "password": "string",    "userEnv": "string",    "passwordEnv": "string",    "tls": false,    "tlsVerify": true,    "query": "string",    "expectedValue": "string"  },  "mcp": {    "authHeaderName": "string",    "authHeaderValue": "string",    "toolCount": 0,    "toolsHash": "string",    "schemaChangedAt": "2019-08-24T14:15:22Z",    "serverName": "string",    "serverVersion": "string",    "protocolVersion": "string"  },  "protocol": {    "grpcService": "string",    "tlsMode": "NONE",    "tlsVerify": true,    "requireStartTLS": false  },  "vendorIds": [    "string"  ],  "inMaintenance": true,  "locationOffline": true,  "tags": [    "string"  ],  "group": "string",  "managedBy": "KUBERNETES",  "managedKey": "string",  "status": "ACTIVE",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}

Delete a monitor

DELETE/v1/monitors/{monitorId}

Needs a READ_WRITE key.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie"
Empty

Change check settings

PATCH/v1/monitors/{monitorId}/settings

Needs a READ_WRITE key. Leave out the settings you do not change.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie/settings" \  -H "Content-Type: application/json" \  -d '{    "httpMethod": "GET",    "expectedStatusCodes": [      200,      204    ],    "responseTextCheck": "Add to cart",    "responseTextMode": "CONTAINS",    "locationIds": [      "loc_70QYAWZXHXgGldJh1yUxrz",      "loc_39suaI3E3GFcUucbpaIpTi",      "loc_3oCn6fmnpuNn0HRvxLcsVp"    ],    "degradedResponseTimeMs": 1500  }'
{  "id": "string",  "name": "string",  "slug": "string",  "url": "string",  "type": "HTTP",  "intervalSeconds": 0,  "settings": {    "notificationDelayMinutes": 0,    "timeoutSeconds": 0,    "sslCheckEnabled": true,    "redirectCheckEnabled": true,    "httpMethod": "GET",    "requestHeaders": {      "property1": "string",      "property2": "string"    },    "requestBody": "string",    "requestBodyType": "RAW",    "expectedStatusCodes": [      0    ],    "expectedResponseHeaders": {      "property1": "string",      "property2": "string"    },    "responseTextCheck": "string",    "responseTextMode": "CONTAINS",    "responseTextCaseSensitive": true,    "jsonAssertions": [      {        "path": "string",        "equals": "string",        "exists": true      }    ],    "zones": [      "GLOBAL"    ],    "locationIds": [      "string"    ],    "requiredFailingZones": 0,    "blockedOpensIncident": true,    "degradedResponseTimeMs": 0,    "ipVersion": "AUTO",    "sslExpiryAlertDays": [      0    ],    "sslOnTCP": true,    "domainExpiryCheckEnabled": true,    "domainExpiryAlertDays": [      0    ],    "assetCheckEnabled": true,    "assetIgnoreHosts": [      "string"    ],    "dnsRecordType": "string"  },  "locationIds": [    "string"  ],  "nextCheckAt": "2019-08-24T14:15:22Z",  "lastCheckAt": "2019-08-24T14:15:22Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 0,  "certificate": {    "validFrom": "string",    "validTo": "string",    "issuer": "string",    "subject": "string",    "valid": true,    "error": "string",    "checkedAt": "string"  },  "heartbeat": {    "pingPath": "string",    "pingURL": "string",    "graceSeconds": 0,    "lastPingAt": "string",    "lastDurationMs": 0,    "cron": "string",    "timeZone": "string",    "rotatingUntil": "string",    "urlLastUsedAt": "string",    "previousURLLastUsedAt": "string"  },  "domain": {    "name": "string",    "expiresAt": "string",    "registrar": "string",    "checkedAt": "string"  },  "pageAssets": {},  "browser": {    "script": "string",    "language": "TYPESCRIPT",    "variables": {      "property1": "string",      "property2": "string"    },    "allowedHosts": [      "string"    ],    "slowStepThresholdsMs": {      "property1": 1,      "property2": 1    }  },  "database": {    "database": "string",    "user": "string",    "password": "string",    "userEnv": "string",    "passwordEnv": "string",    "tls": false,    "tlsVerify": true,    "query": "string",    "expectedValue": "string"  },  "mcp": {    "authHeaderName": "string",    "authHeaderValue": "string",    "toolCount": 0,    "toolsHash": "string",    "schemaChangedAt": "2019-08-24T14:15:22Z",    "serverName": "string",    "serverVersion": "string",    "protocolVersion": "string"  },  "protocol": {    "grpcService": "string",    "tlsMode": "NONE",    "tlsVerify": true,    "requireStartTLS": false  },  "vendorIds": [    "string"  ],  "inMaintenance": true,  "locationOffline": true,  "tags": [    "string"  ],  "group": "string",  "managedBy": "KUBERNETES",  "managedKey": "string",  "status": "ACTIVE",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
PUT/v1/monitors/{monitorId}/edit

Needs a READ_WRITE key from an owner or admin. Send any of monitor (as in PATCH /v1/monitors/{monitorId}), settings (as in PATCH /v1/monitors/{monitorId}/settings), browser or database; leave out what you do not change. The audit log gets one monitor.updated entry listing the fields that changed.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie/edit" \  -H "Content-Type: application/json" \  -d '{    "monitor": {      "name": "Shop EU"    },    "settings": {      "expectedStatusCodes": [        200,        204      ]    }  }'
{  "id": "string",  "name": "string",  "slug": "string",  "url": "string",  "type": "HTTP",  "intervalSeconds": 0,  "settings": {    "notificationDelayMinutes": 0,    "timeoutSeconds": 0,    "sslCheckEnabled": true,    "redirectCheckEnabled": true,    "httpMethod": "GET",    "requestHeaders": {      "property1": "string",      "property2": "string"    },    "requestBody": "string",    "requestBodyType": "RAW",    "expectedStatusCodes": [      0    ],    "expectedResponseHeaders": {      "property1": "string",      "property2": "string"    },    "responseTextCheck": "string",    "responseTextMode": "CONTAINS",    "responseTextCaseSensitive": true,    "jsonAssertions": [      {        "path": "string",        "equals": "string",        "exists": true      }    ],    "zones": [      "GLOBAL"    ],    "locationIds": [      "string"    ],    "requiredFailingZones": 0,    "blockedOpensIncident": true,    "degradedResponseTimeMs": 0,    "ipVersion": "AUTO",    "sslExpiryAlertDays": [      0    ],    "sslOnTCP": true,    "domainExpiryCheckEnabled": true,    "domainExpiryAlertDays": [      0    ],    "assetCheckEnabled": true,    "assetIgnoreHosts": [      "string"    ],    "dnsRecordType": "string"  },  "locationIds": [    "string"  ],  "nextCheckAt": "2019-08-24T14:15:22Z",  "lastCheckAt": "2019-08-24T14:15:22Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 0,  "certificate": {    "validFrom": "string",    "validTo": "string",    "issuer": "string",    "subject": "string",    "valid": true,    "error": "string",    "checkedAt": "string"  },  "heartbeat": {    "pingPath": "string",    "pingURL": "string",    "graceSeconds": 0,    "lastPingAt": "string",    "lastDurationMs": 0,    "cron": "string",    "timeZone": "string",    "rotatingUntil": "string",    "urlLastUsedAt": "string",    "previousURLLastUsedAt": "string"  },  "domain": {    "name": "string",    "expiresAt": "string",    "registrar": "string",    "checkedAt": "string"  },  "pageAssets": {},  "browser": {    "script": "string",    "language": "TYPESCRIPT",    "variables": {      "property1": "string",      "property2": "string"    },    "allowedHosts": [      "string"    ],    "slowStepThresholdsMs": {      "property1": 1,      "property2": 1    }  },  "database": {    "database": "string",    "user": "string",    "password": "string",    "userEnv": "string",    "passwordEnv": "string",    "tls": false,    "tlsVerify": true,    "query": "string",    "expectedValue": "string"  },  "mcp": {    "authHeaderName": "string",    "authHeaderValue": "string",    "toolCount": 0,    "toolsHash": "string",    "schemaChangedAt": "2019-08-24T14:15:22Z",    "serverName": "string",    "serverVersion": "string",    "protocolVersion": "string"  },  "protocol": {    "grpcService": "string",    "tlsMode": "NONE",    "tlsVerify": true,    "requireStartTLS": false  },  "vendorIds": [    "string"  ],  "inMaintenance": true,  "locationOffline": true,  "tags": [    "string"  ],  "group": "string",  "managedBy": "KUBERNETES",  "managedKey": "string",  "status": "ACTIVE",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}

Pause a monitor

POST/v1/monitors/{monitorId}/pause

Needs a READ_WRITE key. No checks run until it is resumed.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie/pause"
{  "id": "string",  "name": "string",  "slug": "string",  "url": "string",  "type": "HTTP",  "intervalSeconds": 0,  "settings": {    "notificationDelayMinutes": 0,    "timeoutSeconds": 0,    "sslCheckEnabled": true,    "redirectCheckEnabled": true,    "httpMethod": "GET",    "requestHeaders": {      "property1": "string",      "property2": "string"    },    "requestBody": "string",    "requestBodyType": "RAW",    "expectedStatusCodes": [      0    ],    "expectedResponseHeaders": {      "property1": "string",      "property2": "string"    },    "responseTextCheck": "string",    "responseTextMode": "CONTAINS",    "responseTextCaseSensitive": true,    "jsonAssertions": [      {        "path": "string",        "equals": "string",        "exists": true      }    ],    "zones": [      "GLOBAL"    ],    "locationIds": [      "string"    ],    "requiredFailingZones": 0,    "blockedOpensIncident": true,    "degradedResponseTimeMs": 0,    "ipVersion": "AUTO",    "sslExpiryAlertDays": [      0    ],    "sslOnTCP": true,    "domainExpiryCheckEnabled": true,    "domainExpiryAlertDays": [      0    ],    "assetCheckEnabled": true,    "assetIgnoreHosts": [      "string"    ],    "dnsRecordType": "string"  },  "locationIds": [    "string"  ],  "nextCheckAt": "2019-08-24T14:15:22Z",  "lastCheckAt": "2019-08-24T14:15:22Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 0,  "certificate": {    "validFrom": "string",    "validTo": "string",    "issuer": "string",    "subject": "string",    "valid": true,    "error": "string",    "checkedAt": "string"  },  "heartbeat": {    "pingPath": "string",    "pingURL": "string",    "graceSeconds": 0,    "lastPingAt": "string",    "lastDurationMs": 0,    "cron": "string",    "timeZone": "string",    "rotatingUntil": "string",    "urlLastUsedAt": "string",    "previousURLLastUsedAt": "string"  },  "domain": {    "name": "string",    "expiresAt": "string",    "registrar": "string",    "checkedAt": "string"  },  "pageAssets": {},  "browser": {    "script": "string",    "language": "TYPESCRIPT",    "variables": {      "property1": "string",      "property2": "string"    },    "allowedHosts": [      "string"    ],    "slowStepThresholdsMs": {      "property1": 1,      "property2": 1    }  },  "database": {    "database": "string",    "user": "string",    "password": "string",    "userEnv": "string",    "passwordEnv": "string",    "tls": false,    "tlsVerify": true,    "query": "string",    "expectedValue": "string"  },  "mcp": {    "authHeaderName": "string",    "authHeaderValue": "string",    "toolCount": 0,    "toolsHash": "string",    "schemaChangedAt": "2019-08-24T14:15:22Z",    "serverName": "string",    "serverVersion": "string",    "protocolVersion": "string"  },  "protocol": {    "grpcService": "string",    "tlsMode": "NONE",    "tlsVerify": true,    "requireStartTLS": false  },  "vendorIds": [    "string"  ],  "inMaintenance": true,  "locationOffline": true,  "tags": [    "string"  ],  "group": "string",  "managedBy": "KUBERNETES",  "managedKey": "string",  "status": "ACTIVE",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}

Resume a paused monitor

POST/v1/monitors/{monitorId}/resume

Needs a READ_WRITE key.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Response Body

application/json

application/json

curl -X POST "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie/resume"
{  "id": "string",  "name": "string",  "slug": "string",  "url": "string",  "type": "HTTP",  "intervalSeconds": 0,  "settings": {    "notificationDelayMinutes": 0,    "timeoutSeconds": 0,    "sslCheckEnabled": true,    "redirectCheckEnabled": true,    "httpMethod": "GET",    "requestHeaders": {      "property1": "string",      "property2": "string"    },    "requestBody": "string",    "requestBodyType": "RAW",    "expectedStatusCodes": [      0    ],    "expectedResponseHeaders": {      "property1": "string",      "property2": "string"    },    "responseTextCheck": "string",    "responseTextMode": "CONTAINS",    "responseTextCaseSensitive": true,    "jsonAssertions": [      {        "path": "string",        "equals": "string",        "exists": true      }    ],    "zones": [      "GLOBAL"    ],    "locationIds": [      "string"    ],    "requiredFailingZones": 0,    "blockedOpensIncident": true,    "degradedResponseTimeMs": 0,    "ipVersion": "AUTO",    "sslExpiryAlertDays": [      0    ],    "sslOnTCP": true,    "domainExpiryCheckEnabled": true,    "domainExpiryAlertDays": [      0    ],    "assetCheckEnabled": true,    "assetIgnoreHosts": [      "string"    ],    "dnsRecordType": "string"  },  "locationIds": [    "string"  ],  "nextCheckAt": "2019-08-24T14:15:22Z",  "lastCheckAt": "2019-08-24T14:15:22Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 0,  "certificate": {    "validFrom": "string",    "validTo": "string",    "issuer": "string",    "subject": "string",    "valid": true,    "error": "string",    "checkedAt": "string"  },  "heartbeat": {    "pingPath": "string",    "pingURL": "string",    "graceSeconds": 0,    "lastPingAt": "string",    "lastDurationMs": 0,    "cron": "string",    "timeZone": "string",    "rotatingUntil": "string",    "urlLastUsedAt": "string",    "previousURLLastUsedAt": "string"  },  "domain": {    "name": "string",    "expiresAt": "string",    "registrar": "string",    "checkedAt": "string"  },  "pageAssets": {},  "browser": {    "script": "string",    "language": "TYPESCRIPT",    "variables": {      "property1": "string",      "property2": "string"    },    "allowedHosts": [      "string"    ],    "slowStepThresholdsMs": {      "property1": 1,      "property2": 1    }  },  "database": {    "database": "string",    "user": "string",    "password": "string",    "userEnv": "string",    "passwordEnv": "string",    "tls": false,    "tlsVerify": true,    "query": "string",    "expectedValue": "string"  },  "mcp": {    "authHeaderName": "string",    "authHeaderValue": "string",    "toolCount": 0,    "toolsHash": "string",    "schemaChangedAt": "2019-08-24T14:15:22Z",    "serverName": "string",    "serverVersion": "string",    "protocolVersion": "string"  },  "protocol": {    "grpcService": "string",    "tlsMode": "NONE",    "tlsVerify": true,    "requireStartTLS": false  },  "vendorIds": [    "string"  ],  "inMaintenance": true,  "locationOffline": true,  "tags": [    "string"  ],  "group": "string",  "managedBy": "KUBERNETES",  "managedKey": "string",  "status": "ACTIVE",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
PUT/v1/monitors/{monitorId}/vendors

Needs a READ_WRITE key. The list replaces the old one; an empty list removes them all. The monitor's incidents show these vendors first as a possible cause. Vendor ids are those of GET /v1/vendors.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie/vendors" \  -H "Content-Type: application/json" \  -d '{    "vendorIds": [      "stripe",      "github"    ]  }'
{  "id": "string",  "name": "string",  "slug": "string",  "url": "string",  "type": "HTTP",  "intervalSeconds": 0,  "settings": {    "notificationDelayMinutes": 0,    "timeoutSeconds": 0,    "sslCheckEnabled": true,    "redirectCheckEnabled": true,    "httpMethod": "GET",    "requestHeaders": {      "property1": "string",      "property2": "string"    },    "requestBody": "string",    "requestBodyType": "RAW",    "expectedStatusCodes": [      0    ],    "expectedResponseHeaders": {      "property1": "string",      "property2": "string"    },    "responseTextCheck": "string",    "responseTextMode": "CONTAINS",    "responseTextCaseSensitive": true,    "jsonAssertions": [      {        "path": "string",        "equals": "string",        "exists": true      }    ],    "zones": [      "GLOBAL"    ],    "locationIds": [      "string"    ],    "requiredFailingZones": 0,    "blockedOpensIncident": true,    "degradedResponseTimeMs": 0,    "ipVersion": "AUTO",    "sslExpiryAlertDays": [      0    ],    "sslOnTCP": true,    "domainExpiryCheckEnabled": true,    "domainExpiryAlertDays": [      0    ],    "assetCheckEnabled": true,    "assetIgnoreHosts": [      "string"    ],    "dnsRecordType": "string"  },  "locationIds": [    "string"  ],  "nextCheckAt": "2019-08-24T14:15:22Z",  "lastCheckAt": "2019-08-24T14:15:22Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 0,  "certificate": {    "validFrom": "string",    "validTo": "string",    "issuer": "string",    "subject": "string",    "valid": true,    "error": "string",    "checkedAt": "string"  },  "heartbeat": {    "pingPath": "string",    "pingURL": "string",    "graceSeconds": 0,    "lastPingAt": "string",    "lastDurationMs": 0,    "cron": "string",    "timeZone": "string",    "rotatingUntil": "string",    "urlLastUsedAt": "string",    "previousURLLastUsedAt": "string"  },  "domain": {    "name": "string",    "expiresAt": "string",    "registrar": "string",    "checkedAt": "string"  },  "pageAssets": {},  "browser": {    "script": "string",    "language": "TYPESCRIPT",    "variables": {      "property1": "string",      "property2": "string"    },    "allowedHosts": [      "string"    ],    "slowStepThresholdsMs": {      "property1": 1,      "property2": 1    }  },  "database": {    "database": "string",    "user": "string",    "password": "string",    "userEnv": "string",    "passwordEnv": "string",    "tls": false,    "tlsVerify": true,    "query": "string",    "expectedValue": "string"  },  "mcp": {    "authHeaderName": "string",    "authHeaderValue": "string",    "toolCount": 0,    "toolsHash": "string",    "schemaChangedAt": "2019-08-24T14:15:22Z",    "serverName": "string",    "serverVersion": "string",    "protocolVersion": "string"  },  "protocol": {    "grpcService": "string",    "tlsMode": "NONE",    "tlsVerify": true,    "requireStartTLS": false  },  "vendorIds": [    "string"  ],  "inMaintenance": true,  "locationOffline": true,  "tags": [    "string"  ],  "group": "string",  "managedBy": "KUBERNETES",  "managedKey": "string",  "status": "ACTIVE",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
PUT/v1/monitors/{monitorId}/database

Needs a READ_WRITE key. Only for POSTGRES, MYSQL, REDIS and MONGODB monitors. Replaces the connection, credentials and query; send ******** as password to keep the stored one.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

How the agent of a private location connects. Give a stored user and password, or the names of environment variables on the agent (userEnv, passwordEnv), not both for the same field. Results report connect, auth and query time and a short error, never rows.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/monitors/mnt_4KrVK3M1DqhDTFouCffKie/database" \  -H "Content-Type: application/json" \  -d '{    "database": "shop",    "userEnv": "STATUSTICK_SECRET_DB_USER",    "passwordEnv": "STATUSTICK_SECRET_DB_PASSWORD",    "tls": true,    "tlsVerify": true,    "query": "SELECT count(*) FROM orders WHERE created_at > now() - interval \'1 hour\'",    "expectedValue": null  }'
{  "id": "string",  "name": "string",  "slug": "string",  "url": "string",  "type": "HTTP",  "intervalSeconds": 0,  "settings": {    "notificationDelayMinutes": 0,    "timeoutSeconds": 0,    "sslCheckEnabled": true,    "redirectCheckEnabled": true,    "httpMethod": "GET",    "requestHeaders": {      "property1": "string",      "property2": "string"    },    "requestBody": "string",    "requestBodyType": "RAW",    "expectedStatusCodes": [      0    ],    "expectedResponseHeaders": {      "property1": "string",      "property2": "string"    },    "responseTextCheck": "string",    "responseTextMode": "CONTAINS",    "responseTextCaseSensitive": true,    "jsonAssertions": [      {        "path": "string",        "equals": "string",        "exists": true      }    ],    "zones": [      "GLOBAL"    ],    "locationIds": [      "string"    ],    "requiredFailingZones": 0,    "blockedOpensIncident": true,    "degradedResponseTimeMs": 0,    "ipVersion": "AUTO",    "sslExpiryAlertDays": [      0    ],    "sslOnTCP": true,    "domainExpiryCheckEnabled": true,    "domainExpiryAlertDays": [      0    ],    "assetCheckEnabled": true,    "assetIgnoreHosts": [      "string"    ],    "dnsRecordType": "string"  },  "locationIds": [    "string"  ],  "nextCheckAt": "2019-08-24T14:15:22Z",  "lastCheckAt": "2019-08-24T14:15:22Z",  "lastCheckStatus": "UP",  "lastResponseTimeMs": 0,  "certificate": {    "validFrom": "string",    "validTo": "string",    "issuer": "string",    "subject": "string",    "valid": true,    "error": "string",    "checkedAt": "string"  },  "heartbeat": {    "pingPath": "string",    "pingURL": "string",    "graceSeconds": 0,    "lastPingAt": "string",    "lastDurationMs": 0,    "cron": "string",    "timeZone": "string",    "rotatingUntil": "string",    "urlLastUsedAt": "string",    "previousURLLastUsedAt": "string"  },  "domain": {    "name": "string",    "expiresAt": "string",    "registrar": "string",    "checkedAt": "string"  },  "pageAssets": {},  "browser": {    "script": "string",    "language": "TYPESCRIPT",    "variables": {      "property1": "string",      "property2": "string"    },    "allowedHosts": [      "string"    ],    "slowStepThresholdsMs": {      "property1": 1,      "property2": 1    }  },  "database": {    "database": "string",    "user": "string",    "password": "string",    "userEnv": "string",    "passwordEnv": "string",    "tls": false,    "tlsVerify": true,    "query": "string",    "expectedValue": "string"  },  "mcp": {    "authHeaderName": "string",    "authHeaderValue": "string",    "toolCount": 0,    "toolsHash": "string",    "schemaChangedAt": "2019-08-24T14:15:22Z",    "serverName": "string",    "serverVersion": "string",    "protocolVersion": "string"  },  "protocol": {    "grpcService": "string",    "tlsMode": "NONE",    "tlsVerify": true,    "requireStartTLS": false  },  "vendorIds": [    "string"  ],  "inMaintenance": true,  "locationOffline": true,  "tags": [    "string"  ],  "group": "string",  "managedBy": "KUBERNETES",  "managedKey": "string",  "status": "ACTIVE",  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
All docs