Uptimeify Docs
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. manual returns status-page announcements created by an admin; monitor returns 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 the limit window.
  • limit (optional, default: 100, max: 500): Maximum number of incidents to return.
  • offset (optional, default: 0): Pagination offset.
  • includeTotal (optional, default: 0): If set to 1 (or true), the response includes total, limit, and offset.

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 required if the API cannot infer an organization
  • 401 Unauthorized if you are not authenticated
  • 403 Forbidden if you do not have access to the organization
  • 500 Failed to fetch incidents on unexpected errors

On this page