API-Referenz

Projekt-Ereignisse-API

Dauerhafte Projekt-Ereignisse

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

Diese Gruppe hat 2 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.

Dauerhafte Projekt-Ereignisse

GET/api/events

Ereignisse auflisten

Dauerhafte Projekt-Ereignisse aufsteigend nach Sequenz auflisten.

Paging ist zusammenhängend: Geben Sie den zurückgegebenen next_cursor als after weiter, um genau dort fortzusetzen, wo die Seite aufgehört hat. next_cursor ist der Cursor des zuletzt zurückgegebenen Ereignisses, während neuere Ereignisse bereits existieren, und null am Ende der Historie. Limit standardmäßig 50 und akzeptiert 1-200; ein Wert außerhalb dieses Bereichs wird mit invalid_request und einem errors[]-Element abgelehnt, das limit benennt.

Offset-Paging wird nicht unterstützt. source=log listet stattdessen das Player-Protokoll auf: die Bedingungsberichte, die Spieler senden (runtime.reported), aufsteigend nach Empfangszeit, gefiltert nach screen_id und Schweregrad über ein Zeitfenster von bis (standardmäßig die letzten 24 Stunden, maximal 31 Tage).

Seine Cursor sind undurchsichtig: lg1_ oder ev1_ je nachdem, wo der Server das Player-Protokoll speichert, also geben Sie den zurück, den eine Seite geliefert hat; ein Cursor des anderen Typs wird mit invalid_request abgelehnt, der das Feld nennt. Player-Protokolleinträge haben keine Sequenz, sind nicht auf GET /stream/project und werden nicht an Webhooks geliefert.

Ein Eintrag wird bestätigt, wenn die Player-Log-Warteschlange ihn akzeptiert und für die Ereignisaufbewahrung des Projekts gespeichert wird. Eine Abfrage mit dem letzten Cursor und dem Standardfenster folgt dem Log. Player-Log-Einträge sind nicht in der Standardliste (source=project). from und to werden mit invalid_request abgelehnt, sofern source nicht log ist.

Die Projektliste nimmt screen_id, playlist_id und application_id, um die Ereignisse eines Bildschirms, einer Playlist oder einer Anwendung zu lesen, alle auf das Projekt der Anmeldeinformationen beschränkt (eine ID benennt, welche Ereignisse gelesen werden, niemals wessen): screen_id enthält die Ereignisse, deren Ressource dieser Bildschirm ist; playlist_id die Ereignisse, deren Ressource diese Playlist ist, plus die Ereignisse, die sie als details.playlist_id benennen (ein Bildschirm, der sie verwendet); application_id die Ereignisse, deren Ressource diese Anwendung ist, plus diejenigen, deren Ressource sie als application_id trägt (ihre Releases und Schlüssel/Wert-Einträge).

Ein Wert, der keine ID seines Typs ist, wird mit invalid_request abgelehnt, wobei das Feld benannt wird; playlist_id und application_id werden mit source=log abgelehnt, dessen Datensätze nur zu einem Bildschirm gehören.

Beide Quellen verwenden resource_id, Typ und Schweregrad (mindestens), kombiniert miteinander, mit den ID-Filtern und mit der Paginierung; ein Player-Protokolleintrag ist ein runtime.reported-Eintrag, dessen Ressource sein Bildschirm ist, daher ergibt eine resource_id, die nicht dieser Bildschirm ist, oder ein Typ, der runtime.reported ausschließt, eine leere Seite. Vorher (oder order=desc) zeigt die neuesten zuerst: next_cursor ist dann der Cursor des ältesten zurückgegebenen Elements und wird als before zurückgegeben, um zu älteren Elementen fortzufahren.

Ohne from erreicht eine neueste-zuerst source=log-Seite über die standardmäßigen 24 Stunden hinaus den ältesten Datensatz, den die Ereignisaufbewahrung des Projekts hält, höchstens 31 Tage unterhalb der oberen Seitenkante pro Anfrage. Eine neueste-zuerst source=log-Seite kann weniger als limit Datensätze enthalten, auch keine, mit next_cursor; null beendet sie dennoch am Ende des aufbewahrten Logs.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) liest einen gefilterten Feed: Ereignisse von Bildschirmen innerhalb seines Bereichs, von den Bildschirmordnern, die er sehen kann (seine eigenen, die darüber und die darin; screen.moved nur, wenn das Ziel innerhalb seines Bereichs liegt), von Kampagnen, Playlists, Medien, Anwendungen und Karten sowie playlist_change-Überprüfungen.

Jedes andere Ereignis wird ausgelassen, sodass eine Seite weniger Ereignisse als limit enthalten kann, sogar keine, mit einem next_cursor; blättern Sie damit weiter. source=log braucht eine screen_id innerhalb des Bereichs. Ereignisse über das Projekt selbst werden nicht gesendet.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listEvents

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.
nachAbfrageoptional

Ein Cursor aus einer vorherigen Antwort: ev1_ für Projekt-Ereignisse (und die Ereignisströme). Das Player-Protokoll (source=log) paginiert mit lg1_ oder ev1_ Cursorn nach dem Speicherort auf dem Server; behandeln Sie sie als undurchsichtig und geben Sie den Cursor zurück, den eine Seite zurückgegeben hat. Ein Cursor eines anderen Typs wird mit invalid_request abgelehnt.

vorAbfrageoptional

Seiten neueste zuerst, strikt älter als dieser Cursor: ein next_cursor einer neuesten-ersten Seite oder ein beliebiger Item-Cursor (ev1_ für Projekt-Ereignisse; für source=log der undurchsichtige Cursor, den seine Items tragen). Leer oder abwesend mit order=desc beginnt bei dem neuesten Element.

