Incidents
Create a heartbeat
POST/v1/heartbeatsrequires incidents:write
Pages the escalation policy when a job stops checking in. A heartbeat waits for its first ping, then opens one incident when intervalSeconds plus graceSeconds pass without another; the next ping resolves it. The creating key must hold incidents:ingest and incidents:write, and missed-heartbeat incidents are raised as that key, so revoking it stops the pages. Test keys create test heartbeats whose incidents never call a provider. Names are unique per workspace and mode. See /docs/incident-heartbeats.
Requestcurl -X POST https://api.transmit.dev/v1/heartbeats \
-H "Authorization: Bearer tr_v2_…" \
-H "Content-Type: application/json" \
-d '{
"name": "nightly-backup",
"configurationId": "00000000-0000-4000-8000-000000000001",
"escalationPolicyId": "00000000-0000-4000-8000-000000000002",
"intervalSeconds": 86400,
"graceSeconds": 1800
}'Body
| Field | Type | Notes |
|---|---|---|
name required | string | 1–100 characters |
configurationId required | string | uuid |
escalationPolicyId required | string | uuid |
intervalSeconds required | integer | 60–604800 |
graceSeconds | integer | 0–86400. defaults to 300 |
Responses
| Status | Meaning |
|---|---|
201 | Heartbeat with its ping URL |
401 | The API key is missing, malformed, expired or revoked |
403 | The API key lacks the incidents:write scope |
404 | Routing resources are outside this workspace |
409 | A heartbeat with this name exists |
415 | Use application/json |
422 | Invalid heartbeat |
Every response body is described in the OpenAPI spec, which this page is generated from.