API-Referenz

Benachrichtigungen-API

Benachrichtigungen: E-Mail- und signierte Webhook-Meldungen bei Änderungen des Bildschirmzustands

HTTP-Referenz. Generiert aus dem Backend-Vertrag. Durchsuchen Sie die Endpunkte unten oder laden Sie OpenAPI herunter.

Diese Gruppe hat 13 Operationen, generiert aus api/openapi.yaml. Filtern Sie nach Pfad, Aktion oder Authentifizierung. Jeder Endpunkt listet seine Eingaben auf; klappen Sie ihn auf, um eine Anfragevorlage und die Antwortcodes zu sehen. Die Vorlagen brauchen Ihre eigenen Werte und einen schemagültigen Anfragekörper.

Großgeschriebene Platzhalter durch Ihre Werte ersetzen. Für eine JSON-Anfrage speichern Sie einen Body, der dem Schema in request.json entspricht. Cookie-Beispiele verwenden ein lokales Cookie-Archiv aus einer authentifizierten Sitzung.

Benachrichtigungen: E-Mail- und signierte Webhook-Meldungen bei Änderungen des Bildschirmzustands

GET/api/notifications

Benachrichtigungen auflisten

Listet die Benachrichtigungen der Organisation, die das Projekt abdecken, alle Kanäle, älteste zuerst (höchstens 50). status, failing_since, last_success_at und last_failure_at sind die dieses Projekts. Das Signing-Secret eines Webhooks wird hier nie zurückgegeben.

Erfordert die Projekt-Berechtigung; ein Token nur für Berichte wird mit 403 forbidden abgelehnt, weil die Antwort Empfänger-URLs und Empfänger enthält.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listNotifications

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications'

Antworten

