On-Call
26 endpoints under /api/v1/oncall.
The organization's Twilio credential (SMS & voice)
Write-only: a set credential shows only its account SID and From number — never the auth token. BYO — the customer's own Twilio account is billed for the pages it sends.
Responses
Response body
configuredbooleanrequiredaccountSidstringrequiredfromNumberstringrequiredupdatedAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Set the organization's Twilio credential
Verified live against Twilio before storing (AES-256-GCM at rest). 422 when Twilio rejects the credentials; 502 when Twilio can't be reached to verify.
Request body
accountSidstringrequiredauthTokenstringrequiredfromNumberstringrequired
Responses
Response body
configuredbooleanrequiredaccountSidstringrequiredfromNumberstringrequiredupdatedAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Clear the organization's Twilio credential
Removes the credential; sms/voice rules then fail per page with "no Twilio credential" (never a silent drop).
Responses
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
List the organization's incidents
Newest first (≤100). Without a status filter, returns the working set (open + acknowledged).
Parameters
-
statusquery string · enum
Responses
Response body
incidentsOncallIncident[]requiredShow fields
idstringrequiredserviceIdstringrequiredserviceNamestringrequiredtitlestringrequiredstatusstring · enumrequiredopenacknowledgedresolvedopenedAtstringrequiredacknowledgedAtstringresolvedAtstringfiringAlertsintegerrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
List the organization's on-call schedules
Each schedule is one rotation plus overrides; onCallNow is computed at read time (an active override wins outright).
Responses
Response body
schedulesOncallSchedule[]requiredShow fields
idstringrequirednamestringrequiredtimezonestringrequiredparticipantsOncallScheduleParticipant[]requiredShow fields
userIdstringrequiredlabelstringrequired
handoffobjectrequiredShow fields
intervalstring · enumrequireddailyweeklydowintegertimestringrequired
onCallNowobjectShow fields
userIdstringrequiredlabelstringrequireduntilstringrequiredoverridebooleanrequired
overridesOncallScheduleOverride[]requiredShow fields
idstringrequireduserIdstringrequiredlabelstringrequiredstartsAtstringrequiredendsAtstringrequired
createdAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Open a manual incident
Opens an incident by hand (drills, incidents no alert saw). A manual, alert-less incident never auto-resolves — resolve it explicitly.
Request body
serviceIdstringrequiredtitlestringrequireddescriptionstring
Responses
Response body
idstringrequiredserviceIdstringrequiredserviceNamestringrequiredtitlestringrequiredstatusstring · enumrequiredopenacknowledgedresolvedopenedAtstringrequiredacknowledgedAtstringresolvedAtstringfiringAlertsintegerrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Create a schedule
One ordered rotation with a handoff interval and time in the schedule's timezone. Reordering participants shifts the rotation.
Request body
namestringrequiredtimezonestringrequiredparticipantsOncallScheduleParticipant[]requiredShow fields
userIdstringrequiredlabelstringrequired
handoffobjectrequiredShow fields
intervalstring · enumrequireddailyweeklydowintegertimestringrequired
Responses
Response body
idstringrequirednamestringrequiredtimezonestringrequiredparticipantsOncallScheduleParticipant[]requiredShow fields
userIdstringrequiredlabelstringrequired
handoffobjectrequiredShow fields
intervalstring · enumrequireddailyweeklydowintegertimestringrequired
onCallNowobjectShow fields
userIdstringrequiredlabelstringrequireduntilstringrequiredoverridebooleanrequired
overridesOncallScheduleOverride[]requiredShow fields
idstringrequireduserIdstringrequiredlabelstringrequiredstartsAtstringrequiredendsAtstringrequired
createdAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
The caller's personal paging settings
Personal, not organizational — keyed by the authenticated user. Default when unset: email immediately.
Responses
Response body
emailstringrequiredphonestringrequiredrulesOncallNotificationRule[]requiredShow fields
channelstring · enumrequiredemailsmsvoicedelaySecondsintegerrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Save the caller's personal paging settings
The email is stamped from the session server-side — never a body field. Rules may be email, sms, or voice; sms/voice require the responder's phone (E.164) and the org's Twilio credential.
Request body
phonestringrulesOncallNotificationRule[]requiredShow fields
channelstring · enumrequiredemailsmsvoicedelaySecondsintegerrequired
Responses
Response body
emailstringrequiredphonestringrequiredrulesOncallNotificationRule[]requiredShow fields
channelstring · enumrequiredemailsmsvoicedelaySecondsintegerrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
List the organization's alert sources
Configured entry points that produce Alerts — Alertmanager-compatible webhook endpoints, each bound to one service. Token values are never returned here; they are shown once, at creation.
Responses
Response body
sourcesOncallAlertSource[]requiredShow fields
idstringrequirednamestringrequiredserviceIdstringrequiredcreatedAtstringrequiredlastEventAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Create an alert source
Mints a per-service webhook route with its own bearer token (lka_…). The response is the ONLY time the token value appears — store it now; only its hash is kept server-side.
Request body
namestringrequiredserviceIdstringrequired
Responses
Response body
idstringrequirednamestringrequiredserviceIdstringrequiredtokenstringrequiredcreatedAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Attach or detach a service's escalation policy
Points the service at an escalation policy (null detaches — new incidents on that service page no one). Routing is the service's job.
Parameters
-
idpath string required
Request body
escalationPolicyIdstringrequired
Responses
Response body
idstringrequirednamestringrequiredcreatedAtstringrequiredescalationPolicyIdstring
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
One incident, with its alerts and timeline
Parameters
-
idpath string required
Responses
Response body
object
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Update a schedule
Parameters
-
idpath string required
Request body
namestringtimezonestringparticipantsOncallScheduleParticipant[]Show fields
userIdstringrequiredlabelstringrequired
handoffobjectShow fields
intervalstring · enumrequireddailyweeklydowintegertimestringrequired
Responses
Response body
idstringrequirednamestringrequiredtimezonestringrequiredparticipantsOncallScheduleParticipant[]requiredShow fields
userIdstringrequiredlabelstringrequired
handoffobjectrequiredShow fields
intervalstring · enumrequireddailyweeklydowintegertimestringrequired
onCallNowobjectShow fields
userIdstringrequiredlabelstringrequireduntilstringrequiredoverridebooleanrequired
overridesOncallScheduleOverride[]requiredShow fields
idstringrequireduserIdstringrequiredlabelstringrequiredstartsAtstringrequiredendsAtstringrequired
createdAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Delete a schedule
409 while any escalation step still targets this schedule — retarget or remove those steps first.
Parameters
-
idpath string required
Responses
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Acknowledge an incident
Marks the incident acknowledged by the acting user. Alerts keep attaching while acknowledged.
Parameters
-
idpath string required
Responses
Response body
idstringrequiredserviceIdstringrequiredserviceNamestringrequiredtitlestringrequiredstatusstring · enumrequiredopenacknowledgedresolvedopenedAtstringrequiredacknowledgedAtstringresolvedAtstringfiringAlertsintegerrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Revoke an alert source
Revocation is immediate — in-flight webhook deliveries get a 401.
Parameters
-
idpath string required
Responses
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
List the organization's escalation policies
Responses
Response body
policiesOncallEscalationPolicy[]requiredShow fields
idstringrequirednamestringrequiredrepeatintegerrequiredstepsOncallEscalationStep[]requiredShow fields
targetobjectrequiredShow fields
kindstring · enumrequiredscheduleuseridstringrequiredlabelstringrequired
waitSecondsintegerrequired
servicesintegerrequiredcreatedAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Create an escalation policy
The ordered steps a new incident walks until someone acknowledges: each step targets a schedule or a user and carries a wait.
Request body
namestringrequiredrepeatintegerrequiredstepsOncallEscalationStep[]requiredShow fields
targetobjectrequiredShow fields
kindstring · enumrequiredscheduleuseridstringrequiredlabelstringrequired
waitSecondsintegerrequired
Responses
Response body
idstringrequirednamestringrequiredrepeatintegerrequiredstepsOncallEscalationStep[]requiredShow fields
targetobjectrequiredShow fields
kindstring · enumrequiredscheduleuseridstringrequiredlabelstringrequired
waitSecondsintegerrequired
servicesintegerrequiredcreatedAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Resolve an incident
Terminal: a new firing alert after resolve opens a NEW incident.
Parameters
-
idpath string required
Responses
Response body
idstringrequiredserviceIdstringrequiredserviceNamestringrequiredtitlestringrequiredstatusstring · enumrequiredopenacknowledgedresolvedopenedAtstringrequiredacknowledgedAtstringresolvedAtstringfiringAlertsintegerrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Publish a public update on an incident
Adds one human-written entry to the incident's public layer. Publishing the FIRST update makes the incident visible on status pages showing its service; the internal timeline is never public. Allowed on resolved incidents (post-mortem note). The author label is stamped from the session.
Parameters
-
idpath string required
Request body
bodystringrequired
Responses
Response body
idstringrequiredatstringrequiredbodystringrequiredbyLabelstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Add an override to a schedule
A one-off, time-bounded substitution — resolved before escalation targets are computed; an active override wins outright.
Parameters
-
idpath string required
Request body
userIdstringrequiredlabelstringrequiredstartsAtstringrequiredendsAtstringrequired
Responses
Response body
idstringrequireduserIdstringrequiredlabelstringrequiredstartsAtstringrequiredendsAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Update an escalation policy
Parameters
-
idpath string required
Request body
namestringrepeatintegerstepsOncallEscalationStep[]Show fields
targetobjectrequiredShow fields
kindstring · enumrequiredscheduleuseridstringrequiredlabelstringrequired
waitSecondsintegerrequired
Responses
Response body
idstringrequirednamestringrequiredrepeatintegerrequiredstepsOncallEscalationStep[]requiredShow fields
targetobjectrequiredShow fields
kindstring · enumrequiredscheduleuseridstringrequiredlabelstringrequired
waitSecondsintegerrequired
servicesintegerrequiredcreatedAtstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Delete an escalation policy
409 while a service still references it — detach first.
Parameters
-
idpath string required
Responses
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Retract a published update
Hard delete from the public page — if it was the last update, the incident disappears from status pages again.
Parameters
-
idpath string required -
uidpath string required
Responses
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Remove an override
Parameters
-
idpath string required -
oidpath string required
Responses
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired
Response body
errorstringrequired