API Reference

The AlertFlow REST API gives you programmatic access to all alert, incident, workflow, and configuration data in your organization.

Base URL

https://app.yourdomain.com/api/v1

All API endpoints are under /api/v1. The ingest endpoint (for sending alerts) is at a separate path — see Ingest Webhook.

Live OpenAPI spec

The full OpenAPI 3.0.3 spec is available at:

GET https://app.yourdomain.com/api/v1/openapi.json

Import this URL into Postman, Insomnia, or any OpenAPI-compatible client to get auto-generated request builders with your API key.

Response format

All responses follow the same envelope:

Success (list):

{
  "data": [ ... ],
  "meta": {
    "limit": 25,
    "hasMore": true,
    "nextCursor": "clm123abc",
    "total": 1250
  }
}

Success (single object):

{
  "data": { ... }
}

Error:

{
  "error": "Alert not found",
  "code": "NOT_FOUND",
  "details": null
}

Pagination

List endpoints use cursor-based pagination. Pass the nextCursor from the previous response as the cursor query parameter to fetch the next page.

# Page 1
GET /api/v1/alerts?limit=25

# Page 2 (use nextCursor from page 1's meta)
GET /api/v1/alerts?limit=25&cursor=clm123abc
  • total is only returned on the first page (no cursor). Cache it in your UI.
  • hasMore: false means you've reached the last page.

Rate limits

LimitValue
Authenticated API requests300 per minute per org
Ingest webhook (per token)60 per minute
API key creation10 per day per org

Rate-limited responses return 429 Too Many Requests with a Retry-After header (seconds until the window resets).

SDKs and client libraries

There's no official SDK yet. The OpenAPI spec works with any OpenAPI code generator:

# Generate a TypeScript client
npx openapi-typescript https://app.yourdomain.com/api/v1/openapi.json -o types/alertflow.ts

# Generate a Python client
openapi-python-client generate --url https://app.yourdomain.com/api/v1/openapi.json

Resources

All endpoints

GET/alertsList alerts
POST/alerts/bulkBulk acknowledge or resolve
GET/alerts/{id}Get alert
POST/alerts/{id}/acknowledgeAcknowledge alert
POST/alerts/{id}/resolveResolve alert
GET/incidentsList incidents
GET/incidents/{id}Get incident
GET/clientsList clients
POST/clientsCreate client
PUT/clients/{id}Update client
DELETE/clients/{id}Delete client
GET/workflowsList workflows
GET/workflows/{id}Get workflow
GET/schedulesList schedules
GET/schedules/{id}Get schedule
PUT/schedules/{id}Update schedule
DELETE/schedules/{id}Delete schedule
GET/schedules/current-oncallGet current on-call engineer
GET/integrationsList integrations
POST/integrationsCreate integration
PUT/integrations/{id}Update integration
DELETE/integrations/{id}Delete integration
GET/suppressionList suppression windows
POST/suppressionCreate suppression window
GET/suppression/{id}Get suppression window
PUT/suppression/{id}Update suppression window
DELETE/suppression/{id}Delete suppression window
GET/usersList organization members
GET/api-keysList API keys
POST/api-keysCreate API key
DELETE/api-keys/{id}Revoke API key