Overview
Returns the full record for an incident in your project.GET /api/incidents/{id}
Authentication
X-API-Key: YOUR_API_KEY or Authorization: Bearer YOUR_JWT. A read-only key is sufficient.
Path parameters
| Parameter | Type | Description |
|---|---|---|
id | UUID | Incident ID. |
Response
200 OK
{
"success": true,
"data": {
"incident": {
"id": "3f6c1a52-9d1e-4b0a-8f7d-2a1b3c4d5e6f",
"check_id": "8d9e0f1a-2b3c-4d5e-8f6a-7b8c9d0e1f2a",
"monitor_name": "Checkout API",
"organization_id": "0b0f7a0e-2c3d-4f55-9a11-6f1c2f1d9a10",
"project_id": "7c1d2e3f-4a5b-4c6d-8e7f-9a0b1c2d3e4f",
"status": "resolved",
"severity": "critical",
"type": "timeout",
"source": "system",
"started_at": "2026-09-30T09:12:04.000Z",
"resolved_at": "2026-09-30T09:20:41.000Z",
"error_message": "Request timed out after 30000ms",
"affected_regions": ["europe", "asia"],
"failure_count": 3,
"recovery_time_seconds": 517,
"notification_sent": true,
"notification_channels": ["email", "slack"],
"acknowledged_by_name": null,
"resolved_by": "recovery_consensus",
"created_at": "2026-09-30T09:12:05.000Z",
"updated_at": "2026-09-30T09:20:41.000Z"
}
}
}
Incident object
Optional fields are omitted when they have no value.| Field | Type | Description |
|---|---|---|
id | UUID | Incident ID. |
check_id | UUID | Monitor the incident belongs to (absent for incidents not tied to a monitor). |
monitor_name | string | Name of that monitor. |
check_type | string | Monitor type, for example HTTP. |
organization_id, project_id | UUID | Owning organization and project. |
created_by | UUID | User who created it (manual incidents). |
status | string | open, acknowledged, resolved, closed. |
severity | string | critical, major, minor, warning. |
type | string | Failure type; see Types. |
source | string | system or manual. |
title | string | Title (manual incidents). |
description | string | Team-written description, up to 2000 characters. |
status_page_update | string | Text intended for status page readers. |
started_at | string | ISO 8601 start time. |
acknowledged_at, resolved_at | string | ISO 8601 times, once reached. |
acknowledged_by_name | string | null | Name (or email) of the user who acknowledged the incident. Always present; null if not acknowledged. |
error_message | string | What went wrong. |
affected_regions | string[] | Regions where the failure was observed. |
affected_monitor_ids | UUID[] | Additional monitors listed on the incident. |
failure_count | number | Number of failed checks recorded. |
recovery_time_seconds | number | Time from start to recovery, once resolved. |
notification_sent | boolean | Whether alerts were sent. |
notification_channels | string[] | Channel types alerted. |
resolved_by | string | manual, recovery_consensus, heartbeat_received, monitor_paused, ssl_recovered or performance_recovered. |
recovery_details | object | For recovery-confirmed incidents: successful_agents, successful_regions, recovery_time_ms. |
slow_response_context | object | For slow_response: actual_ms, threshold_ms, percentage_over. |
regional_context | object | detection_regions and optional source_region. |
failure_response_metadata, recovery_response_metadata | object | For HTTP monitors, captured response headers and truncated body at failure and at recovery. |
created_at, updated_at | string | ISO 8601 record times. |
Errors
| Status | Code | Cause |
|---|---|---|
400 | VALIDATION_ERROR | id is not a UUID. |
401 | MISSING_AUTH, INVALID_API_KEY, INVALID_TOKEN | Missing or invalid credentials. |
404 | RESOURCE_NOT_FOUND | No such incident in your project. |
{
"success": false,
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Incident not found",
"details": { "resourceType": "Incident" }
}
}
Example
curl https://api.uptimeio.com/api/incidents/3f6c1a52-9d1e-4b0a-8f7d-2a1b3c4d5e6f \
-H "X-API-Key: YOUR_API_KEY"