Uptimeify Docs
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; max 100). With format=csv or download=1 the export defaults apply instead (default 10000, max 50000 rows).
  • status (string, optional): success or failure (failure also matches timeout). 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 by checkedAt range.
  • format (string, optional): json (default) or csv.
  • download (string, optional): 1 forces 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"
}
  • resolution per row: raw is a single check with location and error message; 1min is one minute across all locations, without location or error message, with totalLocations and failedLocations.
  • resolution of the page: raw, 1min or mixed (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

  • 400 TCP monitor public ID (UUID) required
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not found

On this page