Skip to content

On-Call

26 endpoints under /api/v1/oncall.

GET /api/v1/oncall/twilio #

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

200 The org's Twilio configuration (never the auth token).
Response body
  • configuredbooleanrequired
  • accountSidstringrequired
  • fromNumberstringrequired
  • updatedAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
PUT /api/v1/oncall/twilio #

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

  • accountSidstringrequired
  • authTokenstringrequired
  • fromNumberstringrequired

Responses

200 The stored configuration.
Response body
  • configuredbooleanrequired
  • accountSidstringrequired
  • fromNumberstringrequired
  • updatedAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
422 Twilio rejected these credentials.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
DELETE /api/v1/oncall/twilio #

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

204 Cleared.
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
GET /api/v1/oncall/incidents #

List the organization's incidents

Newest first (≤100). Without a status filter, returns the working set (open + acknowledged).

Parameters

  • status query string · enum

Responses

200 The org's incidents.
Response body
  • incidentsOncallIncident[]required
    Show fields
    • idstringrequired
    • serviceIdstringrequired
    • serviceNamestringrequired
    • titlestringrequired
    • statusstring · enumrequired

      openacknowledgedresolved

    • openedAtstringrequired
    • acknowledgedAtstring
    • resolvedAtstring
    • firingAlertsintegerrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
GET /api/v1/oncall/schedules #

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

200 The org's schedules.
Response body
  • schedulesOncallSchedule[]required
    Show fields
    • idstringrequired
    • namestringrequired
    • timezonestringrequired
    • participantsOncallScheduleParticipant[]required
      Show fields
      • userIdstringrequired
      • labelstringrequired
    • handoffobjectrequired
      Show fields
      • intervalstring · enumrequired

        dailyweekly

      • dowinteger
      • timestringrequired
    • onCallNowobject
      Show fields
      • userIdstringrequired
      • labelstringrequired
      • untilstringrequired
      • overridebooleanrequired
    • overridesOncallScheduleOverride[]required
      Show fields
      • idstringrequired
      • userIdstringrequired
      • labelstringrequired
      • startsAtstringrequired
      • endsAtstringrequired
    • createdAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
POST /api/v1/oncall/incidents #

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

  • serviceIdstringrequired
  • titlestringrequired
  • descriptionstring

Responses

201 The opened incident.
Response body
  • idstringrequired
  • serviceIdstringrequired
  • serviceNamestringrequired
  • titlestringrequired
  • statusstring · enumrequired

    openacknowledgedresolved

  • openedAtstringrequired
  • acknowledgedAtstring
  • resolvedAtstring
  • firingAlertsintegerrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
POST /api/v1/oncall/schedules #

Create a schedule

One ordered rotation with a handoff interval and time in the schedule's timezone. Reordering participants shifts the rotation.

Request body

  • namestringrequired
  • timezonestringrequired
  • participantsOncallScheduleParticipant[]required
    Show fields
    • userIdstringrequired
    • labelstringrequired
  • handoffobjectrequired
    Show fields
    • intervalstring · enumrequired

      dailyweekly

    • dowinteger
    • timestringrequired

Responses

201 The created schedule.
Response body
  • idstringrequired
  • namestringrequired
  • timezonestringrequired
  • participantsOncallScheduleParticipant[]required
    Show fields
    • userIdstringrequired
    • labelstringrequired
  • handoffobjectrequired
    Show fields
    • intervalstring · enumrequired

      dailyweekly

    • dowinteger
    • timestringrequired
  • onCallNowobject
    Show fields
    • userIdstringrequired
    • labelstringrequired
    • untilstringrequired
    • overridebooleanrequired
  • overridesOncallScheduleOverride[]required
    Show fields
    • idstringrequired
    • userIdstringrequired
    • labelstringrequired
    • startsAtstringrequired
    • endsAtstringrequired
  • createdAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
GET /api/v1/oncall/my-settings #

The caller's personal paging settings

Personal, not organizational — keyed by the authenticated user. Default when unset: email immediately.

Responses

