Monitoring
List Incidents (Organization)
Lists incidents for an organization. If organizationId is omitted, the API falls back to the organization from your session.
GET /api/incidents
Readonly users only see incidents for customers they are assigned to.
Authentication
Requires a valid session.
- Header:
Authorization: Bearer <token>
Query Parameters
organizationId(optional): Organization ID. Defaults to your session organization.source(optional): Filter by incident source.manualreturns status-page announcements created by an admin;monitorreturns incidents generated automatically by the monitoring workers. Any other value is ignored and all sources are returned. Useful because manual incidents can be far older than the newest monitor incidents and would otherwise fall outside thelimitwindow.limit(optional, default:100, max:500): Maximum number of incidents to return.offset(optional, default:0): Pagination offset.includeTotal(optional, default:0): If set to1(ortrue), the response includestotal,limit, andoffset.
Example (cURL)
BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"
curl -X GET "$BASE_URL/api/incidents?organizationId=1" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"To paginate:
curl -X GET "$BASE_URL/api/incidents?organizationId=1&limit=100&offset=0" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"To list only manually created (status-page) incidents:
curl -X GET "$BASE_URL/api/incidents?organizationId=1&source=manual" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Example Response (excerpt)
[
{
"id": 123,
"websiteId": 101,
"status": "open",
"severity": "downtime",
"started_at": "2026-02-26T12:10:00.000Z",
"resolved_at": null,
"last_notified_at": "2026-02-26T12:11:00.000Z",
"error_message": "Timeout",
"status_code": null,
"response_time_ms": null,
"website": {
"id": 101,
"name": "Main Marketing Site",
"url": "https://deinkunde.com",
"status": "active"
},
"customer": {
"id": 12,
"email": "ops@deinkunde.com",
"company": "Acme Corp"
}
}
]If includeTotal=1, the response shape changes to:
{
"incidents": [],
"total": 1234,
"limit": 100,
"offset": 0
}Common Errors
400 Organization ID is requiredif the API cannot infer an organization401 Unauthorizedif you are not authenticated403 Forbiddenif you do not have access to the organization500 Failed to fetch incidentson unexpected errors