REST API

Incidents API

List Incidents

GET /api/v1/incidents

Returns all incidents for your organization, newest first.

Query Parameters

Parameter Type Description
status string Filter by status: new, acknowledged, open, investigating, identified, monitoring, resolved, postmortem
severity string Filter by severity: critical, high, medium, low, maintenance
limit integer Results per page (default: 25, max: 100)
offset integer Number of results to skip (default: 0)

Example

curl "https://app.alert24.io/api/v1/incidents?status=open&severity=critical" \
  -H "Authorization: Bearer ak_live_YOUR_KEY"

Response

{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "incident_number": 42,
      "title": "Database connection pool exhausted",
      "description": "Connection pool hit max limit",
      "severity": "critical",
      "status": "open",
      "affected_services": ["svc-123"],
      "impact_description": "Users unable to load dashboards",
      "assigned_to": "user-456",
      "created_by": "user-789",
      "source": "api",
      "tags": ["database", "production"],
      "started_at": "2026-03-19T14:30:00.000Z",
      "acknowledged_at": null,
      "resolved_at": null,
      "created_at": "2026-03-19T14:30:00.000Z",
      "updated_at": "2026-03-19T14:30:00.000Z"
    }
  ],
  "meta": {
    "total": 1,
    "limit": 25,
    "offset": 0,
    "has_more": false
  }
}

Get Incident

GET /api/v1/incidents/:id

Example

curl https://app.alert24.io/api/v1/incidents/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer ak_live_YOUR_KEY"

Create Incident

POST /api/v1/incidents

Scope required: write

Request Body

Field Type Required Description
title string Yes Incident title
description string No Detailed description
severity string No critical, high, medium (default), low, maintenance
status string No Initial status (default: open)
affected_services array No Array of service IDs
impact_description string No User-facing impact summary
assigned_to string No User ID to assign
tags array No Array of tag strings

Example

curl https://app.alert24.io/api/v1/incidents \
  -X POST \
  -H "Authorization: Bearer ak_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "API latency spike",
    "severity": "high",
    "description": "P99 latency exceeding 2s on /api/users endpoint",
    "affected_services": ["svc-api-gateway"],
    "tags": ["performance", "api"]
  }'

Response (201 Created)

{
  "data": {
    "id": "...",
    "incident_number": 43,
    "title": "API latency spike",
    "severity": "high",
    "status": "open",
    "source": "api",
    "created_at": "2026-03-19T15:00:00.000Z"
  }
}

Update Incident

PUT /api/v1/incidents/:id

Scope required: write

All fields are optional — only include what you want to change.

Request Body

Field Type Description
title string Updated title
description string Updated description
severity string Updated severity
status string Updated status
affected_services array Updated service IDs
impact_description string Updated impact
assigned_to string Updated assignee
tags array Updated tags
resolved_at string ISO 8601 resolution timestamp
acknowledged_at string ISO 8601 acknowledgement timestamp

Example — Resolve an incident

curl https://app.alert24.io/api/v1/incidents/INCIDENT_ID \
  -X PUT \
  -H "Authorization: Bearer ak_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "resolved",
    "resolved_at": "2026-03-19T15:30:00.000Z"
  }'

Delete Incident

DELETE /api/v1/incidents/:id

Scope required: write

curl https://app.alert24.io/api/v1/incidents/INCIDENT_ID \
  -X DELETE \
  -H "Authorization: Bearer ak_live_YOUR_KEY"

Returns { "data": null } on success.