MonitorsTcp monitors
Get TCP Monitor Incident History
Returns paginated incidents for a single TCP monitor, including a computed duration.
GET /api/tcp-monitors/:tcpMonitorPublicId/incident-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).limit(number, optional): Items per page (default:25; max100). Ignored in favor of export defaults whenformat=csvordownload=1(default10000, max50000).status(string, optional):open,acknowledged, orresolved.type(string, optional):downtime,http_status,ssl_expiry,ssl_critical,ssl_warning,response_time,dnsbl,domain_expiry_warning,critical, orinconclusive.from/to(ISO date string, optional): Filter bystartedAtrange.format(string, optional):json(default) orcsv.download(string, optional):1to force an attachment download.
Example (cURL)
BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"
curl -X GET "$BASE_URL/api/tcp-monitors/11111111-1111-4111-8111-111111111111/incident-history" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Example Response
{
"data": [
{
"id": 123,
"publicId": "55555555-5555-4555-8555-555555555555",
"type": "downtime",
"status": "resolved",
"startedAt": "2026-02-26T12:10:00.000Z",
"endedAt": "2026-02-26T12:12:30.000Z",
"durationMs": 150000,
"duration": "2m 30s",
"statusCode": null,
"errorMessage": "connect ETIMEDOUT",
"details": "connect ETIMEDOUT",
"isOngoing": false
}
],
"total": 1,
"page": 1,
"pageCount": 1
}status is open, acknowledged, or resolved. Ongoing incidents have a null endedAt and isOngoing: true.
When format=csv (or download=1), the response is a text/csv (or application/json for format=json&download=1) attachment instead of the paginated JSON envelope above.
Common Errors
400 TCP monitor public ID (UUID) requiredif:tcpMonitorPublicIdis invalid401 Unauthorizedif you are not authenticated403 Forbiddenif you do not have access to the monitor