200 The caller's notification rules and contact points.
Response body
  • emailstringrequired
  • phonestringrequired
  • rulesOncallNotificationRule[]required
    Show fields
    • channelstring · enumrequired

      emailsmsvoice

    • delaySecondsintegerrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
PUT /api/v1/oncall/my-settings #

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

  • phonestring
  • rulesOncallNotificationRule[]required
    Show fields
    • channelstring · enumrequired

      emailsmsvoice

    • delaySecondsintegerrequired

Responses

200 The saved settings.
Response body
  • emailstringrequired
  • phonestringrequired
  • rulesOncallNotificationRule[]required
    Show fields
    • channelstring · enumrequired

      emailsmsvoice

    • delaySecondsintegerrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
GET /api/v1/oncall/alert-sources #

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

200 The org's alert sources (metadata only, never secrets).
Response body
  • sourcesOncallAlertSource[]required
    Show fields
    • idstringrequired
    • namestringrequired
    • serviceIdstringrequired
    • createdAtstringrequired
    • lastEventAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
POST /api/v1/oncall/alert-sources #

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

  • namestringrequired
  • serviceIdstringrequired

Responses

201 The created alert source, including the one-time token value.
Response body
  • idstringrequired
  • namestringrequired
  • serviceIdstringrequired
  • tokenstringrequired
  • createdAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
PATCH /api/v1/oncall/services/{id} #

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

  • id path string required

Request body

  • escalationPolicyIdstringrequired

Responses

200 The updated service.
Response body
  • idstringrequired
  • namestringrequired
  • createdAtstringrequired
  • escalationPolicyIdstring
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
GET /api/v1/oncall/incidents/{id} #

One incident, with its alerts and timeline

Parameters

  • id path string required

Responses

200 The incident, its attached alerts, and the internal timeline.
Response body

object

401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
PATCH /api/v1/oncall/schedules/{id} #

Update a schedule

Parameters

  • id path string required

Request body

  • namestring
  • timezonestring
  • participantsOncallScheduleParticipant[]
    Show fields
    • userIdstringrequired
    • labelstringrequired
  • handoffobject
    Show fields
    • intervalstring · enumrequired

      dailyweekly

    • dowinteger
    • timestringrequired

Responses

200 The updated schedule.
Response body
  • idstringrequired
  • namestringrequired
  • timezonestringrequired
  • participantsOncallScheduleParticipant[]required
    Show fields
    • userIdstringrequired
    • labelstringrequired
  • handoffobjectrequired
    Show fields
    • intervalstring · enumrequired

      dailyweekly

    • dowinteger
    • timestringrequired
  • onCallNowobject
    Show fields
    • userIdstringrequired
    • labelstringrequired
    • untilstringrequired
    • overridebooleanrequired
  • overridesOncallScheduleOverride[]required
    Show fields
    • idstringrequired
    • userIdstringrequired
    • labelstringrequired
    • startsAtstringrequired
    • endsAtstringrequired
  • createdAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
DELETE /api/v1/oncall/schedules/{id} #

Delete a schedule

409 while any escalation step still targets this schedule — retarget or remove those steps first.

Parameters

  • id path string required

Responses

204 Deleted.
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
POST /api/v1/oncall/incidents/{id}/ack #

Acknowledge an incident

Marks the incident acknowledged by the acting user. Alerts keep attaching while acknowledged.

Parameters

  • id path string required

Responses

200 The acknowledged incident.
Response body
  • idstringrequired
  • serviceIdstringrequired
  • serviceNamestringrequired
  • titlestringrequired
  • statusstring · enumrequired

    openacknowledgedresolved

  • openedAtstringrequired
  • acknowledgedAtstring
  • resolvedAtstring
  • firingAlertsintegerrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
DELETE /api/v1/oncall/alert-sources/{id} #

Revoke an alert source

Revocation is immediate — in-flight webhook deliveries get a 401.

Parameters

  • id path string required

Responses

204 Revoked.
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
GET /api/v1/oncall/escalation-policies #

List the organization's escalation policies

Responses