StatusBedeutungTextkörper und Header
200Die Benachrichtigungen des Projekts.NotificationList (application/json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/notifications

Benachrichtigung erstellen

Erstellt eine Benachrichtigung. Der Kanal email sendet an recipients (Inhaber oder user_ids der Mitglieder des Projekts); der Kanal webhook sendet per POST, signiert, an url, die den Webhook-URL-Regeln folgt (https auf einem öffentlichen Internet-Host, Port 443 oder 8443, sonst webhook_url_rejected). conditions listet die Änderungen des Bildschirmstatus, bei denen sie auslöst; eine E-Mail-Benachrichtigung braucht mindestens eine, ein Webhook braucht conditions oder event_types. screen_tags beschränkt conditions auf Bildschirme mit einem beliebigen dieser Tags; leer bedeutet jeden Bildschirm, oder audience bestimmt die Bildschirme mit den Regeln einer Kampagnen-Zielgruppe. min_severity und severity filtern und bewerten die Meldungen, und active_hours hält sie außerhalb seiner Fenster zurück oder verwirft sie.

Eine Bedingung benachrichtigt erst, nachdem sie hold_minutes lang bestanden hat (standardmäßig 10); endet sie, nachdem eine Meldung versandt wurde, folgt eine Behebungsmeldung. Die Benachrichtigung deckt allein dieses Projekt ab; eine Organisation hat höchstens 50 Benachrichtigungen, die vom System angelegten Standardbenachrichtigungen nicht mitgezählt (notification_limit_reached).

Das Signing-Secret eines Webhooks wird vom Server erzeugt und nur in dieser Antwort und in rotate-secret zurückgegeben; speichern Sie es. Eine exakte Wiederholung mit demselben Idempotency-Key liefert vierundzwanzig Stunden lang dieselbe Antwort, Secret eingeschlossen. Meldungen beginnen mit dem ersten Ereignis nach notification.created.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
NotificationWrite
Operations-ID
createNotification

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.

Anfrageinhalt-Felder

FeldBeschreibung
channel (erforderlich, string)Erlaubt: "email", "webhook", "slack", "teams", "pagerduty", "telegram"
Beschreibung (optional, Zeichenfolge)Ein Name für Personen. maxLength: 200
conditions (optional, NotificationConditions)
screen_tags (optional, ScreenTags)

Flotten-Selektortags, 0 bis 16 eindeutige exakte Tags, die jeweils der Medien-Tag-Grammatik entsprechen. Bei ScreenPatch ersetzt das Array das gesamte Set, und ein leeres Array löscht es; ein doppeltes oder fehlerhaftes Tag ist invalid_request. Das Ändern der Tags erhöht die Bildschirmrevision (If-Match schützt sie) und fügt screen.updated mit details.tags hinzu; die Manifestrevision ändert sich nie.

Tags sind niemals im Laufzeitmanifest und niemals in der Autorisierung enthalten.

audience (optional, CampaignAudience)

Welche Bildschirme eine Kampagne anspricht: genau eines von all (jede Regel trifft zu), any (mindestens eine trifft zu), tag (der Bildschirm trägt das Tag), screen_id (dieser Bildschirm) oder folder (die Bildschirme in diesem Bildschirmordner und in jedem darin enthaltenen Ordner, GET /api/screen-folders; der Ordner muss existieren).

Regeln verschachteln sich höchstens 3 tief, und eine Zielgruppe hat höchstens 500 Regeln. {"all": []} ist jeder Bildschirm des Projekts; sonst listen all und any mindestens eine Regel auf.

min_severity (optional, NotificationSeverity)

Der Schweregrad einer Meldung, der am wenigsten schwere zuerst. Eine geöffnete Meldung hat den Schweregrad ihrer Bedingung: error für screen_offline und warning für jede andere Bedingung, sofern der Schweregrad der Benachrichtigung nichts anderes sagt. Eine behobene Meldung und ein Test sind info. Erlaubt: "info", "warning", "error"

severity (optional, NotificationSeverityOverrides)

Bedingung zu Schweregrad für diese Benachrichtigung, etwa {"not_playing": "error"}. Sie zählt für min_severity und ist der Schweregrad, den Teams und PagerDuty für die Bedingung zeigen. Eine nicht aufgeführte Bedingung behält ihren Standard. Bei einem Patch löscht ein leeres Objekt, wie null, jede Übersteuerung.

active_hours (optional, NotificationActiveHours)

Wann geöffnete Meldungen hinausgehen: die Fenster (screenrig.schedule/v1), gelesen in timezone. Eine Meldung, die fällig wird, während sie geschlossen sind, wartet auf das nächste Öffnen (outside hold, der Standard) und geht dann hinaus, wenn ihre Bedingung noch gilt, sodass eine Bedingung, die vorher endet, nichts sendet, oder wird übersprungen (outside drop; last_error outside_hours).

Eine behobene Meldung zu einer gesendeten geöffneten Meldung geht immer hinaus, innerhalb der Zeiten oder nicht, und ein Test ignoriert sie. crashing wird wie jede andere Bedingung zurückgehalten oder verworfen. Die Zeiten beurteilen eine Meldung, wenn sie zum ersten Mal hinausgeht; eine fehlgeschlagene wird nach dem üblichen Zeitplan wiederholt, gleich welche Zeiten gelten.

Das Hinzufügen, Ändern oder Entfernen der Zeiten beurteilt die für die alten Zeiten zurückgehaltenen Meldungen sofort neu.

reach_drop (optional, NotificationReachDrop)

Der kleinste Rückgang der Reichweite einer Kampagne, für den eine reach_dropped-Meldung gesendet wird: screens ist die geringste Zahl verlorener Bildschirme (Standard 1) und percent, falls gesetzt, der kleinste Anteil der Bildschirme, die die Kampagne bei ihrer Veröffentlichung erreicht hat; ein Rückgang muss beides erfüllen.

Ein kleinerer Rückgang stellt keine Meldung in die Warteschlange, und eine Meldung in der Warteschlange, deren Rückgang bis zur Fälligkeit darunter gesunken ist, wird übersprungen (condition_cleared). Nur mit der Bedingung reach_dropped; bei einer Benachrichtigung ohne sie invalid_request.

hold_minutes (optional, integer)Wie lange eine Bedingung bestehen muss, bevor sie benachrichtigt. crashing wird nie zurückgehalten. default: 10 minimum: 0 maximum: 1440
recipients (optional, NotificationRecipients)

Nur E-Mail. owner (wer das Projekt besitzt, wenn eine Meldung gesendet wird) oder die user_id einer Person, die Mitglied des Projekts ist; eine user_id, die kein Mitglied bezeichnet, ergibt invalid_request. Jeder erhält die E-Mail an die bestätigte Adresse. Wer das Projekt inzwischen verlassen hat oder keine bestätigte Adresse hat, wird übersprungen.

url (optional, Zeichenfolge)Nur Webhook: https-URL auf einem öffentlichen Internet-Host, Port 443 (Standard) oder 8443. Kein Userinfo und kein Fragment. maxLength: 2048 format: "uri"
event_types (optional, NotificationEventTypes)

Nur Webhook. Projektereignisse, die zusätzlich per POST gesendet werden, sobald sie auftreten, genau so, wie ein Webhook sie sendet: exakte Typen wie screen.online oder Präfixe, die auf .* enden, wie screen.*. notification.test wird nie verteilt.

destination (optional, NotificationDestination)

Nur für Slack, Teams, PagerDuty und Telegram; dort erforderlich. Die Zugangsdaten in der Form, in der der Dienst sie ausstellt: slack, die URL des eingehenden Webhooks (hooks.slack.com); teams, die URL des Workflows-Webhooks (logic.azure.com oder powerplatform.com; URLs von Office-365-Connectors sind abgeschafft); pagerduty, der 32-stellige Events-API-v2-Routing-Schlüssel; telegram, das Bot-Token.

Eine andere Form ergibt notification_destination_rejected. Es wird versiegelt, nie zurückgegeben und erscheint beim Lesen nur als destination_hint. minLength: 1 maxLength: 2048

telegram_chat_id (optional, NotificationTelegramChat)Nur für Telegram; dort erforderlich. Der Chat, in den gepostet wird: seine numerische ID (negativ für eine Gruppe oder einen Kanal) oder @channelname. Keine Zugangsdaten. pattern: "^(-?[0-9]{1,20}|@[A-Za-z][A-Za-z0-9_]{4,31})$"
aktiviert (optional, Boolean)true
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/notifications'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt. Das Secret eines Webhooks wird nur hier und bei rotate-secret angezeigt.Notification (application/json); Header: Cache-Control
400invalid_request, webhook_url_rejected oder notification_destination_rejected.Problem (application/problem+json)
402

feature_not_in_plan — Die Alarmweiterleitung (ein Slack-, Teams-, PagerDuty- oder Telegram-Kanal oder eine Regel min_severity, severity, active_hours oder audience) gehört zu Plus. E-Mail- und Webhook-Benachrichtigungen mit den Standardregeln sowie die Bedingungen loop_stalled, glass_blank und glass_frozen sind in jedem Plan enthalten.

Das Problem nennt die Funktion, den Plan des Projekts und required_plan.

Problem (application/problem+json)
409notification_limit_reached, idempotency_mismatch oder resource_conflict, wenn das Projekt zu keiner Organisation gehört.Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
GET/api/notifications/{id}

Benachrichtigung abrufen

Erfordert die Projekt-Berechtigung; ein Token nur für Berichte wird mit 403 forbidden abgelehnt, weil die Antwort die Empfänger-URL oder Empfänger enthält.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
getNotification

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID'

Antworten

StatusBedeutungTextkörper und Header
200Eine Benachrichtigung.Notification (application/json); Header: ETag
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
PATCH/api/notifications/{id}

Benachrichtigung aktualisieren

Ändert beliebige von description (leer löscht sie), conditions, screen_tags, audience, min_severity, severity, active_hours (null löscht jeweils diese), hold_minutes, recipients (E-Mail), url und event_types (Webhook), destination und telegram_chat_id (Slack, Teams, PagerDuty und Telegram), enabled und snoozed_until; channel ändert sich nie.

Ein Feld des anderen Kanals ist invalid_request. Eine neue url wird wie beim Erstellen geprüft.

Wird enabled bei einer deaktivierten Benachrichtigung auf true gesetzt, wird ihr Fehlerzustand gelöscht und sie beginnt bei dem Ereignis, das die Änderung festhält; nichts aus der Zeit, in der sie aus war, wird gesendet, und Meldungen, die vor der Deaktivierung noch ausstanden, werden mit webhook_disabled als fehlgeschlagen markiert. snoozed_until sendet bis zu diesem Zeitpunkt nichts (höchstens 30 Tage im Voraus; null beendet die Stummschaltung); Meldungen, die in der Zwischenzeit fällig werden, werden übersprungen (snoozed).

Hängt notification.updated an. If-Match schützt die Revision. Hier ändert sich nur eine Benachrichtigung, die allein dieses Projekt abdeckt; eine, die auch andere Projekte der Organisation abdeckt, ist notification_covers_other_projects und wird auf der Seite Benachrichtigungen der Organisation geändert.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
NotificationPatch
Operations-ID
updateNotification

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um die aktuelle Ressource zu schreiben; eine übergebene veraltete Revision ist revision_conflict.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.

Anfrageinhalt-Felder

FeldBeschreibung
Beschreibung (optional, Zeichenfolge)Ein leerer String löscht die Beschreibung. maxLength: 200
conditions (optional, NotificationConditions)
screen_tags (optional, ScreenTags)

Flotten-Selektortags, 0 bis 16 eindeutige exakte Tags, die jeweils der Medien-Tag-Grammatik entsprechen. Bei ScreenPatch ersetzt das Array das gesamte Set, und ein leeres Array löscht es; ein doppeltes oder fehlerhaftes Tag ist invalid_request. Das Ändern der Tags erhöht die Bildschirmrevision (If-Match schützt sie) und fügt screen.updated mit details.tags hinzu; die Manifestrevision ändert sich nie.

Tags sind niemals im Laufzeitmanifest und niemals in der Autorisierung enthalten.

audience (optional, inline)Wie bei NotificationWrite; null löscht es. Eine audience und screen_tags zusammen sind invalid_request, daher löscht der Wechsel von einem zum anderen das erste in derselben Anfrage.
min_severity (optional, inline)Wie bei NotificationWrite; null löscht es.
severity (optional, inline)Ersetzt jede Übersteuerung; null oder ein leeres Objekt löscht sie.
active_hours (optional, inline)Ersetzt die Zeiten; null löscht sie.
reach_drop (optional, inline)Ersetzt den Schwellenwert; null löscht ihn, sodass jeder Rückgang eine Meldung auslöst. Das Entfernen von reach_dropped aus conditions, solange er gesetzt ist, ergibt invalid_request; löschen Sie ihn in derselben Anfrage.
hold_minutes (optional, integer)minimum: 0 maximum: 1440
recipients (optional, NotificationRecipients)

Nur E-Mail. owner (wer das Projekt besitzt, wenn eine Meldung gesendet wird) oder die user_id einer Person, die Mitglied des Projekts ist; eine user_id, die kein Mitglied bezeichnet, ergibt invalid_request. Jeder erhält die E-Mail an die bestätigte Adresse. Wer das Projekt inzwischen verlassen hat oder keine bestätigte Adresse hat, wird übersprungen.

url (optional, Zeichenfolge)maxLength: 2048 Format: "uri"
event_types (optional, NotificationEventTypes)

Nur Webhook. Projektereignisse, die zusätzlich per POST gesendet werden, sobald sie auftreten, genau so, wie ein Webhook sie sendet: exakte Typen wie screen.online oder Präfixe, die auf .* enden, wie screen.*. notification.test wird nie verteilt.

destination (optional, NotificationDestination)

Nur für Slack, Teams, PagerDuty und Telegram; dort erforderlich. Die Zugangsdaten in der Form, in der der Dienst sie ausstellt: slack, die URL des eingehenden Webhooks (hooks.slack.com); teams, die URL des Workflows-Webhooks (logic.azure.com oder powerplatform.com; URLs von Office-365-Connectors sind abgeschafft); pagerduty, der 32-stellige Events-API-v2-Routing-Schlüssel; telegram, das Bot-Token.

Eine andere Form ergibt notification_destination_rejected. Es wird versiegelt, nie zurückgegeben und erscheint beim Lesen nur als destination_hint. minLength: 1 maxLength: 2048

telegram_chat_id (optional, NotificationTelegramChat)Nur für Telegram; dort erforderlich. Der Chat, in den gepostet wird: seine numerische ID (negativ für eine Gruppe oder einen Kanal) oder @channelname. Keine Zugangsdaten. pattern: "^(-?[0-9]{1,20}|@[A-Za-z][A-Za-z0-9_]{4,31})$"
aktiviert (optional, Boolean)
snoozed_until (optional, inline)Bis zu diesem Zeitpunkt wird nichts gesendet, höchstens 30 Tage im Voraus; null beendet die Stummschaltung.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/notifications/RESOURCE_ID'

Antworten

StatusBedeutungTextkörper und Header
200Aktualisierte Benachrichtigung.Notification (application/json); Header: ETag
400invalid_request, webhook_url_rejected oder notification_destination_rejected.Problem (application/problem+json)
402

feature_not_in_plan — Die Alarmweiterleitung (eine Slack-, Teams-, PagerDuty- oder Telegram-Benachrichtigung anders ändern, als sie auszuschalten, zu pausieren oder zu beschreiben, oder eine Regel min_severity, severity, active_hours oder audience festlegen) gehört zu Plus. Das Löschen einer Regel ist in jedem Plan möglich; die Bedingungen loop_stalled, glass_blank und glass_frozen sind in jedem Plan enthalten.

Das Problem nennt die Funktion, den Plan des Projekts und required_plan.

Problem (application/problem+json)
409notification_covers_other_projects — die Benachrichtigung deckt auch andere Projekte der Organisation ab, daher wird sie nur auf der Seite Benachrichtigungen der Organisation geändert.Problem (application/problem+json)
412revision_conflict – If-Match ist veraltet; die aktuelle Revision ist im Fehlerfeld current_revision enthalten.Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
LÖSCHEN/api/notifications/{id}

Benachrichtigung löschen

Löscht die Benachrichtigung und hängt notification.deleted an. Ihre ausstehenden Meldungen werden mit webhook_deleted als fehlgeschlagen markiert; ihr Zustellungsprotokoll ist nicht mehr adressierbar und läuft mit der Ereignisaufbewahrung ab. Hier wird nur eine Benachrichtigung gelöscht, die allein dieses Projekt abdeckt (sonst notification_covers_other_projects).

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
deleteNotification

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um die aktuelle Ressource zu schreiben; eine übergebene veraltete Revision ist revision_conflict.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID'

Antworten

StatusBedeutungTextkörper und Header
204Gelöscht.kein Körper; Header: Cache-Control
409notification_covers_other_projects — die Benachrichtigung deckt auch andere Projekte der Organisation ab, daher wird sie nur auf der Seite Benachrichtigungen der Organisation geändert.Problem (application/problem+json)
412revision_conflict – If-Match ist veraltet; die aktuelle Revision ist im Fehlerfeld current_revision enthalten.Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/notifications/{id}/rotate-secret

Secret der Benachrichtigung rotieren

Nur Webhook-Benachrichtigungen (jeder andere Kanal ergibt invalid_request). Ersetzt das Signing-Secret und gibt die Benachrichtigung mit dem neuen in secret zurück; das alte Secret signiert sofort nicht mehr, und höchstens ein bereits laufender Versuch kann noch mit dem alten signiert eintreffen, akzeptieren Sie daher kurzzeitig beide. Hängt notification.updated mit details.changed [secret] an.

Ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt dasselbe neue Geheimnis für vierundzwanzig Stunden zurück.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
rotateNotificationSecret

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um die aktuelle Ressource zu schreiben; eine übergebene veraltete Revision ist revision_conflict.
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/rotate-secret'

Antworten

StatusBedeutungTextkörper und Header
200Die Benachrichtigung und ihr neues Secret.Notification (application/json); Header: Cache-Control
400invalid_request: Die Benachrichtigung ist kein Webhook.Problem (application/problem+json)
409notification_covers_other_projects — die Benachrichtigung deckt auch andere Projekte der Organisation ab, daher wird sie nur auf der Seite Benachrichtigungen der Organisation geändert.Problem (application/problem+json)
412revision_conflict – If-Match ist veraltet; die aktuelle Revision ist im Fehlerfeld current_revision enthalten.Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/notifications/{id}/test

Benachrichtigung testen

Hängt ein Projektereignis notification.test an und stellt eine Zustellung davon nur an diese Benachrichtigung in die Warteschlange (keine andere Benachrichtigung erhält notification.test).

Ein Webhook erhält das Ereignis als Anfragetext; eine E-Mail-Benachrichtigung sendet eine Test-E-Mail an ihre Empfänger; eine Slack-, Teams- oder Telegram-Benachrichtigung postet eine Testnachricht; eine PagerDuty-Benachrichtigung löst ein Informationsereignis aus und behebt es sofort.

Der Aufruf funktioniert bei einer deaktivierten oder stummgeschalteten Benachrichtigung, wird einmal ohne Wiederholungen versucht und ändert nie den Fehlerzustand der Benachrichtigung. Fragen Sie das Zustellungsprotokoll nach dem Ergebnis ab.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
testNotification

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
Idempotency-KeyÜberschriftoptionalFür einen frischen Vorgang weglassen. Geben Sie einen Schlüssel an und verwenden Sie ihn erneut, um Wiederholungen zu deduplizieren; die CLI verwaltet Schlüssel automatisch.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/test'

Antworten

StatusBedeutungTextkörper und Header
202Die in der Warteschlange stehende Testlieferung.NotificationDelivery (application/json); Header: RateLimit-Policy, RateLimit
429

Stabiles rate_limited-Problem. Nur nach dem autoritativen Retry-After-Intervall erneut versuchen. Ablehnungen mit festem Fenster enthalten auch die anwendbare RateLimit-Policy und RateLimit-Mitglieder; Ablehnungen wegen gleichzeitiger Nutzung und Byte-Budget enthalten diese optionalen Angaben nicht.

Problem (application/problem+json); Header: Retry-After, RateLimit-Policy, RateLimit
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
GET/api/notifications/{id}/deliveries

Zustellungen einer Benachrichtigung auflisten

Das Zustellungsprotokoll der Benachrichtigung, neuestes Ereignis zuerst. Eine Zeile pro Ereignis und, bei einer Bildschirmmeldung, pro Bedingung dieses Ereignisses; Wiederholungen aktualisieren die Zeile, und GET .../deliveries/{delivery_id}/attempts listet ihre jüngsten Versuche auf. Eine Meldung, die nie gesendet werden musste, wird mit ihrem Grund übersprungen.

Zeilen werden wie Ereignisse aufbewahrt (die Ereignisaufbewahrung des Tarifs, mindestens das 24-Stunden-Fenster für Wiederholungen). Übergeben Sie next_cursor wie zuvor zurück, um die nächste Seite zu erhalten.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listNotificationDeliveries

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
vorAbfrageoptionalnext_cursor der vorherigen Zustellungsseite. Eine Seite, die mitten in den Meldungen eines Ereignisses endet, nennt in ihrem Cursor die Bedingung der letzten.
LimitAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/deliveries'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite von Lieferungen.NotificationDeliveryList (application/json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
GET/api/notifications/{id}/deliveries/{delivery_id}/attempts

Zustellversuche einer Benachrichtigung auflisten

Die Versuche einer Zustellung, neueste zuerst, die letzten 20, aufbewahrt zusammen mit der Zustellungszeile und ebenso lange. Jeder hat seine Versuchsnummer, den Zeitpunkt seines Endes, den HTTP-Status des Empfängers (null, wenn keiner geantwortet hat oder bei E-Mail), die Fehlerklasse (null bei Erfolg) und seine Dauer.

Bei einer Zustellung, die nicht zu dieser Benachrichtigung gehört, oder einer Benachrichtigung eines anderen Projekts lautet die Antwort not_found.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listNotificationDeliveryAttempts

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
delivery_idPfaderforderlichDie ID einer der Zustellungen des Webhooks.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/deliveries/DELIVERY_ID/attempts'

Antworten

StatusBedeutungTextkörper und Header
200Die gehaltenen Zustellversuche.NotificationDeliveryAttemptList (application/json)
404

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
LÖSCHEN/api/notifications/{id}/unsubscribed/{user_id}

Person erneut für eine Benachrichtigung anmelden

Schickt einer Person wieder die E-Mails einer Benachrichtigung, nachdem sie diese mit dem Abmeldelink in der E-Mail beendet hatte (Notification.unsubscribed listet auf, wer das getan hat). Idempotent: Eine Person, die nicht abgemeldet ist, ändert nichts, und die Antwort ist die Benachrichtigung, wie sie ist.

Eine Änderung erhöht die Revision und hängt notification.updated mit den Details change resubscribed, user_id und via api an. Eine Dashboard-Sitzung darf jede Person des Projekts wieder anmelden; ein Agenten-Zugangsdatum braucht die Schreibberechtigung für das Projekt. Den eigenen Weg zurück hat die Person über die Schaltfläche Resubscribe auf der Seite, mit der ihr Abmeldelink antwortet.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
resubscribeNotificationUser

Parameter

NameSendenErforderlich?Beschreibung
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
idPfaderforderlich
user_idPfaderforderlichDie user_id einer Person in der Liste unsubscribed der Benachrichtigung.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/unsubscribed/USER_ID'

Antworten

StatusBedeutungTextkörper und Header
200Die Benachrichtigung, ohne die Person in unsubscribed.Notification (application/json); Header: ETag
409notification_covers_other_projects — die Benachrichtigung deckt auch andere Projekte der Organisation ab, daher wird sie nur auf der Seite Benachrichtigungen der Organisation geändert.Problem (application/problem+json)
404

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
GET/api/notifications/unsubscribe

Abmeldung von einer Benachrichtigung anzeigen

Der Link in der Fußzeile einer Alarm-E-Mail. Er trägt weder eine Sitzung noch ein Bearer-Token; das Token t, von screenRIG für eine Benachrichtigung n und eine Person u erzeugt, ist die gesamte Berechtigung, läuft nie ab und gilt, solange die Ausstellungsschlüsselversion, die es nennt, aufbewahrt wird.

Die Antwort ist eine Seite, die fragt, ob die E-Mails dieser Benachrichtigung für diese Person beendet werden sollen, und nichts ändert; ein Mail-Scanner, der den Link öffnet, beendet also nichts. Ihre Schaltfläche sendet an diesen Pfad. Eine bereits abgemeldete Person sieht eine Seite, deren Schaltfläche sie wieder anmeldet.

Jedes nicht passende Token, jede nicht passende Benachrichtigung oder Person sowie eine gelöschte oder nicht per E-Mail versendete Benachrichtigung bekommt dieselbe 404-Seite. Die Seite enthält kein Skript und sendet nur an diesen Ursprung. Höchstens 30 Anfragen pro Minute und Adresse (rate_limited).

Authentifizierung
keine
Anfrageinhalt
keine
Operations-ID
showNotificationUnsubscribe

Parameter

NameSendenErforderlich?Beschreibung
nAbfrageerforderlichDie Benachrichtigung, für die der Link bestimmt ist.
uAbfrageerforderlichDie user_id der Person, für die der Link bestimmt ist.
tAbfrageerforderlichDas Token des Links.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET 'https://api.screenrig.ai/api/notifications/unsubscribe?n=N&u=U&t=T'

Antworten

StatusBedeutungTextkörper und Header
200Die Seite, die fragt, ob die Alarme beendet werden sollen.string (text/html)
404Der Link ist nicht gültig; dieselbe Seite für jede Ursache.string (text/html)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/notifications/unsubscribe

Benachrichtigung abbestellen

Beendet die E-Mails einer Benachrichtigung für die Person, für die der Link bestimmt ist. Die Abfrage ist die des GET-Links; der Body wird nicht gelesen, sodass sowohl die One-Click-Anfrage eines Mail-Anbieters nach RFC 8058 (List-Unsubscribe=One-Click, aus den Headern List-Unsubscribe und List-Unsubscribe-Post jeder Alarm- und Test-E-Mail) als auch die Schaltfläche der Seite funktionieren.

Nur diese Person wird abgemeldet, und nur für diese Benachrichtigung; die anderen erhalten weiter E-Mails, und die Person bleibt unter den Empfängern (recipients). Der Aufruf ist idempotent. Beim ersten Mal erhöht er die Revision und hängt notification.updated mit den Details change unsubscribed, user_id und via email_link an.

Die Seite, mit der sie antwortet, hat eine Schaltfläche Resubscribe (POST /api/notifications/resubscribe); ein Projektmitglied sieht die abgemeldeten Personen in Notification.unsubscribed. Bleibt niemand mehr übrig, wird eine Meldung als no_recipients übersprungen. Jeder nicht passende Link bekommt die 404-Seite des GET. Höchstens 30 Anfragen pro Minute und Adresse (rate_limited).

Authentifizierung
keine
Anfrageinhalt
keine
Operations-ID
unsubscribeFromNotification

Parameter

NameSendenErforderlich?Beschreibung
nAbfrageerforderlichDie Benachrichtigung, für die der Link bestimmt ist.
uAbfrageerforderlichDie user_id der Person, für die der Link bestimmt ist.
tAbfrageerforderlichDas Token des Links.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST 'https://api.screenrig.ai/api/notifications/unsubscribe?n=N&u=U&t=T'

Antworten

StatusBedeutungTextkörper und Header
200Die Seite, die sagt, dass die Alarme beendet sind.string (text/html)
404Der Link ist nicht gültig; dieselbe Seite für jede Ursache.string (text/html)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)
POST/api/notifications/resubscribe

