Wer hat Bereitschaft
Liefert, wer in deiner Organisation gerade Bereitschaft hat, ein Eintrag pro Team, Eskalationsstufe und Person, aufgelöst genau wie die Alarmierung.
GET /api/im/on-call
Liefert, wer in deiner Organisation gerade jetzt Bereitschaft hat: ein Eintrag pro Team, Eskalationsstufe und Person. Die Auflösung ist genau dieselbe wie bei GET /api/im/teams/{id}/on-call-now und in der Alarmierung: die Rotation des Schedules, zum Zeitpunkt der Anfrage berechnet (nicht nur die materialisierten Schichten), jeden Schedule-Override (für alle Stufen und stufengebunden), jeden Team-Override und alle gleichzeitig Diensthabenden. Legst du einen Override an, änderst oder löschst ihn, zählt das sofort; du musst nicht warten, bis die Schichten neu materialisiert sind.
Authentifizierung
Erfordert den Basis-IM-Zugriff, den jeder Endpunkt dieser API benötigt (eine der IM-berechtigten Rollen admin, editor oder responder, oder einen organisationsweiten API-Token; Incident Management muss für die Organisation aktiviert sein).
Query-Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
envelope | string | keiner | items: Antwort als { items, total, page, perPage }. Ab 18.01.2027 Standard. |
Beispiel (cURL)
curl -X GET "$BASE_URL/api/im/on-call?envelope=items" \
-H "Authorization: Bearer $TOKEN" \
-H "Accept: application/json"Antwort (Response)
200 OK: ein Eintrag pro Team, Stufe und Person, die gerade Bereitschaft hat. Eine Stufe ohne aktuelle Abdeckung (eine Lücke) fehlt schlicht in der Liste. Sie wird nicht als null oder Fehler zurückgegeben. Ein Team ganz ohne Schedule (nur mit Team-Overrides) taucht hier ebenfalls nicht auf, weil scheduleId nicht gefüllt werden kann; wer dort Bereitschaft hat, siehst du über GET /api/im/teams/{id}/on-call-now.
{
"items": [
{
"teamId": 3,
"tierId": 12,
"tierOrder": 1,
"scheduleId": 7,
"sourceScheduleId": 7,
"userId": "MFcTjWmYq2LpzR8vK1sXo",
"userName": "Grace Hopper",
"userImage": "/api/assets/avatar/MFcTjWmYq2LpzR8vK1sXo",
"shiftEndsAt": "2026-07-18T09:00:00.000Z",
"shiftEndsAtIsLowerBound": false
}
],
"total": 1,
"page": 1,
"perPage": 1
}Listenform: Mit envelope=items kommt die Liste als { items, total, page, perPage }. Ohne den Parameter antwortet der Endpunkt noch in der bisherigen Form (ein blankes Array derselben Einträge); sie ist veraltet, ab dem 18.01.2027 ist { items, ... } der Standard.
userImage ist die Auslieferungs-URL des Profilbilds oder null, wenn die Person keines hat. Ein selbst hochgeladenes Bild liegt hinter einem autorisierenden Pfad dieser API und muss mit denselben Zugangsdaten abgerufen werden.
| Feld | Beschreibung |
|---|---|
teamId | Das Team. |
tierId | Die Eskalationsstufe, für die die Person Bereitschaft hat. |
tierOrder | Position dieser Stufe in der Eskalationskette des Teams, ab 1 gezählt. |
scheduleId | Altfeld, immer gesetzt: der Schedule, aus dem die Person kommt, sonst der erste Schedule der Stufe, sonst der erste Schedule des Teams. Den genauen Wert liefert sourceScheduleId. |
sourceScheduleId | Der Schedule, dessen Rotation und Overrides die Person in Bereitschaft bringen, oder null, wenn das nur ein Team-Override tut. |
userId, userName, userImage | Die Person in Bereitschaft. |
shiftEndsAt | Ende der ununterbrochenen Bereitschaft der Person in dieser Stufe: der nächste Zeitpunkt, an dem sie keine Bereitschaft mehr hat. Rotationsabschnitte, in denen direkt danach wieder dieselbe Person dran ist, aneinanderliegende Schichten und Overrides werden übersprungen. Ein Plan mit einer Person bis zum 31. Dezember meldet also den 31. Dezember, nicht das Ende des laufenden Rotationsabschnitts. Ein Override, der die Bereitschaft wegnimmt, beendet sie mit seinem Beginn. |
shiftEndsAtIsLowerBound | true, wenn die Bereitschaft nicht innerhalb der nächsten 90 Tage (Vorausschau) endet. shiftEndsAt heißt dann nur „mindestens bis“, kein Ende. false bei jedem echten Ende. |
Die Liste stimmt mit GET /api/im/teams/{id}/on-call-now überein und mit der Menge, von der die Eskalations-Engine ausgeht. shiftEndsAt wird für alle drei Bereitschafts-Endpunkte an einer Stelle berechnet: dieselbe Person in derselben Stufe hat hier und in on-call-now dasselbe shiftEndsAt, und currentShift.endsAt von GET /api/im/me/on-call ist ebenfalls dieser Wert (dort null, wo hier shiftEndsAtIsLowerBound true ist). Eine Round-Robin-Stufe hat kein einzelnes „jetzt": Round Robin grenzt die Menge erst pro Incident im Moment der Alarmierung ein, deshalb zeigt diese Liste die volle, nicht eingegrenzte Menge (wie die Teamleiste im Dashboard).
Häufige Fehler
401 Unauthorizedwenn du nicht authentifiziert bist403 Forbidden(customerScopedTokenForbidden) bei Verwendung eines kunden-gescopten Tokens403 Forbidden(imAccessDenied) wenn die angemeldete Person keine IM-berechtigte Rolle hat403 Forbidden(imNotEnabled) wenn Incident Management für die Organisation nicht aktiviert ist
Standard-Benachrichtigung
Die Standard-Benachrichtigungskette der Organisation: womit neue Nutzer starten, wenn ihre persönlichen Benachrichtigungen zum ersten Mal angelegt werden.
Organisationseinstellungen
Die Incident-Management-Einstellungen deiner Organisation lesen und ändern: Monitoring-Brücke, SMS/Anruf-Mehrverbrauch und Fallback-Kanal.