Skip to Content
API ReferenceList Checks

List Checks

Retrieve a list of all monitoring checks in your account.

Endpoint

GET /v1/public/checks

Query Parameters

ParameterTypeDefaultDescription
limitinteger25Number of results per page (max 100)
pageinteger1Page number for offset pagination
cursorstring-nextCursor value from a previous response, for cursor pagination
statusstringallFilter by status: all, online, offline, degraded or unknown. Any other value returns 400
folderstring-Only checks in this folder, by its full path, such as Personal/Radio
recursivebooleanfalseWith folder, also include checks in its subfolders. Any value other than true or false returns 400
includestring-Comma-separated extras to add to each check. Supported: uptime. Any other value returns 400
includeTotalbooleantrueSet to false to skip counting. total and totalPages are then null

Checks are returned in the same order as in your dashboard.

Filtering by Folder

folder takes the full path of the folder, with / between levels, as it appears in the folder field of each check. Leading and trailing slashes are ignored. Without recursive, only checks directly in that folder are returned:

curl -H "X-Api-Key: ek_live_..." "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks?folder=Personal/Radio"

Add recursive=true to include every subfolder too, so Personal/Radio/Live matches but Personal/Radio-old does not:

curl -H "X-Api-Key: ek_live_..." "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks?folder=Personal/Radio&recursive=true"

folder combines with status and both pagination methods. When folder is set, total is always returned, even with includeTotal=false.

Including Uptime

Add include=uptime to get uptime figures on every listed check, so you do not need one stats call per check:

curl -H "X-Api-Key: ek_live_..." "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks?include=uptime"

Each check then carries three extra fields:

FieldTypeDescription
uptime24hnumbernull
uptime30dnumbernull
avgResponseTime24hnumbernull

A field is null when there is no data for the window. If the lookup fails, the list still returns with all three set to null. The 24h figures are cached for about 5 minutes and the 30d figure for about 1 hour.

Pagination

The API supports two pagination methods:

Offset Pagination

Use page and limit parameters:

curl -H "X-Api-Key: ek_live_..." \ "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks?page=2&limit=10"

Cursor Pagination

Pass the nextCursor value from the previous response as cursor. When cursor is set, page is ignored:

curl -H "X-Api-Key: ek_live_..." \ "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks?cursor=eyJvcmRlckluZGV4IjoxMDAwLCJpZCI6ImFiYzEyMyJ9&limit=10"

Response

{ "data": [ { "id": "abc123", "name": "Production Website", "url": "https://example.com", "status": "online", "lastChecked": 1736951400000, "responseTime": 245, "lastStatusCode": 200, "type": "website", "checkFrequency": 5, "region": "vps-eu-1", "folder": null, "severity": null, "lastError": null, "disabled": false, "maintenanceMode": false, "maintenanceUntil": null, "maintenanceScheduledStart": null, "maintenanceRecurring": null, "sslCertificate": { "valid": true, "issuer": "Let's Encrypt", "subject": "example.com", "validFrom": 1736899200000, "validTo": 1744675200000, "daysUntilExpiry": 89, "lastChecked": 1736944200000 }, "domainExpiry": null, "createdAt": 1717236000000, "updatedAt": 1736951400000 } ], "meta": { "page": 1, "limit": 25, "total": 12, "totalPages": 1, "hasNext": false, "hasPrev": false, "nextCursor": "eyJvcmRlckluZGV4IjoxMDAwLCJpZCI6ImFiYzEyMyJ9" } }

Each item in data is a check object. See Get Check for every field. All timestamps are Unix epoch milliseconds.

meta

FieldTypeDescription
pagenumberCurrent page number
limitnumberResults per page
totalnumber | nullTotal matching checks. null when includeTotal=false
totalPagesnumber | nullTotal pages at this limit. null when includeTotal=false
hasNextbooleanWhether another page exists
hasPrevbooleanWhether a previous page exists. Always true when cursor is set
nextCursorstring | nullPass as cursor to fetch the next page. null when the page is empty

Note: status updates in real time on every state change. The timing fields (lastChecked, responseTime, lastStatusCode) are synced on status changes and at least once every 24 hours. For a check that has been stable for a while, lastChecked reflects the last sync, not the last probe. For per-probe data, use the check history endpoint.

Error Responses

StatusBodyCause
400{"error": "Invalid status. Allowed: all, online, offline, degraded, unknown"}Unsupported status value
400{"error": "Invalid include: ... Allowed: uptime"}Unsupported include value

Code Examples

cURL

curl -H "X-Api-Key: ek_live_your_key_here" \ "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks?limit=10&status=offline"

JavaScript

const response = await fetch( "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks?limit=10", { headers: { "X-Api-Key": "ek_live_your_key_here", }, } ); const data = await response.json(); console.log(data);

Python

import requests response = requests.get( "https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks", headers={"X-Api-Key": "ek_live_your_key_here"}, params={"limit": 10} ) data = response.json() print(data)
Last updated on