Benachrichtigung erneut abonnieren

Macht POST /api/notifications/unsubscribe für die Person rückgängig, für die der Link bestimmt ist: die Schaltfläche Resubscribe der Seite, mit der dieser Aufruf antwortet. Derselbe Link, dieselbe Berechtigung und dieselbe 404-Seite; idempotent. Eine Änderung erhöht die Revision und hängt notification.updated mit den Details change resubscribed, user_id und via email_link an. Höchstens 30 Anfragen pro Minute und Adresse (rate_limited).

Authentifizierung
keine
Anfrageinhalt
keine
Operations-ID
resubscribeToNotification

Parameter

NameSendenErforderlich?Beschreibung
nAbfrageerforderlichDie Benachrichtigung, für die der Link bestimmt ist.
uAbfrageerforderlichDie user_id der Person, für die der Link bestimmt ist.
tAbfrageerforderlichDas Token des Links.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST 'https://api.screenrig.ai/api/notifications/resubscribe?n=N&u=U&t=T'

Antworten

StatusBedeutungTextkörper und Header
200Die Seite, die sagt, dass die Alarme wieder aktiv sind.string (text/html)
404Der Link ist nicht gültig; dieselbe Seite für jede Ursache.string (text/html)
Standard

Stabile RFC 9457-Fehlerantwort. Ein 421 server_draining enthält Retry-After von 1 Sekunde, ein 500 not_ready oder dependency_unavailable enthält 5, und ein 500 manifest_degraded enthält 60, sofern der Handler keinen spezifischeren Wert gesetzt hat.

Problem (application/problem+json)