200 The org's escalation policies.
Response body
  • policiesOncallEscalationPolicy[]required
    Show fields
    • idstringrequired
    • namestringrequired
    • repeatintegerrequired
    • stepsOncallEscalationStep[]required
      Show fields
      • targetobjectrequired
        Show fields
        • kindstring · enumrequired

          scheduleuser

        • idstringrequired
        • labelstringrequired
      • waitSecondsintegerrequired
    • servicesintegerrequired
    • createdAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
POST /api/v1/oncall/escalation-policies #

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

  • namestringrequired
  • repeatintegerrequired
  • stepsOncallEscalationStep[]required
    Show fields
    • targetobjectrequired
      Show fields
      • kindstring · enumrequired

        scheduleuser

      • idstringrequired
      • labelstringrequired
    • waitSecondsintegerrequired

Responses

201 The created policy.
Response body
  • idstringrequired
  • namestringrequired
  • repeatintegerrequired
  • stepsOncallEscalationStep[]required
    Show fields
    • targetobjectrequired
      Show fields
      • kindstring · enumrequired

        scheduleuser

      • idstringrequired
      • labelstringrequired
    • waitSecondsintegerrequired
  • servicesintegerrequired
  • createdAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
POST /api/v1/oncall/incidents/{id}/resolve #

Resolve an incident

Terminal: a new firing alert after resolve opens a NEW incident.

Parameters

  • id path string required

Responses

200 The resolved incident.
Response body
  • idstringrequired
  • serviceIdstringrequired
  • serviceNamestringrequired
  • titlestringrequired
  • statusstring · enumrequired

    openacknowledgedresolved

  • openedAtstringrequired
  • acknowledgedAtstring
  • resolvedAtstring
  • firingAlertsintegerrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
POST /api/v1/oncall/incidents/{id}/updates #

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

  • id path string required

Request body

  • bodystringrequired

Responses

201 The published update.
Response body
  • idstringrequired
  • atstringrequired
  • bodystringrequired
  • byLabelstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
POST /api/v1/oncall/schedules/{id}/overrides #

Add an override to a schedule

A one-off, time-bounded substitution — resolved before escalation targets are computed; an active override wins outright.

Parameters

  • id path string required

Request body

  • userIdstringrequired
  • labelstringrequired
  • startsAtstringrequired
  • endsAtstringrequired

Responses

201 The created override.
Response body
  • idstringrequired
  • userIdstringrequired
  • labelstringrequired
  • startsAtstringrequired
  • endsAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
PATCH /api/v1/oncall/escalation-policies/{id} #

Update an escalation policy

Parameters

  • id path string required

Request body

  • namestring
  • repeatinteger
  • stepsOncallEscalationStep[]
    Show fields
    • targetobjectrequired
      Show fields
      • kindstring · enumrequired

        scheduleuser

      • idstringrequired
      • labelstringrequired
    • waitSecondsintegerrequired

Responses

200 The updated policy.
Response body
  • idstringrequired
  • namestringrequired
  • repeatintegerrequired
  • stepsOncallEscalationStep[]required
    Show fields
    • targetobjectrequired
      Show fields
      • kindstring · enumrequired

        scheduleuser

      • idstringrequired
      • labelstringrequired
    • waitSecondsintegerrequired
  • servicesintegerrequired
  • createdAtstringrequired
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
DELETE /api/v1/oncall/escalation-policies/{id} #

Delete an escalation policy

409 while a service still references it — detach first.

Parameters

  • id path string required

Responses

204 Deleted.
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
DELETE /api/v1/oncall/incidents/{id}/updates/{uid} #

Retract a published update

Hard delete from the public page — if it was the last update, the incident disappears from status pages again.

Parameters

  • id path string required
  • uid path string required

Responses

204 Retracted.
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired
DELETE /api/v1/oncall/schedules/{id}/overrides/{oid} #

Remove an override

Parameters

  • id path string required
  • oid path string required

Responses

204 Removed.
401 No valid session.
Response body
  • errorstringrequired
403 On-Call is not enabled for this organization (private beta).
Response body
  • errorstringrequired
404 Unknown alert source or incident.
Response body
  • errorstringrequired
502 The Lookout service is unreachable.
Response body
  • errorstringrequired