> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uptimeio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Incidents

> List incidents with filters, sorting and offset paging

## Overview

Returns incidents for your project, with summary counts. Supports filtering, sorting and a `since` parameter for polling.

`GET /api/incidents`

## Authentication

`X-API-Key: YOUR_API_KEY` or `Authorization: Bearer YOUR_JWT`. A read-only key is sufficient.

## Query parameters

| Parameter | Type | Default | Description |
| - | - | - | - |
| `status` | string | | `open`, `acknowledged`, `resolved` or `closed`. |
| `severity` | string | | `critical`, `major`, `minor` or `warning`. |
| `type` | string | | `timeout`, `status_code`, `keyword_missing`, `ssl_error`, `dns_error`, `dns_validation_error`, `connection_error` or `slow_response`. |
| `check_id` | UUID | | Only incidents for this monitor. |
| `search` | string | | Case-insensitive match on incident title or monitor name. 1-200 characters. |
| `limit` | integer | `20` | 1-100. |
| `offset` | integer | `0` | Items to skip. |
| `sort_by` | string | `created_at` | `created_at`, `updated_at`, `severity` or `status`. |
| `sort_order` | string | `desc` | `asc` or `desc`. |
| `since` | integer | | Unix timestamp in milliseconds; only incidents changed since then. |

## Example

```bash theme={null}
curl "https://api.uptimeio.com/api/incidents?status=open&severity=critical&limit=20" \
  -H "X-API-Key: YOUR_API_KEY"
```

## Response

`200 OK`

```json theme={null}
{
  "success": true,
  "data": {
    "incidents": [
      {
        "id": "3f6c1a52-9d1e-4b0a-8f7d-2a1b3c4d5e6f",
        "check_id": "8d9e0f1a-2b3c-4d5e-8f6a-7b8c9d0e1f2a",
        "monitor_name": "Checkout API",
        "check_type": "HTTP",
        "organization_id": "0b0f7a0e-2c3d-4f55-9a11-6f1c2f1d9a10",
        "project_id": "7c1d2e3f-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
        "status": "open",
        "severity": "critical",
        "type": "timeout",
        "source": "system",
        "started_at": "2026-09-30T09:12:04.000Z",
        "error_message": "Request timed out after 30000ms",
        "affected_regions": ["europe", "asia"],
        "failure_count": 3,
        "notification_sent": true,
        "notification_channels": ["email", "slack"],
        "acknowledged_by_name": null,
        "created_at": "2026-09-30T09:12:05.000Z",
        "updated_at": "2026-09-30T09:12:05.000Z"
      }
    ],
    "total_count": 1,
    "has_more": false,
    "stats": {
      "open": 1,
      "acknowledged": 0,
      "resolved": 12,
      "closed": 4,
      "critical": 1
    }
  }
}
```

| Field | Type | Description |
| - | - | - |
| `incidents` | array | [Incident objects](/api-reference/incidents/get#incident-object). |
| `total_count` | number | Incidents matching the filters. |
| `has_more` | boolean | `true` if another page exists after `offset + limit`. |
| `last_updated_at` | number | Only present when `since` was supplied and results exist: the latest change time in milliseconds, usable as the next `since` value. |
| `stats` | object | Counts of incidents by status, plus `critical`. |

## Errors

| Status | Code | When |
| - | - | - |
| `400` | `VALIDATION_ERROR` | A query parameter is invalid; `details.errors` names the parameter. |
| `401` | `MISSING_AUTH`, `INVALID_API_KEY`, `INVALID_TOKEN` | Missing or invalid credentials. |

```json theme={null}
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Validation failed",
    "details": { "errors": "limit: Too big: expected number to be <=100", "count": 1 }
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.