MonitorsTcp monitors
Get TCP Monitor Check History
Returns paginated check results for a TCP monitor.
GET /api/tcp-monitors/:tcpMonitorPublicId/check-history
Authentication
Requires a valid session.
- Header:
Authorization: Bearer <token>
Parameters
tcpMonitorPublicId(Path, required): TCP monitor public UUID.
Query Parameters
page(number, optional): Page number (default:1). A page counts check cycles, not rows: one cycle has one row per location.limit(number, optional): Cycles per page (default:10; max100). Withformat=csvordownload=1the export defaults apply instead (default10000, max50000rows).status(string, optional):successorfailure(failurealso matchestimeout). On minute rows: no failed location, or at least one.minMs/maxMs(number, optional): Filter by response time range (timingTotal; on minute rows the minute average).from/to(ISO date string, optional): Filter bycheckedAtrange.format(string, optional):json(default) orcsv.download(string, optional):1forces an attachment download.
cURL
curl "https://YOUR_DOMAIN/api/tcp-monitors/44444444-4444-4444-8444-444444444444/check-history?page=1&limit=10" \
-H "Authorization: Bearer $TOKEN"Response
{
"data": [
{
"id": "33c53ac4-a2bc-475c-a904-8d3d6aab2979",
"status": "success",
"success": true,
"errorMessage": null,
"checkedAt": "2026-10-01T05:40:55.690Z",
"responseTimeMs": 29,
"location": { "name": "Paris (FR)", "code": "par" },
"resolution": "raw"
},
{
"id": "1min-2026-09-30T15:55:00.000Z",
"status": "success",
"success": true,
"errorMessage": null,
"checkedAt": "2026-09-30T15:55:00.000Z",
"responseTimeMs": 54,
"location": null,
"resolution": "1min",
"totalLocations": 2,
"failedLocations": 0
}
],
"total": 864,
"page": 17,
"pageCount": 87,
"resolution": "mixed",
"rawWindowFrom": "2026-09-30T16:00:00.000Z"
}resolutionper row:rawis a single check with location and error message;1minis one minute across all locations, without location or error message, withtotalLocationsandfailedLocations.resolutionof the page:raw,1minormixed(the page spans the boundary).rawWindowFrom: where individual checks begin; older rows are minute rows.
With format=csv (or download=1) the response is a text/csv attachment (or application/json for format=json&download=1) instead of the paginated JSON above. CSV columns: checkedAt,status,responseTimeMs,location,errorMessage,resolution.
Data retention
Individual checks, with location and error message, are kept for 24 hours. Older entries come from minute aggregates (30 days), one row per minute without location or error message. Daily figures (24 months) are available through the monitor details.
Errors
400TCP monitor public ID (UUID) required401Unauthorized403Forbidden404Not found