MonitorsTcp monitors
Get TCP Monitor Alert History
Returns paginated notification/escalation attempts (alert history) for incidents of a TCP monitor.
GET /api/tcp-monitors/:tcpMonitorPublicId/alert-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):sentorfailed.from/to(ISO date string, optional): Filter bysentAtrange.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/alert-history" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Example Response
{
"data": [
{
"id": 987,
"incidentId": 123,
"type": "tcp",
"status": "sent",
"channelName": "Ops Slack",
"channelType": "slack",
"channelConfig": null,
"sentAt": "2026-02-26T12:11:00.000Z",
"errorMessage": null
}
],
"total": 1,
"page": 1,
"pageCount": 1
}Each entry is one delivery attempt to one notification channel. status is sent or failed (with errorMessage set on failure); channelType is the channel type (e.g. email, slack, opsgenie). channelConfig has secrets redacted.
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