Incidents

Ingest an alert

POST/v1/alertsrequires incidents:ingest

Accepts an authenticated alert into a persisted incident with durable dispatch intent. Production paging remains behind activation gates; test incidents record simulated notification attempts and never call a delivery provider. Configuration and escalation-policy IDs must belong to the API key's workspace. Test keys use a separate incident namespace. Distinct events with the same alias, configuration and policy join the active incident until it is resolved; acknowledgment is preserved. The incident title and severity retain the first alert's values. Resolution releases the alias for a new incident.

Supply a unique Idempotency-Key of 1–255 non-space printable ASCII characters for each event; reuse it only for an exact retry. Matching retries return the original acceptance body, even after resolution, with Idempotency-Replayed: true. Different normalized payloads with the same key return 409. Receipts have no automatic expiration. The body is limited to 16 KiB. Use source-prefixed aliases to avoid grouping unrelated integrations.

Requestcurl -X POST https://api.transmit.dev/v1/alerts \
  -H "Authorization: Bearer tr_v2_…" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
       "configurationId": "00000000-0000-4000-8000-000000000001",
       "escalationPolicyId": "00000000-0000-4000-8000-000000000002",
       "alias": "monitoring:database-primary",
       "title": "Database unavailable",
       "severity": "critical"
     }'

Parameters

NameInNotes
Idempotency-Key requiredheaderA unique key, at most 255 characters. Replaying it returns the original result instead of billing twice.

Body

FieldTypeNotes
configurationId requiredstringuuid
escalationPolicyId requiredstringuuid
alias requiredstring1–128 characters
title requiredstring1–200 characters
descriptionstringat most 4000 characters. defaults to ""
severity"critical" | "high" | "medium" | "low"defaults to "high"

Responses

StatusMeaning
202Persisted acceptance receipt and durable dispatch intent; production paging remains gated
400Invalid or missing idempotency key
401The API key is missing, malformed, expired or revoked
403The API key lacks the incidents:ingest scope
404Configuration or policy not found in this workspace
409Idempotency key conflicts with a different payload
413Body exceeds 16 KiB
415Content-Type must be application/json
422Invalid alert payload

Every response body is described in the OpenAPI spec, which this page is generated from.