Overview
Return the latest raw check results for a monitor from the last 7 days, newest first. Each result is one check run from one probe location.GET https://api.uptimeio.com/api/monitors/{id}/check-results
Authentication
| Header | Required | Description |
|---|---|---|
X-API-Key | Yes (or a Bearer token) | Any API key, including read-only keys. See Authentication. |
X-Project-ID | No | Project that contains the monitor. Defaults to your organization’s default project. |
Path and query parameters
| Parameter | In | Type | Default | Description |
|---|---|---|---|---|
id | path | UUID | required | Monitor ID. |
limit | query | integer | 10 | Maximum number of results, 1-1000. Only results from the last 7 days are returned. |
Response
200 OK
{
"success": true,
"data": {
"results": [
{
"id": "b7a2c1de-3f54-4c21-9d0a-6e1f2a3b4c5d-1767090000000-7",
"timestamp": "2026-09-30T08:20:00.000Z",
"status": "success",
"responseTime": 184,
"statusCode": 200,
"region": "Amsterdam",
"checkType": "HTTP",
"dnsTime": 12,
"connectTime": 31,
"tlsTime": 48,
"ttfbTime": 96
},
{
"id": "b7a2c1de-3f54-4c21-9d0a-6e1f2a3b4c5d-1767089940000-7",
"timestamp": "2026-09-30T08:19:00.000Z",
"status": "failure",
"responseTime": 10000,
"region": "Singapore",
"checkType": "HTTP",
"error": "Request timed out"
}
]
}
}
| Field | Type | Description |
|---|---|---|
id | string | Identifier of the result. |
timestamp | string | When the check ran, ISO 8601. |
status | enum | success or failure. |
responseTime | integer | Response time in milliseconds (0 if none was recorded). |
statusCode | integer | HTTP status code, for HTTP and keyword checks. |
region | string | City name of the probe location that ran the check, for example Amsterdam. Unknown if the location was not recorded. See Probe locations. |
checkType | string | The monitor type. |
error | string | Failure reason, when the check failed. |
dnsTime, connectTime, tlsTime, ttfbTime | integer | Timing breakdown in milliseconds (DNS lookup, TCP connect, TLS handshake, time to first byte), when measured. |
typeSpecificData | object | Extra detail for some monitor types, when recorded. |
Errors
| Status | Code | Cause |
|---|---|---|
| 400 | INVALID_LIMIT | limit is not between 1 and 1000. |
| 401 | AUTHENTICATION_REQUIRED / MISSING_AUTH / INVALID_API_KEY | Missing or invalid credentials. |
| 404 | MONITOR_NOT_FOUND | No monitor with this ID in the project. |
| 500 | CHECK_RESULTS_FAILED | The results could not be loaded. |
Example
curl "https://api.uptimeio.com/api/monitors/MONITOR_ID/check-results?limit=50" \
-H "X-API-Key: YOUR_API_KEY"
const res = await fetch(
'https://api.uptimeio.com/api/monitors/MONITOR_ID/check-results?limit=50',
{ headers: { 'X-API-Key': process.env.UPTIMEIO_API_KEY } },
);
const { data } = await res.json();
console.log(data.results.filter((r) => r.status === 'failure').length, 'failures');
import os
import requests
res = requests.get(
"https://api.uptimeio.com/api/monitors/MONITOR_ID/check-results",
headers={"X-API-Key": os.environ["UPTIMEIO_API_KEY"]},
params={"limit": 50},
)
results = res.json()["data"]["results"]
print(sum(1 for r in results if r["status"] == "failure"), "failures")