ReihenfolgeAbfrageoptionalAufsteigend Seiten älteste zuerst mit after; absteigend Seiten neueste zuerst mit before. before impliziert absteigend; order=asc mit before wird abgelehnt.
LimitAbfrageoptionalSeitengröße. Ein Wert außerhalb von 1-200 wird mit invalid_request und einem errors[]-Element abgelehnt, dessen Feld limit ist.
QuelleAbfrageoptionalProjekt listet die sequenzierten Projekt-Ereignisse auf. Log listet das Player-Protokoll: Player-Zustandsberichte (runtime.reported), aufsteigend nach Empfangszeit.
resource_idAbfrageoptionalNur Elemente, deren resource.id diese ID ist (eine Bildschirm-, Playlist-, Medien-, Webhook-, Agent- oder Anwendungs-ID). Mit source=log ist es der Bildschirm des Eintrags.
TypAbfrageoptionalEin exakter Ereignistyp wie playlist.updated oder ein Familienpräfix, das mit einem Punkt endet, wie playlist. für jeden playlist.*-Typ.
screen_idAbfrageoptionalNur die Ereignisse dieses Bildschirms: mit source=project diejenigen, deren Ressource der Bildschirm ist, mit source=log seine Player-Protokolleinträge. Eine andere ID-Art wird mit invalid_request abgelehnt.
playlist_idAbfrageoptionalBei source=project nur die Ereignisse dieser Playlist: jene, deren Ressource die Playlist ist, und jene, die sie als details.playlist_id benennen. Bei source=log abgelehnt.
application_idAbfrageoptional

Bei source=project nur die Ereignisse dieser Anwendung: jene, deren Ressource die Anwendung ist, und jene, deren Ressource sie als application_id trägt (deren Releases und Schlüssel/Wert-Einträge). Bei source=log abgelehnt.

SchweregradAbfrageoptionalMindestschwere: info zeigt alle Einträge, warning zeigt Warnungen und Fehler, error zeigt nur Fehler. Beide Quellen.
vonAbfrageoptionalBei source=log der Beginn des Zeitfensters (inklusiv). Standard ist 24 Stunden vor to; eine neueste-zuerst-Seite ohne from reicht stattdessen bis zur Ereignisaufbewahrung des Projekts zurück.
bisAbfrageoptionalBei source=log das Ende des Zeitfensters (exklusiv). Standard ist jetzt. Das Fenster ist höchstens 31 Tage lang.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/events'

Antworten

StatusBedeutungTextkörper und Header
200Dauerhafte Ereignisse (source=project) oder Player-Protokolleinträge (source=log)EventList (application/json)
403

outside_screen_scope - der Aufrufer ist auf Bildschirme beschränkt, und der Bildschirm, Bildschirmordner, Selektor oder die Zielgruppe, die die Anfrage nennt oder erreicht, liegt außerhalb davon (docs/screen-scope.md). Eine ID außerhalb des Bereichs und eine ID, die nicht existiert, erhalten dieselbe Antwort; errors[0].screen_scope trägt den Bereich des Aufrufers, und der Schreibvorgang wird vollständig abgelehnt, nie eingegrenzt.

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/stream/project

Stream Ereignisse

Wiederholbarer Listen-Stream des Projekts. Player-Log-Einträge (runtime.reported) werden mit GET /api/events?source=log gelesen und sind nicht in diesem Stream enthalten. Das Öffnen dieser Anfrage kostet 1 Credit als Listen-Abonnement. Credit-Header werden weggelassen. Spätere abgerechnete Ereignisse kosten jeweils 1 Credit; screen.*, runtime.*, alert_mute.* und application.event sind ausgenommen.

Herzschläge und die Wiederholungs-Vorabmeldung werden nie berechnet. stream.cursor und stream.resync_required werden berechnet. Debit-Idempotenz ist sse-event:<project_id>:<sequence>, sodass das erneute Verbinden und Abspielen kostenlos ist. Ein unbezahltes berechnetes Ereignis wird nicht geschrieben und der Stream schließt.

Ein mit einer Dashboard-Sitzung geöffneter Stream rechnet nichts ab (weder das Öffnen noch seine Ereignisse), wie die API-Anfragen des Dashboards; er belegt dennoch einen der Stream-Slots des Projekts. Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) erhält denselben gefilterten Feed wie GET /api/events: Für ein verworfenes Ereignis wird kein Frame gesendet, und stream.cursor hält die Position in Bewegung.

Der Bereich wird beim Öffnen des Streams gelesen und der Ordnerbaum bei einem Verschiebe- oder Ordner-Ereignis erneut; ein verengter Bereich gilt für einen offenen Stream, wenn er sich neu verbindet.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
streamEvents

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.
nachAbfrageoptional

Ein Cursor aus einer vorherigen Antwort: ev1_ für Projekt-Ereignisse (und die Ereignisströme). Das Player-Protokoll (source=log) paginiert mit lg1_ oder ev1_ Cursorn nach dem Speicherort auf dem Server; behandeln Sie sie als undurchsichtig und geben Sie den Cursor zurück, den eine Seite zurückgegeben hat. Ein Cursor eines anderen Typs wird mit invalid_request abgelehnt.

Last-Event-IDÜberschriftoptionalDauerhafter Cursor, der verwendet wird, wenn after fehlt.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/stream/project'

Antworten

StatusBedeutungTextkörper und Header
200

Wiederholbarer SSE-Stream. Der Abfrage-Cursor hat Vorrang vor Last-Event-ID. Ungültige, zukünftige oder vor der Aufbewahrung liegende Cursor erhalten stream.resync_required am aktuellen Kopf und schließen. Keine ScreenRig-Credits-* Header.

string (text/event-stream)
402

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)