API-Referenz

Projekte-API

Projekte, Einladungen und Anmeldung

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

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

Projekte, Einladungen und Anmeldung

GET/api/project/deletion-preview

Vorschau Projektlösch-Agent

Gibt aktuelle Bestätigungsdetails, Löschblocker und archivierte Geräte zurück, die getrennt werden. allowed ist false mit einem Grund, wenn der Aufrufer das Projekt nicht löschen darf (nur dessen Eigentümer oder ein Administrator der Organisation; für einen Agenten die verantwortliche Person) oder ein Blocker bleibt.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
previewProjectDeletionAgent

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.
project_idAbfrageoptionalErwartete Projekt-ID; eine geänderte Auswahl wird abgelehnt.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/project/deletion-preview'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectDeletionPreview (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)
PUT/api/project/owner

Projektinhaber-Agent übertragen

Der Inhaber überträgt das Eigentum an ein verifiziertes bestehendes Projektmitglied; dies gewährt keine neue Mitgliedschaft. Die Mitgliedschaft des neuen Inhabers verliert jedes screen_scope und upload_scope, sodass der neue Inhaber das gesamte Projekt erreicht.

Eine Dashboard-Sitzung eines Admins der Organisation des Projekts, der Mitglied ist, überträgt die Inhaberschaft auf dieselbe Weise, vom jeweiligen Projektinhaber aus; ein Organisations-Admin, der kein Mitglied ist, verwendet PUT /api/organizations/{org_id}/projects/{project_id}/owner.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
ProjectOwnerTransfer
Operations-ID
transferProjectOwnerAgent

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.

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Erwartete Projekt-ID. Der Server verweigert die Aktion, wenn die aktuelle Anmeldeinformation oder die Cookie-Sitzung auf ein anderes Projekt abzielt; Browser-Clients senden die Projekt-ID der Seite. minLength: 1 maxLength: 200
user_id (erforderlich, Zeichenfolge)minLength: 1 maxLength: 200
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/project/owner'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectContext (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/project/move

Projekt-Agent verschieben

Vom Eigentümer autorisierte Verschiebung überträgt Bildschirmbelegung und neue Nutzung atomar auf den Zielzahler; historische Gebühren behalten ihren Zahler. Ein Ziel, das bereits so viele aktive Projekte hat, wie sein Plan erlaubt, ergibt project_limit_reached, dessen required_plan den Plan mit Platz nennt, bei Enterprise nicht vorhanden.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
ProjectMove
Operations-ID
moveProjectAgent

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.

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Erwartete Projekt-ID. Der Server verweigert die Aktion, wenn die aktuelle Anmeldeinformation oder die Cookie-Sitzung auf ein anderes Projekt abzielt; Browser-Clients senden die Projekt-ID der Seite. minLength: 1 maxLength: 200
organization_id (erforderlich, String)minLength: 1 maxLength: 200
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/project/move'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectContext (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/project/moves

Erlaubtes Projekt verschiebt Agenten

Ziele auflisten, die der Inhaber verwaltet oder deren verifizierte Domain mit seiner verifizierten E-Mail übereinstimmt.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
allowedProjectMovesAgent

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.
project_idAbfrageoptionalErwartete Projekt-ID; eine geänderte Auswahl wird abgelehnt.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/project/moves'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectMoveDestinations (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/projects

Agentenprojekte auflisten

Jede aktive Mitgliedschaft der Identität mit Organisations- und Inhaber-Kontext auflisten, einschließlich Mitgliedschaften, die in diesem Token oder dessen Zustimmung ausgelassen sind. Jeder Eintrag markiert in_token; Discovery fügt keine Berechtigung hinzu und hat keine 64-Projekt-Grenze.

Authentifizierung
agentIdentityBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listAgentProjects

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 --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/projects'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectContextList (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/projects

Agentenprojekt erstellen

Erstellt ein benanntes Projekt, das der verifizierten verantwortlichen Person gehört. Ohne benannte Organisation wird es der Organisation der verifizierten Domain der Person zugeordnet, sonst der Organisation des aktuellen Projekts, sonst der Organisation, die die Person zuletzt unter denen verwaltet oder als ihre kostenlose besitzt, sonst einer neuen Organisation.

Ein Organisationsname wählt genau eine sichtbare Übereinstimmung aus, andernfalls wird eine neue Organisation erstellt. Eine Person besitzt eine kostenlose Standard-Organisation; eine neue Organisation darüber hinaus ist free_organization_limit, benannt nach der, die sie besitzt.

Eine Organisation hat höchstens so viele aktive Projekte, wie ihr Plan erlaubt (Standard 1, Plus 3, Premium 10, Education 50, Enterprise 100, erweitert durch ihre featuresets); ein weiteres ist project_limit_reached, dessen required_plan den Plan mit Platz nennt, bei Enterprise nicht vorhanden (Support kontaktieren).

Ein exakter idempotenter Wiederholungsversuch liefert seine versiegelte Mitgliedschaftsberechtigung für zehn Minuten erneut. Die Registrierung ist von der Begrenzung ausgenommen.

Unter einem Agenten-Zugriffs-JWT (Identitätsbereich, access:manage, eine Erlaubnis mit Identitätszugriff Manage) wird kein Projekttoken ausgegeben; das Projekt wird mit Manage und allen Berechtigungen der Erlaubnis hinzugefügt, und ein Refresh mit seiner project_id gibt ein Token dafür zurück.

Authentifizierung
agentIdentityBearer ODER dashboardSession
Anfrageinhalt
ProjectCreate
Operations-ID
createAgentProject

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Überschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
organization_id (optional, String)minLength: 1 maxLength: 200
organization_name (optional, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/projects'

Antworten

StatusBedeutungTextkörper und Header
201Projektergebnis des LebenszyklusCreatedProject (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/invitations

Einladungen auflisten

Einladungs-Lebenszyklusdatensätze für das aktuelle Projekt auflisten, ohne Anmelderücksetzungen. Empfängeradressen sind für das besitzende Projekt sichtbar, das sie bereitgestellt hat. Tokens und Anmelde-URLs werden niemals aufgelistet.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
listInvitations

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.
kindAbfrageoptional
StatusAbfrageoptional
CursorAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/invitations'

Antworten

StatusBedeutungTextkörper und Header
200Einladungs-Lebenszyklusdatensätze für das aktuelle Projekt auflisten, ohne Anmelderücksetzungen.InvitationList (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/invitations

Einladungen erstellen

Erstellt Einladungen für Mitglieder oder Anzeigenkäufer. E-Mail-Zustellung gibt niemals Zugangsdaten zurück. Link-Zustellung ist nur für Mitglieder und gibt eine URL zurück, auch bei genauem idempotentem Wiederholen innerhalb von 24 Stunden. E-Mail-Einladungen verfallen nach sieben Tagen; Links nach 24 Stunden. Ausstehende E-Mail-Einladungen desselben Typs, derselben Adresse und desselben Projekts werden wiederverwendet.

Ein auf Bildschirme beschränktes Mitglied lädt keine Personen ein (outside_screen_scope).

Eine project_member-Einladung per E-Mail an eine Person, die ein externer Gast der Organisation des Projekts wäre (es ist nicht ihre Heimatorganisation), unterliegt der Gastrichtlinie dieser Organisation, und guest_not_allowed (403) antwortet, wenn die Richtlinie (allow, domains oder none) die Adresse nicht zulässt. Die Annahme der Einladung prüft erneut.

Mitarbeiter und die eigenen Admins der Organisation sind ausgenommen. Ein screen_scope in der Einladung fällt unter den Bildschirmbereich, den der Enterprise-Plan enthält; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
InvitationCreate
Operations-ID
createInvitations

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Überschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
kind (erforderlich, string)Erlaubt: "project_member", "ad_buyer"
Lieferung (optional, Zeichenfolge)Erlaubt: "email", "link" Standard: "email"
E-Mails (optional, Array)
advertising (optional, InvitationAdvertising)Vom Verkäufer besetzter Bereich: mindestens ein Bildschirm oder Slot. Nur Bildschirme, nur Slots oder beides sind akzeptiert.
upload_scope (optional, UploadScope)

Was ein Uploader verwenden darf (docs/uploaders.md): die Playlists, deren Seiten er ändert, und die Medienordner, in die er hochlädt. Ordner sind genau die aufgelisteten, nie deren Unterordner. Eine ID, die beim Schreiben kein aktives Objekt des Projekts benennt, ergibt invalid_request an ihrer Position; ein späteres Löschen hinterlässt eine tote ID, die nichts gewährt.

Der Bereich wird bei jeder Anfrage gelesen, sodass eine Änderung ab der nächsten gilt.

screen_scope (optional, ScreenScope)

Worauf ein Mitglied oder Agent mit Bereich handeln darf (docs/screen-scope.md): die Bildschirme in den aufgeführten Bildschirmordnern und in jedem Ordner darin sowie die aufgeführten Bildschirme. Insgesamt mindestens eine ID. Eine ID, die beim Schreiben keinen aktiven Ordner oder Bildschirm des Projekts nennt, ist invalid_request an ihrer Position; eine spätere Löschung hinterlässt eine tote ID, die nichts gewährt.

Der Bereich wird bei jeder Anfrage gelesen, sodass eine Änderung bei der nächsten gilt. Tags sind nie ein Bereich.

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/invitations'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt Einladungen für Mitglieder oder Anzeigenkäufer.InvitationCreated (application/json); Header: RateLimit-Policy, RateLimit
402

feature_not_in_plan — ein Bildschirmbereich benötigt Enterprise, und ein Upload-Bereich (ein Uploader) benötigt Plus; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan. Das Einengen eines Upload-Bereichs und das Entfernen eines der beiden Bereiche sind immer erlaubt.

Problem (application/problem+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)
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
POST/api/invitations/{id}/revoke

Einladung widerrufen

Widerruft eine ausstehende Einladung. Eine angenommene Einladung gibt invitation_consumed zurück. Ein auf Bildschirme beschränktes Mitglied widerruft keine Einladungen (outside_screen_scope).

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
revokeInvitation

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 POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/invitations/RESOURCE_ID/revoke'

Antworten

StatusBedeutungTextkörper und Header
204Eine ausstehende Einladung widerrufen.kein Körper
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)
POST/api/sign-in-resets

Anmelderücksetzung anfordern

Akzeptiert eine Anfrage zum Zurücksetzen der Anmeldung, ohne zu offenbaren, ob eine Person die Adresse besitzt.

Auch eine Person mit nicht verifizierter Adresse, etwa nach einer Selbstregistrierung, wird gefunden, und das Abschließen dieses Zurücksetzens, das der Inhaber des Posteingangs mit replace_unverified_account bestätigen muss, gibt diesem ein neues Konto (eine neue Person mit den Zugangsdaten des Zurücksetzens, eine neue Organisation und ein neues Projekt) und löscht die nicht verifizierte Person, für die niemand gezeigt hatte, dass die Adresse zu ihr gehört.

Ein Link zum Zurücksetzen läuft eine Stunde nach der letzten Anforderung ab. Solange der Link einer Person aktiv und weniger als einen Tag alt ist, sendet eine weitere Anforderung denselben Link erneut (höchstens einmal alle zehn Minuten) und verschiebt seinen Ablauf auf eine Stunde nach der Anforderung, sodass eine Anforderung den Link im Posteingang nie ungültig macht; andernfalls ersetzt ihn ein neuer Link. Es gibt kein Limit pro Adresse.

Das Abschließen eines Zurücksetzens entfernt die anderen Passkeys der Person (bei einem Zurücksetzen des Passworts alle Passkeys), entfernt das Passwort, wenn die neue Anmeldeinformation ein Passkey ist, verwirft eine ausstehende Änderung der E-Mail-Adresse und beendet jede Sitzung. Mit oder ohne Person sendet die Anfrage außerdem höchstens zehn an die E-Mail-Adresse gerichtete Einladungen erneut, jede Einladung höchstens einmal pro Stunde.

Von den zehn neuesten nicht gelöschten Projekten mit passender Kontaktadresse erhält jedes aktive Projekt mit einem Katalogtarif und einer noch ausstehenden Eigentumsübernahme aus der Registrierung seine Registrierungseinladung erneut, auch wenn sie abgelaufen ist oder die empfangende Person bereits als gewöhnliches Mitglied beigetreten ist.

Das Annehmen dieser Registrierungseinladung mit der vorhandenen Anmeldung schließt die Eigentumsübernahme ab; die Wiederherstellungsanfrage allein ändert weder Eigentum noch Anmeldedaten. Ausstehende E-Mail-Einladungen für Mitglieder und Anzeigenkunden zu aktiven Projekten mit Katalogtarif sowie ausstehende Einladungen für Organisationsadministratoren zu bestehenden Organisationen füllen die übrigen Plätze, die neuesten zuerst.

Eine erneut gesendete Einladung behält ihre ID und erhält einen neuen Link und ein neues Ablaufdatum; der alte Link wird ungültig, und die Anzahl der ausstehenden Einladungen des Projekts bleibt gleich. Eine abgelaufene Registrierungseinladung wird als neue Einladung erstellt und belegt wieder einen Einladungsplatz. Die Anzahl steigt daher um eins; bei einem vollen Projekt wird sie übersprungen.

Andere abgelaufene sowie widerrufene, angenommene und per Link geteilte Einladungen werden nicht erneut gesendet.

Authentifizierung
keine
Anfrageinhalt
SignInResetRequest
Operations-ID
requestSignInReset

Parameter

NameSendenErforderlich?Beschreibung
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
E-Mail (erforderlich, Zeichenfolge)minLength: 3 maxLength: 254 format: "email"
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/sign-in-resets'

Antworten

StatusBedeutungTextkörper und Header
202Akzeptiert eine Anfrage zum Zurücksetzen der Anmeldung, ohne zu offenbaren, ob eine Person die Adresse besitzt.SignInResetAccepted (application/json); Header: 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)
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
POST/api/enrollments

CLI registrieren

Erstellt ein neues Projekt und dessen ersten Agenten durch explizite gebündelte CLI-Anmeldung, auch wenn die Kontaktadresse bereits zu einer Person oder einem Projekt gehört. Die Kontakt-E-Mail bleibt unverifiziert und gewährt keine Befugnis; fehlerhafte Adressen führen zu invalid_request.

Stellt eine Einladung zur Anmeldung in derselben Transaktion in die Warteschlange. project_name ist optional; bei Weglassen wird ein lesbarer Zwei-Wort-Name verwendet. Exakte idempotente Wiederholung erfolgt vor den Ratenbegrenzungen. Speichern Sie die dauerhafte Berechtigung, bevor Sie den Erfolg melden; ihr Wiederholungszeitraum endet bei issuance_expires_at, und spätere Versuche geben credential_issuance_expired zurück.

Der Idempotenzdatensatz gilt 24 Stunden.

Authentifizierung
keine
Anfrageinhalt
CLIEnrollmentRequest
Operations-ID
enrollCLI

Parameter

NameSendenErforderlich?Beschreibung
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
credential_format (optional, Zeichenfolge)

Muss oauth sein, was das Agent-JWT-Paar beantwortet (CLIEnrollmentOAuth). Legacy oder das Weglassen davon antwortet mit 410 client_update_required, da die Legacy-Permanent-Token eingestellt sind. Ein Server, der keine Agent-JWT ausstellt, antwortet mit not_ready. Erlaubt: "oauth", "legacy"

intent (optional, string)

Optionaler Einschreibungszweck. Weglassen oder signage setzt screens=true, advertiser=false. advertising setzt advertiser=true, screens=false und ändert nie die Zuordnung des Abrechnungsplans. Zulässig: "signage", "advertising"

client_id (erforderlich, Zeichenfolge)Stabile anonyme Installations-ID, generiert aus 32 CSPRNG-Bytes und vor der ersten Anfrage gespeichert. Sie ist Rate-Limit-Material, keine Projektanmeldeinformation. Muster: "^cli_[A-Za-z0-9_-]{43}$"
E-Mail (optional, Zeichenfolge)

Unbestätigte Projektkontaktadresse. Genau eine von E-Mail oder agentid_claim ist erforderlich. Die Anmeldung erstellt immer ein neues Projekt und stellt dessen Einladung in die Warteschlange; eine Adresse allein gewährt keine Berechtigung. minLength: 3 maxLength: 254 format: "email"

agentid_claim (optional, String)

Einmaliger AgentID-Claim-Code von der AgentID-Anmeldeseite. Genau eine von E-Mail oder agentid_claim ist erforderlich. Die verifizierte AgentID-Inhaberadresse wird zum Projektkontakt und Einladungsempfänger. Muster: "^agid_[A-Za-z0-9_-]{43}$"

beta_key (optional, string)Erforderlich, wenn der Server einen konfigurierten Enrollment-Beta-Schlüssel hat. Weglassen, wenn der Server die Anmeldung nicht einschränkt.
Name (optional, Zeichenkette)Standard: "Agent" minLength: 1 maxLength: 80
agent_type (optional, String)Standard: "cli" Muster: "^[A-Za-z0-9][A-Za-z0-9._-]{0,31}$"
Plattform (optional, Zeichenfolge)maxLength: 80
version (optional, string)maxLength: 40
install_source (optional, Zeichenfolge)

Optional. Woher die Integration installiert wurde: der Host und, nach einem Schrägstrich, der Marktplatz (claude/screenrig, codex/screenrig, grok/screenrig), oder ein reiner Host wie npm. Die Angabe stammt von Software, nicht von einer Person, daher wird ein fehlender oder falsch geformter Wert ignoriert und lässt die Registrierung nie scheitern.

Es zählt nur, woher Installationen stammen, und gewährt nichts. Muster: "^[a-z][a-z0-9-]{0,31}(/[a-z0-9][a-z0-9._-]{0,63})?$"

project_name (optional, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
setup_code (optional, String)

Optionaler Einrichtungscode, den die Person mit dem Einrichtungs-Prompt von der Website kopiert hat (zwei Gruppen aus vier Buchstaben und Ziffern, Groß-/Kleinschreibung und Bindestrich werden ignoriert). Er verknüpft das neue Projekt mit diesem Website-Besuch; ein unbekannter oder abgelaufener Code wird ignoriert und lässt die Registrierung nie scheitern. Er gewährt nichts. pattern: "^[0-9A-Za-z]{4}-?[0-9A-Za-z]{4}$"

Organisation (optional, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/enrollments'

Antworten

StatusBedeutungTextkörper und Header
201

Neues Projekt und permanente Bearer-Anmeldeinformation. Das Projekt trägt die unverifizierte Kontaktadresse in ihrer gekürzten Form. Speichern und verifizieren Sie das Token, bevor Sie den Einschreibungserfolg melden. Die Anmeldeinformation hat kein geplantes Ablaufdatum, aber ihr verschlüsselter Exact-Retry-Lieferumschlag existiert nur bis issuance_expires_at.

CLIEnrollmentOAuth (application/json); Header: Cache-Control, RateLimit-Policy, RateLimit
400

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)
409

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)
410

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)
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
500

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/agentid/start

Agent-ID-Anmeldung starten

Startet eine AgentID (OIDC) Browser-Anmeldung beim API-Host, abgeleitet vom öffentlichen Laufzeit-Ursprung (https://play.<domain> -> https://api.<domain>). Setzt ein einmaliges Bindungs-Cookie und leitet zum AgentID-Autorisierungsendpunkt mit PKCE S256 weiter. Antwortet nur auf dem API-Host.

Während die vertrauende Partei keine Client-ID und kein Geheimnis hat, rendert die Route eine einfache nicht verfügbare Seite mit 503.

Authentifizierung
keine
Anfrageinhalt
keine
Operations-ID
startAgentIDSignIn
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET 'https://api.screenrig.ai/agentid/start'

Antworten

StatusBedeutungTextkörper und Header
302Weiterleitung zum AgentID-Autorisierungsendpunkt.kein Körper
503AgentID-Anmeldung ist nicht verfügbar.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)
GET/agentid/callback

Agent ID-Anmeldung abschließen

Schließt eine AgentID-Browseranmeldung am API-Host ab. Erfordert iss gleich dem konfigurierten Aussteller, das Bindungscookie und eine nicht abgelaufene Einmal-Transaktion.

Tauscht den Code mit client_secret_basic und PKCE, überprüft das ES256 id_token (iss, aud, exp mit 60 s Toleranz, nonce) gegen die zwischengespeicherte JWKS, ruft userinfo auf und erzwingt die Besitzerregeln, dann rendert eine einmalig verwendbare Anspruchscode-Seite. Ein bereits an einen Agenten gebundener Subjekt rendert die bereits registrierte Seite.

Diese Route erstellt niemals ein Projekt, eine Identität oder eine Einladung.

Authentifizierung
keine
Anfrageinhalt
keine
Operations-ID
completeAgentIDSignIn

Parameter

NameSendenErforderlich?Beschreibung
CodeAbfrageoptional
StatusAbfrageoptional
issAbfrageoptional
FehlerAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET 'https://api.screenrig.ai/agentid/callback'

Antworten

StatusBedeutungTextkörper und Header
200Einmalige AgentID-Claim-Code-Seite mit Plugin-Installationsschritten.string (text/html)
409Das AgentID-Subjekt ist bereits registriert.string (text/html)
503AgentID-Anmeldung ist nicht verfügbar.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)
GET/api/project

Projekt erhalten

Das aufrufende Projekt. Belastet nicht den 1-Credit-API-Zähler, sodass ein Projekt mit null verbleibenden Credits weiterhin verbleibende Credits lesen und sich erholen kann. Nach erfolgreicher Projekt-Hauptauthentifizierung enthalten authentifizierte /api JSON- und Problemantworten ScreenRig-Credits-Remaining, ScreenRig-Credits-Reset und ScreenRig-Credits-Included als ganze Credits.

SSE-, Runtime-, Content- und nicht authentifizierte Antworten lassen diese weg.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
getProject

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

Antworten

StatusBedeutungTextkörper und Header
200ProjektProjekt (application/json); Header: ScreenRig-Credits-Remaining, ScreenRig-Credits-Reset, ScreenRig-Credits-Included, ScreenRig-Credits-Low
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/project

Projekt aktualisieren

Aktuelles Projekt umbenennen. Namen enthalten 1–60 druckbare Zeichen und keinen URL-ähnlichen Text.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
ProjectPatch
Operations-ID
updateProject

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.

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Erwartete Projekt-ID. Der Server verweigert die Aktion, wenn die aktuelle Anmeldeinformation oder die Cookie-Sitzung auf ein anderes Projekt abzielt; Browser-Clients senden die Projekt-ID der Seite. minLength: 1 maxLength: 200
Name (erforderlich, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
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/project'

Antworten

StatusBedeutungTextkörper und Header
200Aktuelles Projekt umbenennen.Projekt (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)
LÖSCHEN/api/project

Projekt-Agent löschen

Nur der Projektinhaber oder ein Administrator seiner Organisation darf es löschen; jeder andere Anrufer wird mit forbidden abgelehnt. Eine Person muss auch Mitglied des Projekts sein.

Ein Agent benötigt die Zielmitgliedschafts-Projektfähigkeit und löscht für seine verantwortliche Person, die Eigentümer oder Organisationsadministrator sein muss; ein Agent ohne verantwortliche Person kann nicht löschen, außer der Agent, der das Projekt eingeschrieben hat, während noch keine Person die Einschreibung akzeptiert hat.

Erfordert außerdem den aktuellen Namen und die Revision, null nicht archivierte Bildschirme, kein Guthaben, keine Reservierungen oder Schulden in der eigenen Wallet und keine Live-Werbung. Ein negativer Saldo unter kostenlosen oder Startbedingungen blockiert nicht; die Löschung schreibt ihn mit einem project_delete_writeoff-Buchungseintrag ab. Wartet auf Mitgliederbenachrichtigungen und verwendet den irreversiblen Tombstone.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
ProjectDeleteConfirmation
Operations-ID
deleteProjectAgent

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.

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Erwartete Projekt-ID. Der Server verweigert die Aktion, wenn die aktuelle Anmeldeinformation oder die Cookie-Sitzung auf ein anderes Projekt abzielt; Browser-Clients senden die Projekt-ID der Seite. minLength: 1 maxLength: 200
empty_only (optional, boolean)

Erfordert ein leeres Screens-Projekt in der Löschtransaktion, einschließlich Inhalt, anderer Agenten oder Mitglieder, Arbeit und Korrespondenz. Die CLI verlangt zusätzlich ihren gespeicherten Enrollment-Nachweis, bevor dieser Bereinigungsschutz verwendet wird. Weglassen bewahrt explizite Mitgliederlöschung.

Name (erforderlich, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
Revision (erforderlich, Ganzzahl)Minimum: 1
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/project'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusGelöschtes Projekt (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/project/capabilities

Projektfähigkeiten erhalten

Der Plan des aufrufenden Projekts, unabhängige Werbetreibende/Bildschirm-Flags mit ihrer Revision, die abgeleitete effektive Fähigkeitensammlung, die Plan-Funktionen, die es hat (plan_features), und seine Limits (limits). Spiegelt niemals eine Kundenbehauptung wider; ein unbekannter Plan schlägt geschlossen als verboten fehl.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
getProjectCapabilities

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/project/capabilities'

Antworten

StatusBedeutungTextkörper und Header
200Projektfunktionen.ProjectCapabilities (application/json); Header: Cache-Control
403verboten – der Projekt-Tarif ist nicht im Katalog.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/organizations/{org_id}/audit

Organisations-Audit auflisten

Das eigene Audit-Protokoll der Organisation: Änderungen an ihren Administratoren, Domains und Abrechnungseinstellungen, mit denselben Einträgen, Filtern und Formaten wie GET /api/audit. Erfordert einen Administrator der Organisation. Teil des Audit-Protokolls, das der Enterprise-Plan enthält; eine Organisation, deren Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt.

In jedem Plan werden die Änderungen aufgezeichnet.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
listOrganizationAudit

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
AkteurAbfrageoptional
actor_kindAbfrageoptional
QuelleAbfrageoptional
AktionAbfrageoptional
seitAbfrageoptional
bisAbfrageoptional
CursorAbfrageoptional
LimitAbfrageoptional
FormatAbfrageoptionaljson (Standard) liefert den Bericht als JSON. csv, xlsx und pdf liefern dieselben Zeilen als Dateianhang (jede Seite eines seitenweisen Berichts, bis zu 50000 Zeilen).
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/audit'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite mit Einträgen oder das gefilterte Protokoll als Datei.AuditList (application/json), string (text/csv), string (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet), string (application/pdf)
400

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)
402feature_not_in_plan — Das Audit-Protokoll ist Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan.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/organizations/{org_id}/notifications

Organisationsbenachrichtigungen auflisten

Die Benachrichtigungen der Organisation, alle Kanäle, älteste zuerst (höchstens 50).

Eine Benachrichtigung gehört zur Organisation und deckt jedes ihrer Projekte ab, auch später hinzugefügte (project_ids fehlt), oder die gewählten Projekte (project_ids); sie wirkt auf die Bildschirme, Quellen, Kampagnen und Karten dieser Projekte genau wie eine Projektbenachrichtigung. status ist failing, solange die Zustellungen eines abgedeckten Projekts es sind, und failing_since, last_success_at und last_failure_at fassen die der abgedeckten Projekte zusammen (den frühesten Fehlerbeginn, den letzten Erfolg und den letzten Fehler).

Das Signing-Secret eines Webhooks wird hier nie zurückgegeben. Erfordert einen Admin der Organisation; alle anderen erhalten not_found.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
listOrganizationNotifications

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications'

Antworten

StatusBedeutungTextkörper und Header
200Die Benachrichtigungen der Organisation.OrganizationNotificationList (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)
POST/api/organizations/{org_id}/notifications

Organisationsbenachrichtigung erstellen

Erstellt eine Benachrichtigung der Organisation, mit den Feldern von POST /api/notifications und den Projekten, die sie abdeckt: Fehlendes oder auf null gesetztes project_ids deckt jedes Projekt der Organisation ab (die vorhandenen und die später hinzukommenden), eine Liste deckt genau diese ab, jeweils ein Live-Projekt dieser Organisation (sonst invalid_request).

Die Empfänger einer E-Mail-Benachrichtigung sind owner (der Inhaber jedes abgedeckten Projekts) oder user_ids von Personen der Organisation (ihre Admins und Heimatmitglieder) oder von Mitgliedern eines abgedeckten Projekts; jedes Projekt versendet E-Mails weiterhin nur an die Personen, die seine Mitglieder sind.

Eine Organisation hat höchstens 50 Benachrichtigungen, die vom System angelegten Standardbenachrichtigungen nicht mitgezählt (notification_limit_reached). Kanäle, Regeln und Bedingungen werden durch dieselben Planfunktionen eingeschränkt wie bei den Projektrouten, bemessen am Plan der Organisation. Jedes abgedeckte Projekt erhält notification.created, und die Änderung wird im Audit-Protokoll der Organisation aufgezeichnet.

Das Signing-Secret eines Webhooks wird nur in dieser Antwort und in rotate-secret zurückgegeben; ein Secret signiert die Zustellungen jedes abgedeckten Projekts. Eine exakte Wiederholung mit demselben Idempotency-Key liefert vierundzwanzig Stunden lang dieselbe Antwort, Secret eingeschlossen.

Authentifizierung
dashboardSession
Anfrageinhalt
OrganizationNotificationWrite
Operations-ID
createOrganizationNotification

Parameter

NameSendenErforderlich?Beschreibung
org_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.

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
project_ids (optional, inline)Die Projekte, die die Benachrichtigung abdeckt; null oder fehlend deckt jedes Projekt der Organisation ab.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/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)
402feature_not_in_plan — wie bei POST /api/notifications, für den Plan der Organisation.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)
409notification_limit_reached oder idempotency_mismatch.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/organizations/{org_id}/notifications/{id}

Organisationsbenachrichtigung abrufen

Eine Benachrichtigung der Organisation, so wie GET /api/organizations/{org_id}/notifications sie zeigt.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
getOrganizationNotification

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID'

Antworten

StatusBedeutungTextkörper und Header
200Eine Benachrichtigung.Notification (application/json); Header: ETag
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)
PATCH/api/organizations/{org_id}/notifications/{id}

Organisationsbenachrichtigung aktualisieren

Ändert jedes Feld, das PATCH /api/notifications/{id} ändert, in der Benachrichtigung und in jedem abgedeckten Projekt, sowie project_ids: Fehlt es, bleiben die Projekte unverändert, null deckt jedes Projekt ab, eine Liste deckt genau diese ab. Ein Projekt, das die Benachrichtigung neu erhält, beginnt bei seinem aktuellen Ereignis (nichts Früheres wird gesendet); bei einem Projekt, das sie verliert, wird die Benachrichtigung gelöscht.

Jedes abgedeckte Projekt erhält notification.updated, und die Änderung wird im Audit-Protokoll der Organisation aufgezeichnet.

Eine Änderung, durch die die Benachrichtigung ein Projekt abdeckt, das sie bisher nicht abdeckt, wird so geprüft wie das Erstellen der Benachrichtigung in ihrer künftigen Form (Kanal, Regeln und Display-Bedingungen, nach dem Plan der Organisation); weniger Projekte abzudecken wird nie geprüft, und der Wechsel von einer Liste zu jedem Projekt deckt immer mehr ab. If-Match schützt die Revision.

Authentifizierung
dashboardSession
Anfrageinhalt
OrganizationNotificationPatch
Operations-ID
updateOrganizationNotification

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
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 NotificationPatch.
min_severity (optional, inline)Wie bei NotificationPatch.
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.
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.
project_ids (optional, inline)Fehlt das Feld, bleiben die abgedeckten Projekte unverändert, null deckt jedes Projekt der Organisation ab, eine Liste deckt genau diese Projekte ab.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PATCH --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/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)
402feature_not_in_plan — wie bei PATCH /api/notifications/{id}, für den Plan der Organisation.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)
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/organizations/{org_id}/notifications/{id}

Organisationsbenachrichtigung löschen

Löscht die Benachrichtigung aus jedem Projekt, das sie abdeckt, mit notification.deleted in jedem, und zeichnet das im Audit-Protokoll der Organisation auf. Ausstehende Meldungen werden mit webhook_deleted als fehlgeschlagen markiert.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
deleteOrganizationNotification

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
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 --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID'

Antworten

StatusBedeutungTextkörper und Header
204Gelöscht.kein Körper; Header: Cache-Control
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)
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/organizations/{org_id}/notifications/{id}/rotate-secret

Secret der Organisationsbenachrichtigung rotieren

Nur Webhook-Benachrichtigungen (jeder andere Kanal ist invalid_request). Ersetzt das Signing-Secret in allen abgedeckten Projekten auf einmal, sodass ein Empfänger weiterhin ein einziges Secret prüft, und gibt die Benachrichtigung mit dem neuen Secret in secret zurück.

Wie bei POST /api/notifications/{id}/rotate-secret kann höchstens ein bereits laufender Versuch pro Projekt noch mit dem alten Secret signiert eintreffen. Eine exakte Wiederholung mit demselben Idempotency-Key liefert vierundzwanzig Stunden lang dasselbe neue Secret.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
rotateOrganizationNotificationSecret

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
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 --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/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)
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)
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/organizations/{org_id}/notifications/{id}/test

Organisationsbenachrichtigung testen

Sendet ein notification.test über das erste Projekt, das die Benachrichtigung abdeckt (nach Projekt-ID), so wie POST /api/notifications/{id}/test eines über sein Projekt sendet: eine Zustellung, deren Ergebnis die Liste der Zustellungen zeigt, einmal versucht.

Jedes abgedeckte Projekt hat denselben Empfänger, dasselbe Ziel und dasselbe Secret, sodass ein Test den Kanal nachweist; die E-Mail eines Tests geht an die Empfänger dieses Projekts. Eine Benachrichtigung, die kein Projekt abdeckt, ist invalid_request.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
testOrganizationNotification

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
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 --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID/test'

Antworten

StatusBedeutungTextkörper und Header
202Die in der Warteschlange stehende Testlieferung.NotificationDelivery (application/json); Header: RateLimit-Policy, RateLimit
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)
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/organizations/{org_id}/notifications/{id}/deliveries

Zustellungen einer Organisationsbenachrichtigung auflisten

Die Zustellungsprotokolle jedes Projekts, das die Benachrichtigung abdeckt, als eine Liste, neueste zuerst, geordnet nach dem Zeitpunkt, zu dem jede Zeile in die Warteschlange gestellt wurde. Jede Zeile nennt ihr Projekt (project_id), und mit ihrer id rufen Sie GET .../deliveries/{delivery_id}/attempts auf. Geben Sie next_cursor wie bisher zurück, um die nächste Seite zu erhalten.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
listOrganizationNotificationDeliveries

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
idPfaderforderlich
vorAbfrageoptionalnext_cursor der vorherigen Lieferseite.
LimitAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID/deliveries'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite von Lieferungen.NotificationDeliveryList (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)
GET/api/organizations/{org_id}/notifications/{id}/deliveries/{delivery_id}/attempts

Zustellversuche einer Organisationsbenachrichtigung auflisten

Die Versuche einer Zustellung, neueste zuerst, die letzten 20. Eine Zustellung, die nicht zu dieser Benachrichtigung gehört, ist not_found.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
listOrganizationNotificationDeliveryAttempts

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
idPfaderforderlich
delivery_idPfaderforderlichDie ID einer der Zustellungen des Webhooks.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/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/organizations/{org_id}/notifications/{id}/unsubscribed/{user_id}

Person erneut für eine Organisationsbenachrichtigung anmelden

Schickt der Person einer E-Mail-Benachrichtigung wieder E-Mails, nachdem sie diese mit dem Abmeldelink in der E-Mail beendet hat, in jedem Projekt, das die Benachrichtigung abdeckt (der Link beendet sie in allen). 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 bei jedem abgedeckten Projekt an.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
resubscribeOrganizationNotificationUser

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
idPfaderforderlich
user_idPfaderforderlichDie user_id einer Person in der Liste unsubscribed der Benachrichtigung.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request DELETE --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/notifications/RESOURCE_ID/unsubscribed/USER_ID'

Antworten

StatusBedeutungTextkörper und Header
200Die Benachrichtigung, ohne die Person in unsubscribed.Notification (application/json); Header: ETag
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/projects/{project_id}/reports

Berichtsarten in einem Projekt auflisten

Listet die Berichtsarten, die GET /api/reports/{kind} erstellt, mit den Filtern jeder Art und den Formaten, in denen ein Bericht geschrieben wird. Erfordert die Berichtsberechtigung.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listReportKindsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/reports'

Antworten

StatusBedeutungTextkörper und Header
200Die Berichtsarten.ReportCatalog (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/projects/{project_id}/report-subscriptions

Berichtsabonnements in einem Projekt auflisten

Listet die geplanten Berichte des Projekts, älteste zuerst (höchstens 50), jeden mit seinem nächsten Lauf und dem Ergebnis des letzten. Erfordert die Projektberechtigung.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listReportSubscriptionsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/report-subscriptions'

Antworten

StatusBedeutungTextkörper und Header
200Die Berichtsabonnements des Projekts.ReportSubscriptionList (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/projects/{project_id}/report-subscriptions

Berichtsabonnement in einem Projekt erstellen

Plant den E-Mail-Versand eines Berichts als PDF-, XLSX- oder CSV-Anhang, täglich, wöchentlich oder monatlich zu einer Uhrzeit in einer Zeitzone.

Jeder Lauf deckt den Zeitraum davor in UTC-Tagen ab: den Vortag, die sieben Tage davor oder den letzten Monat. recipients sind Mitglieder des Projekts, benannt per user_id oder per E-Mail-Adresse des Mitglieds; alle anderen werden abgelehnt, ein Abonnement ist also nie ein Weg, Außenstehende anzuschreiben, und ein Mitglied, das geht, erhält es nicht mehr.

Ein fehlgeschlagener Lauf wird wiederholt und erscheint mit last_status failed und last_error. Höchstens 50 pro Organisation über alle ihre Projekte (report_subscription_limit_reached).

Authentifizierung
projectBearer
Anfrageinhalt
ReportSubscriptionWrite
Operations-ID
createReportSubscriptionInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 100
kind (erforderlich, string)Erlaubt: "fleet_health", "uptime", "publishing", "alerts", "alert_log", "proof_of_play"
filters (optional, Objekt)Die Filter des Berichts außer den Tagen (GET /api/reports listet sie).
schedule (erforderlich, ReportSchedule)
format (erforderlich, String)Erlaubt: "pdf", "xlsx", "csv"
recipients (erforderlich, Array)user_id oder E-Mail-Adresse von Projektmitgliedern.
aktiviert (optional, Boolean)true
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/report-subscriptions'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt.ReportSubscription (application/json); Header: ETag
400

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)
402feature_not_in_plan — Berichte sind Teil von Plus. Das Problem nennt die Funktion, den Plan des Projekts und required_plan.Problem (application/problem+json)
409report_subscription_limit_reached.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/projects/{project_id}/cards

Karten im Projekt auflisten

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listCardsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
ProjektAbfrageoptional
nachAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/cards'

Antworten

StatusBedeutungTextkörper und Header
200KartenressourceObjekt (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/projects/{project_id}/cards

Projektkarte erstellen

Authentifizierung
projectBearer
Anfrageinhalt
CardCreate
Operations-ID
createProjectCard

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Typ (erforderlich, Zeichenkette)
major (optional, Ganzzahl)Minimum: 1
Parameter (erforderlich, Objekt)
Daten (optional, Objekt)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/cards'

Antworten

StatusBedeutungTextkörper und Header
201KartenressourceCardInstance (application/json)
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)
POST/api/organizations/{org_id}/billing/portal-sessions

Organisationsportal erstellen

Erfordert einen designierten Administrator einer aktiven Organisation, Cookie-Authentifizierung mit exakt demselben Ursprung und JWT-CSRF. Akteur und Rückkehr-URL werden vom Server festgelegt. Die Antwort ist privat und no-store. Steht auch einer an einen Reseller delegierten Organisation offen, für ihre Karte und vergangene Rechnungen.

Authentifizierung
dashboardSession
Anfrageinhalt
EmptyPaymentRequest
Operations-ID
createOrganizationPortal

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/billing/portal-sessions'

Antworten

StatusBedeutungTextkörper und Header
201Ergebnis der Abrechnungsverwaltung.BillingPortalSession (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)
PUT/api/organizations/{org_id}/billing/auto-top-up

Automatische Aufladung der Organisation festlegen

Erfordert einen designierten Administrator einer aktiven Organisation, Cookie-Authentifizierung mit exakt demselben Ursprung und JWT-CSRF. Der Akteur wird vom Server festgelegt. Das Deaktivieren bewahrt gespeicherte Beträge und die monatlichen Ausgaben; Betragsfelder werden bei Deaktivierung ignoriert. Die Antwort ist privat und no-store. Das Ändern der Einstellungen hebt eine behebbare Pause erst auf, nachdem jede fehlgeschlagene, noch zahlbare Rechnung sicher storniert wurde.

Das Aktivieren für eine an einen Reseller delegierte Organisation antwortet mit 409 billed_by_reseller; das Deaktivieren bleibt möglich.

Authentifizierung
dashboardSession
Anfrageinhalt
AutoTopUpSettings
Operations-ID
setOrganizationAutoTopUp

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/billing/auto-top-up'

Antworten

StatusBedeutungTextkörper und Header
200Ergebnis der Abrechnungsverwaltung.AutoTopUpView (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/organizations/{org_id}/billing/payments

Zahlungen einer Organisation abrufen

Zahlungsansichten einer aktiven Organisation. Erfordert das Cookie ihres zuständigen Administrators; die Sichtbarkeit für Mitarbeitende allein gewährt keinen Kaufzugriff. Nicht konfigurierte Zahlungen geben available false zurück. Die Rückkehr im Browser schreibt niemals Guthaben gut.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
getOrganizationPayments

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/billing/payments'

Antworten

StatusBedeutungTextkörper und Header
200Zahlungsverfügbarkeit und letzte Käufe.OrganizationPayments (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/organizations/{org_id}/billing/credit-checkouts

Zahlung für eine Organisation erstellen

Einen vorausbezahlten Kauf für den zuständigen Administrator einer aktiven Organisation starten. Erfordert Cookie-Authentifizierung desselben Ursprungs und für JWT-Sitzungen einen passenden CSRF-Header. Organisation, Kunde, Akteur und Rückkehr-URLs werden vom Server festgelegt. Guthaben wird erst nach Zahlungsbestätigung durch den Abrechnungsdienst gutgeschrieben. Bei unklaren Antworten mit derselben Idempotency-Key und demselben Betrag erneut versuchen.

Eine an einen Reseller delegierte Organisation antwortet mit 409 billed_by_reseller.

Authentifizierung
dashboardSession
Anfrageinhalt
object
Operations-ID
createOrganizationCheckout

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
amount_cents (erforderlich, Ganzzahl)Minimum: 10000 Maximum: 1000000 Format: "int64"
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/organizations/ORG_ID/billing/credit-checkouts'

Antworten

StatusBedeutungTextkörper und Header
201Kauf erstellt oder wiederholt. Nach Abschluss fehlt die Zahlungs-URL. Antworten sind privat und no-store.CreditPurchase (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/organizations/{org_id}/billing/balance

Abrechnungssaldo der Organisation erhalten

Das Organisations-Wallet. Erfordert einen benannten Organisations-Admin, einen Admin des Resellers, an den die Organisation delegiert ist, oder eine Mitarbeiter-Sitzung. Gewährt keine Projektmitgliedschaft.

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
getOrganizationBillingBalance

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/billing/balance'

Antworten

StatusBedeutungTextkörper und Header
200Organisations-Abrechnungssaldo.Abrechnungsbilanz (application/json); Header: Cache-Control
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/organizations/{org_id}/billing/statement

Abrechnungsübersicht der Organisation erhalten

Journal-Einträge, die dieser Organisation zum Zeitpunkt der Belastung zugeordnet sind, mit Projekt- und Zahler-Identitäten. Verschiebungen übertragen keinen historischen Zugriff. Einträge, die vor dem aufgezeichneten Organisationskontext liegen, bleiben in ihren Projektabrechnungen. Wird von denselben Personen gelesen wie das Guthaben (getOrganizationBillingBalance).

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
getOrganizationBillingStatement

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
CursorAbfrageoptional
LimitAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/billing/statement'

Antworten

StatusBedeutungTextkörper und Header
200Organisations-Abrechnungsübersicht.Abrechnungs-Auszug (application/json); Header: Cache-Control
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/organizations/{org_id}/billing/usage

Abrechnungsnutzung der Organisation erhalten

Der Nutzungspool der Organisation und der Anteil jedes Projekts für einen UTC-Monat. Deckt die von dieser Organisation bezahlte Nutzung ab; andere Kosten des Zahlers stehen in der Abrechnung der Organisation. Wird von denselben Personen gelesen wie das Guthaben (getOrganizationBillingBalance).

Authentifizierung
dashboardSession
Anfrageinhalt
keine
Operations-ID
getOrganizationBillingUsage

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich
CursorAbfrageoptional
LimitAbfrageoptional
ZeitraumAbfrageoptionalUTC-Monat in YYYY-MM-Form; Standard ist der aktuelle Monat.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/organizations/ORG_ID/billing/usage'

Antworten

StatusBedeutungTextkörper und Header
200Organisations-Abrechnungsnutzung.OrganizationBillingUsage (application/json); Header: Cache-Control
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/organizations

Agent Organizations List

Sichtbare Organisationen, einschließlich leerer Organisationen für deren Administratoren. Namen sind nicht eindeutig.

Authentifizierung
agentIdentityBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
agentOrganizationsList
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/organizations'

Antworten

StatusBedeutungTextkörper und Header
200Organisations-Ergebnis.OrganizationList (application/json); Header: Cache-Control
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/organizations/{org_id}

Agent Organizations Rename

Beauftragte Administratoren und Agenten, deren verifizierte verantwortliche Person ein Administrator ist, dürfen eine Organisation umbenennen. Es werden keine Projektberechtigungen oder Mitgliedschaften gewährt.

Authentifizierung
agentIdentityBearer ODER dashboardSession
Anfrageinhalt
Organisation umbenennen
Operations-ID
agentOrganizationsRename

Parameter

NameSendenErforderlich?Beschreibung
org_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PATCH --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/organizations/ORG_ID'

Antworten

StatusBedeutungTextkörper und Header
200Organisations-Ergebnis.OrganizationView (application/json); Header: Cache-Control
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)
PUT/api/project/review-policy

Projektbewertungspolitik festlegen

Schaltet „Überprüfung für Agentenänderungen erforderlich“ ein oder aus. Während es aktiviert ist, wird jeder Agent und jeder Dienstclient im Projekt bei jeder Anfrage auf Vorschlagszugang beschränkt, unabhängig von den mitgeführten Anmeldeinformationen. Nur der Projektinhaber oder ein Administrator der Projektorganisation (sonst verboten); Mitarbeiter-Schatten-Sitzungen können dies nicht ändern.

If-Match trägt review_policy_revision (0 erlaubt) und ist erforderlich; ein veralteter Wert ist revision_conflict. Das Deaktivieren erfordert einen Nachweis, den der Agent für Verbindungsfreigabe mit frischem Passkey oder Passwort verwendet; das Aktivieren nicht. Offene Bewertungen bleiben in beiden Fällen entscheidbar. Fügt project.review_policy_changed hinzu.

Authentifizierung
dashboardSession
Anfrageinhalt
ReviewPolicyUpdate
Operations-ID
setProjectReviewPolicy

Parameter

NameSendenErforderlich?Beschreibung
If-MatchÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
agent_changes_require_review (erforderlich, Boolean)
proof (optional, DashboardProof)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/project/review-policy'

Antworten

StatusBedeutungTextkörper und Header
200Die aktuell geltende Richtlinie.ReviewPolicy (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/projects/{project_id}/project/deletion-preview

Vorschau Projektlösch-Agent im Projekt

Gibt aktuelle Bestätigungsdetails, Löschblocker und archivierte Geräte zurück, die getrennt werden. allowed ist false mit einem Grund, wenn der Aufrufer das Projekt nicht löschen darf (nur dessen Eigentümer oder ein Administrator der Organisation; für einen Agenten die verantwortliche Person) oder ein Blocker bleibt.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
previewProjectDeletionAgentInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
project_idAbfrageoptionalErwartete Projekt-ID; eine geänderte Auswahl wird abgelehnt.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/deletion-preview'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectDeletionPreview (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)
PUT/api/projects/{project_id}/project/owner

Projektinhaber-Agent im Projekt übertragen

Der Inhaber überträgt das Eigentum an ein verifiziertes bestehendes Projektmitglied; dies gewährt keine neue Mitgliedschaft. Die Mitgliedschaft des neuen Inhabers verliert jedes screen_scope und upload_scope, sodass der neue Inhaber das gesamte Projekt erreicht.

Authentifizierung
projectBearer
Anfrageinhalt
ProjectOwnerTransfer
Operations-ID
transferProjectOwnerAgentInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Erwartete Projekt-ID. Der Server verweigert die Aktion, wenn die aktuelle Anmeldeinformation oder die Cookie-Sitzung auf ein anderes Projekt abzielt; Browser-Clients senden die Projekt-ID der Seite. minLength: 1 maxLength: 200
user_id (erforderlich, Zeichenfolge)minLength: 1 maxLength: 200
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/owner'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectContext (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/projects/{project_id}/project/move

Projekt-Agent im Projekt verschieben

Vom Eigentümer autorisierte Verschiebung überträgt Bildschirmbelegung und neue Nutzung atomar auf den Zielzahler; historische Gebühren behalten ihren Zahler.

Authentifizierung
projectBearer
Anfrageinhalt
ProjectMove
Operations-ID
moveProjectAgentInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Erwartete Projekt-ID. Der Server verweigert die Aktion, wenn die aktuelle Anmeldeinformation oder die Cookie-Sitzung auf ein anderes Projekt abzielt; Browser-Clients senden die Projekt-ID der Seite. minLength: 1 maxLength: 200
organization_id (erforderlich, String)minLength: 1 maxLength: 200
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/move'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectContext (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/projects/{project_id}/project/moves

Erlaubtes Projekt verschiebt Agenten im Projekt

Ziele auflisten, die der Inhaber verwaltet oder deren verifizierte Domain mit seiner verifizierten E-Mail übereinstimmt.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
allowedProjectMovesAgentInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
project_idAbfrageoptionalErwartete Projekt-ID; eine geänderte Auswahl wird abgelehnt.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/moves'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusProjectMoveDestinations (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/projects/{project_id}/invitations

Einladungen im Projekt auflisten

Einladungs-Lebenszyklusdatensätze für das aktuelle Projekt auflisten, ohne Anmelderücksetzungen. Empfängeradressen sind für das besitzende Projekt sichtbar, das sie bereitgestellt hat. Tokens und Anmelde-URLs werden niemals aufgelistet.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listInvitationsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
kindAbfrageoptional
StatusAbfrageoptional
CursorAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/invitations'

Antworten

StatusBedeutungTextkörper und Header
200Einladungs-Lebenszyklusdatensätze für das aktuelle Projekt auflisten, ohne Anmelderücksetzungen.InvitationList (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/projects/{project_id}/invitations

Einladungen im Projekt erstellen

Erstellt Einladungen für Mitglieder oder Anzeigenkäufer. E-Mail-Zustellung gibt niemals Zugangsdaten zurück. Link-Zustellung ist nur für Mitglieder und gibt eine URL zurück, auch bei genauem idempotentem Wiederholen innerhalb von 24 Stunden. E-Mail-Einladungen verfallen nach sieben Tagen; Links nach 24 Stunden. Ausstehende E-Mail-Einladungen desselben Typs, derselben Adresse und desselben Projekts werden wiederverwendet.

Ein auf Bildschirme beschränktes Mitglied lädt keine Personen ein (outside_screen_scope).

Eine project_member-Einladung per E-Mail an eine Person, die ein externer Gast der Organisation des Projekts wäre (es ist nicht ihre Heimatorganisation), unterliegt der Gastrichtlinie dieser Organisation, und guest_not_allowed (403) antwortet, wenn die Richtlinie (allow, domains oder none) die Adresse nicht zulässt. Die Annahme der Einladung prüft erneut.

Mitarbeiter und die eigenen Admins der Organisation sind ausgenommen. Ein screen_scope in der Einladung fällt unter den Bildschirmbereich, den der Enterprise-Plan enthält; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt.

Authentifizierung
projectBearer
Anfrageinhalt
InvitationCreate
Operations-ID
createInvitationsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
kind (erforderlich, string)Erlaubt: "project_member", "ad_buyer"
Lieferung (optional, Zeichenfolge)Erlaubt: "email", "link" Standard: "email"
E-Mails (optional, Array)
advertising (optional, InvitationAdvertising)Vom Verkäufer besetzter Bereich: mindestens ein Bildschirm oder Slot. Nur Bildschirme, nur Slots oder beides sind akzeptiert.
upload_scope (optional, UploadScope)

Was ein Uploader verwenden darf (docs/uploaders.md): die Playlists, deren Seiten er ändert, und die Medienordner, in die er hochlädt. Ordner sind genau die aufgelisteten, nie deren Unterordner. Eine ID, die beim Schreiben kein aktives Objekt des Projekts benennt, ergibt invalid_request an ihrer Position; ein späteres Löschen hinterlässt eine tote ID, die nichts gewährt.

Der Bereich wird bei jeder Anfrage gelesen, sodass eine Änderung ab der nächsten gilt.

screen_scope (optional, ScreenScope)

Worauf ein Mitglied oder Agent mit Bereich handeln darf (docs/screen-scope.md): die Bildschirme in den aufgeführten Bildschirmordnern und in jedem Ordner darin sowie die aufgeführten Bildschirme. Insgesamt mindestens eine ID. Eine ID, die beim Schreiben keinen aktiven Ordner oder Bildschirm des Projekts nennt, ist invalid_request an ihrer Position; eine spätere Löschung hinterlässt eine tote ID, die nichts gewährt.

Der Bereich wird bei jeder Anfrage gelesen, sodass eine Änderung bei der nächsten gilt. Tags sind nie ein Bereich.

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/invitations'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt Einladungen für Mitglieder oder Anzeigenkäufer.InvitationCreated (application/json); Header: RateLimit-Policy, RateLimit
402

feature_not_in_plan — ein Bildschirmbereich benötigt Enterprise, und ein Upload-Bereich (ein Uploader) benötigt Plus; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan. Das Einengen eines Upload-Bereichs und das Entfernen eines der beiden Bereiche sind immer erlaubt.

Problem (application/problem+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)
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
GET/api/projects/{project_id}/project

Projekt im Projekt erhalten

Das aufrufende Projekt. Belastet nicht den 1-Credit-API-Zähler, sodass ein Projekt mit null verbleibenden Credits weiterhin verbleibende Credits lesen und sich erholen kann. Nach erfolgreicher Projekt-Hauptauthentifizierung enthalten authentifizierte /api JSON- und Problemantworten ScreenRig-Credits-Remaining, ScreenRig-Credits-Reset und ScreenRig-Credits-Included als ganze Credits.

SSE-, Runtime-, Content- und nicht authentifizierte Antworten lassen diese weg.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getProjectInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project'

Antworten

StatusBedeutungTextkörper und Header
200ProjektProjekt (application/json); Header: ScreenRig-Credits-Remaining, ScreenRig-Credits-Reset, ScreenRig-Credits-Included, ScreenRig-Credits-Low
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/projects/{project_id}/project

Projekt im Projekt aktualisieren

Aktuelles Projekt umbenennen. Namen enthalten 1–60 druckbare Zeichen und keinen URL-ähnlichen Text.

Authentifizierung
projectBearer
Anfrageinhalt
ProjectPatch
Operations-ID
updateProjectInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Erwartete Projekt-ID. Der Server verweigert die Aktion, wenn die aktuelle Anmeldeinformation oder die Cookie-Sitzung auf ein anderes Projekt abzielt; Browser-Clients senden die Projekt-ID der Seite. minLength: 1 maxLength: 200
Name (erforderlich, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project'

Antworten

StatusBedeutungTextkörper und Header
200Aktuelles Projekt umbenennen.Projekt (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)
LÖSCHEN/api/projects/{project_id}/project

Projekt-Agent im Projekt löschen

Nur der Projektinhaber oder ein Administrator seiner Organisation darf es löschen; jeder andere Anrufer wird mit forbidden abgelehnt. Eine Person muss auch Mitglied des Projekts sein.

Ein Agent benötigt die Zielmitgliedschafts-Projektfähigkeit und löscht für seine verantwortliche Person, die Eigentümer oder Organisationsadministrator sein muss; ein Agent ohne verantwortliche Person kann nicht löschen, außer der Agent, der das Projekt eingeschrieben hat, während noch keine Person die Einschreibung akzeptiert hat.

Erfordert außerdem den aktuellen Namen und die Revision, null nicht archivierte Bildschirme, kein Guthaben, keine Reservierungen oder Schulden in der eigenen Wallet und keine Live-Werbung. Ein negativer Saldo unter kostenlosen oder Startbedingungen blockiert nicht; die Löschung schreibt ihn mit einem project_delete_writeoff-Buchungseintrag ab. Wartet auf Mitgliederbenachrichtigungen und verwendet den irreversiblen Tombstone.

Authentifizierung
projectBearer
Anfrageinhalt
ProjectDeleteConfirmation
Operations-ID
deleteProjectAgentInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Erwartete Projekt-ID. Der Server verweigert die Aktion, wenn die aktuelle Anmeldeinformation oder die Cookie-Sitzung auf ein anderes Projekt abzielt; Browser-Clients senden die Projekt-ID der Seite. minLength: 1 maxLength: 200
empty_only (optional, boolean)

Erfordert ein leeres Screens-Projekt in der Löschtransaktion, einschließlich Inhalt, anderer Agenten oder Mitglieder, Arbeit und Korrespondenz. Die CLI verlangt zusätzlich ihren gespeicherten Enrollment-Nachweis, bevor dieser Bereinigungsschutz verwendet wird. Weglassen bewahrt explizite Mitgliederlöschung.

Name (erforderlich, ProjectName)Gekürzter druckbarer Projektname. Steuert Steuerzeichen, URL-ähnlichen Text, @, www. und :// ab. minLength: 1 maxLength: 60
Revision (erforderlich, Ganzzahl)Minimum: 1
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project'

Antworten

StatusBedeutungTextkörper und Header
200Projektergebnis des LebenszyklusGelöschtes Projekt (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/projects/{project_id}/applications

Anwendungen im Projekt auflisten

Anwendungen neueste zuerst auflisten, maximal 500 pro Seite. Namen sind Bezeichnungen und müssen nicht eindeutig sein; eine Anwendung wird über die ID adressiert. next_cursor ist die Position der zuletzt zurückgegebenen Zeile, solange weitere Zeilen vorhanden sind; geben Sie ihn als after mit denselben Filtern für die nächste Seite zurück. next_cursor ist auf der letzten Seite null.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listApplicationsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
nachAbfrageoptionalnext_cursor der vorherigen Seite derselben Liste mit denselben Filtern. Wird ausgelassen, beginnt bei der neuesten Zeile. Ein Wert, der kein solcher Cursor ist, ist invalid_request.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/applications'

Antworten

StatusBedeutungTextkörper und Header
200AnwendungenApplicationList (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/projects/{project_id}/applications

Anwendung im Projekt hochladen

Streamt ein CLI-erzeugtes tar.gz direkt in eine begrenzte dauerhafte Staging-Umgebung. Metadaten werden in Headern übertragen, sodass das Archiv nie base64-kodiert oder vom Server als JSON materialisiert wird.

Der Proxy vor der API beendet eine Anfrage, die er nicht innerhalb von etwa 100 s beantwortet hat, sodass ein großes Archiv bei langsamer Uplink-Verbindung hier fehlschlägt; POST /api/applications/uploads sendet das Archiv stattdessen direkt an den Objektspeicher.

Authentifizierung
projectBearer
Anfrageinhalt
string
Operations-ID
uploadApplicationInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich
ScreenRig-Archive-SHA256Überschrifterforderlich
ScreenRig-Expanded-BytesÜberschrifterforderlich
ScreenRig-File-CountÜberschrifterforderlich
ScreenRig-SDK-VersionÜberschriftoptional
ScreenRig-Application-NameÜberschriftoptional

ASCII-Anwendungsname; gegenseitig ausschließend mit ScreenRig-Application-Name*. Führende und nachfolgende Leerzeichen werden entfernt. Steuerzeichen und doppelte Headerwerte werden abgelehnt. Der decodierte Name ist auf 120 Unicode-Skalarwerte begrenzt.

ScreenRig-Application-Name*Überschriftoptional

Unicode-Anwendungsname kodiert als RFC 8187 UTF-8'' gefolgt von prozentkodierten UTF-8-Bytes (leere Sprache, exakter UTF-8-Zeichensatz). Gegenseitig ausschließend mit ScreenRig-Application-Name. Ungültige Escape-Sequenzen, ungültiges UTF-8, Steuerzeichen und doppelte Header-Werte werden abgelehnt.

Führende und nachfolgende Leerzeichen werden entfernt; der decodierte Name ist auf 120 Unicode-Skalare begrenzt. Keiner der Namensheader darf ein Release-Update umbenennen. Dies vermeidet rohes Unicode in HTTP-Headerwerten.

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'ScreenRig-Archive-SHA256: VALUE' --header 'ScreenRig-Expanded-Bytes: VALUE' --header 'ScreenRig-File-Count: VALUE' --header 'Content-Type: application/gzip' --data-binary '@request.bin' 'https://api.screenrig.ai/api/projects/PROJECT_ID/applications'

Antworten

StatusBedeutungTextkörper und Header
202Upload akzeptiertOperation akzeptiert (application/json); Header: 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)
POST/api/projects/{project_id}/applications/uploads

Anwendungs-Upload im Projekt starten

Erklärt einen direkten Upload eines von der CLI erzeugten tar.gz, das eine neue Anwendung erstellt. Die Antwort ist eine signierte Autorisierung für genau einen Objekt-PUT des Archivs, sodass die Bytes direkt an den Objektspeicher gehen und nie durch die API, deren Proxy eine Anfrage beendet, die er nicht innerhalb von etwa 100 s beantwortet hat.

Senden Sie das Archiv per PUT an upload_url, bestätigen Sie dann mit POST /api/applications/uploads/{id}/commit und warten Sie auf die Operation. Die Anwendung, ihre Version und die empfangende Operation existieren ab dieser Antwort, wie nach POST /api/applications. Ein Upload, der nicht innerhalb von 24 Stunden bestätigt wird, schlägt fehl, und eine Anwendung, die nie eine Version veröffentlicht hat, wird entfernt.

Derselbe Idempotency-Key und derselbe Body beantworten denselben Upload mit einer frisch signierten URL. GET /api/capabilities setzt features.application_direct_uploads, wo diese Routen bedient werden.

Authentifizierung
projectBearer
Anfrageinhalt
ApplicationUploadDeclaration
Operations-ID
createApplicationUploadInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Name (optional, Zeichenkette)

Name einer neuen Anwendung, gekürzt; höchstens 120 Unicode-Zeichen und keine Steuerzeichen. Ausgelassen oder leer wählt einen generierten Namen. Eine Versionserklärung (POST /api/applications/{id}/uploads) darf keinen tragen. maxLength: 120

sha256 (erforderlich, Zeichenfolge)SHA-256 der Archiv-Bytes. pattern: "^[0-9a-f]{64}$"
compressed_bytes (erforderlich, Ganzzahl)Größe des Archivs in Bytes. Minimum: 1 Maximum: 104857600
expanded_bytes (erforderlich, Ganzzahl)Minimum: 1 Maximum: 262144000
file_count (erforderlich, Ganzzahl)Minimum: 1 Maximum: 5000
sdk_version (optional, string)maxLength: 64
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/applications/uploads'

Antworten

StatusBedeutungTextkörper und Header
201Signierte Autorisierung für genau einen Objekt-PUT des Archivs. Senden Sie die zurückgegebene Methode und jeden zurückgegebenen Header wörtlich; der PUT muss vor expires_at beginnen, zwei Stunden nach der Erklärung.ApplicationUploadSession (application/json); Header: Cache-Control, 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/projects/{project_id}/playlists

Playlists V2 im Projekt auflisten

Versionierte Playlist-Liste, die Adslot-Seiten anzeigen kann. Die v1-Liste lehnt eine Seite ab, die ein werbetragendes Dokument mit version_required enthält, anstatt es zu filtern.

Seiten wie listPlaylists, neueste zuerst, höchstens 200 pro Seite und weniger, sobald eine Seite 8 MiB gespeicherte Playlists enthält. next_cursor ist die Position der zuletzt zurückgegebenen Zeile, während weitere Zeilen vorhanden sind; geben Sie ihn als after mit denselben Filtern für die nächste Seite zurück. next_cursor ist auf der letzten Seite null. library=true listet stattdessen die Playlists der Bibliothek der Organisation auf (schreibgeschützt; planen Sie sie ein oder erstellen Sie Playlists aus ihren Vorlagen).

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listPlaylistsV2InProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
libraryAbfrageoptional

true listet statt dieses Projekts das Bibliotheksprojekt der Organisation auf: Seine Elemente sind hier schreibgeschützt und tragen library true. Eine Organisation ohne Bibliothek oder das Bibliotheksprojekt selbst listet mit true nichts auf.

nachAbfrageoptionalnext_cursor der vorherigen Seite derselben Liste mit denselben Filtern. Wird ausgelassen, beginnt bei der neuesten Zeile. Ein Wert, der kein solcher Cursor ist, ist invalid_request.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playlists'

Antworten

StatusBedeutungTextkörper und Header
200Playlists mit der Adslot-Seitenvereinigung.PlaylistV2List (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/projects/{project_id}/playlists

Playlist V2 im Projekt erstellen

Erstellungseintrag für die Werbeplatzseiten-Vereinigung. Maximal 16 Werbeplatzseiten, mindestens eine gewöhnliche Seite ohne Sichtbarkeit und die Wiederverwendung einer Slot-Definition auf verschiedenen Seiten bleiben Serverschecks. Referenzauflösung und DNS bleiben Serverschecks.

Ein Schreibvorgang mit einer iframe-Seite, die die Player-Web-App nicht einbetten kann, wird trotzdem gespeichert; die Antwort enthält Warnungen (PlaylistWarning) und das Projektprotokoll erhält pro Seite ein Ereignis playlist.iframe_framing_refused.

Ein Schreibvorgang, dessen iframe src, fallback_src oder Anwendungsparameter ein Bildschirm-Token ({screen.field.NAME} und die anderen der Primitiv-Schemas) lesen, das einem Bildschirm fehlt, der die Playlist zeigt, antwortet ebenfalls mit einer screen_fact_missing-Warnung, die die ersten 20 solcher Bildschirme nennt; die Manifeste dieser Bildschirme lassen dieses Primitiv weg.

Ein iframe-src oder -fallback_src, der ein Link zu Google Slides, Docs oder Sheets (Freigabe, Im Web veröffentlichen oder Einbetten) oder ein Embed-Link zu Microsoft 365 OneDrive oder SharePoint ist, wird für den Bildschirm umgebaut gespeichert; Slides laufen dort in einer Schleife und wechseln nach dem delayms des Links, begrenzt auf die Dauer der Seite, Docs, Sheets, Word und Excel laden alle 5 Minuten neu.

Ein eingefügter <iframe>-Einbettungscode in src oder fallback_src wird auf seine src ausgelesen. Eine Datei, die Betrachter zur Anmeldung auffordert, wird mit document_not_shared (400) abgelehnt; errors[0].field ist dann dieses src oder fallback_src und detail nennt die zu ändernde Freigabeeinstellung.

Authentifizierung
projectBearer
Anfrageinhalt
PlaylistCreateRequest
Operations-ID
createPlaylistV2InProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Screenrig-Review-NoteÜberschriftoptional

Optionale Vorschlag-Notiz bei einem Review-Klassen-Schreibvorgang, gesendet als prozentkodiertes UTF-8 (was JavaScript encodeURIComponent schreibt). Der Server dekodiert Prozentzeichen (ein ungültiger Escape ist 400 invalid_request); die dekodierte Notiz ist Klartext, maximal 280 Zeichen nach Trimmen, keine Steuerzeichen (sonst 400 invalid_request).

Gespeichert bei der Überprüfung, wenn der Schreibvorgang einer wird; ignoriert, wenn er live angewendet wird.

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]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playlists'

Antworten

StatusBedeutungTextkörper und Header
202

Der Schreibvorgang wurde zu einer Überprüfung und wartet auf die Genehmigung einer Person (docs/reviews.md), mit Propose-Zugriff oder auf jeder Zugriffsstufe, wenn er einen Bildschirm in einem geschützten Bildschirmordner erreicht, wo eine zweite genehmigende Person entscheidet (docs/screen-scope.md). Eine Person genehmigt, lehnt ab oder fordert Änderungen im Dashboard unter review.url an.

Eine Wiederholung mit demselben Idempotency-Key liefert denselben Body.

ReviewPending (application/json)
201Playlist mit ihren Adslot-Seiten.PlaylistV2 (application/json)
402

feature_not_in_plan — Das Deklarieren von Feldern, das Sperren eines Primitivs oder das Ändern einer Playlist, die Felder deklariert, ist eine Playlist-Vorlage, und der Plan des Projekts enthält sie nicht; required_plan nennt den Plan, der sie enthält. Das Erstellen einer Playlist aus einer Vorlage ist immer erlaubt.

Ein Format mit 2 oder mehr Displays (eine Videowand) ist Teil von Plus; ein Regionsformat und eine Playlist ohne Format sind in jedem Plan enthalten. Das Problem nennt die Funktion, den Plan des Projekts und required_plan.

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/projects/{project_id}/screens

Bildschirme im Projekt auflisten

Die Standardliste gibt pairing_pending und aktive Bildschirme zurück. Übergeben Sie state=archived, um nur archivierte Bildschirme aufzulisten. Übergeben Sie tag, um nur Bildschirme aufzulisten, deren Tags genau diesen Tag enthalten; ungetaggte Bildschirme werden bei vorhandenem Filter ausgelassen.

Übergeben Sie field je Feld einmal als NAME:VALUE, um nur Bildschirme aufzulisten, deren Felder jeden Wert enthalten, und near als LAT,LON,KM, um nur Bildschirme aufzulisten, die höchstens KM Kilometer vom Punkt entfernt liegen; Bildschirme ohne Standort werden ausgelassen, und jeder Filter lässt sich mit state und tag kombinieren.

Übergeben Sie folder als Bildschirmordner-ID, um nur die Bildschirme direkt darin aufzulisten (nicht die seiner Unterordner), oder root für die Bildschirme außerhalb jedes Ordners.

Bildschirme sind nach Neuesten zuerst sortiert, höchstens 500 pro Seite. next_cursor ist die Position der letzten zurückgegebenen Zeile, solange weitere Zeilen vorhanden sind; geben Sie ihn mit denselben Filtern als after zurück, um die nächste Seite zu erhalten. next_cursor ist auf der letzten Seite null. Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) listet nur die Bildschirme in seinem Bereich auf.

Eine Anfrage, die kein Projekt nennt, lässt jedes Projekt aus, in dem der Aufrufer auf Bildschirme beschränkt ist; nennen Sie das Projekt, um es aufzulisten.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listScreensInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
StatusAbfrageoptionalFür pairing_pending und active weglassen. Archivierte Bildschirme nur mit archived auflisten.
TagAbfrageoptionalExaktes Bildschirm-Tag. Bildschirme ohne Tag werden bei aktiviertem Filter ausgelassen.
fieldAbfrageoptional

NAME:VALUE, am ersten Doppelpunkt aufgeteilt: nur Bildschirme, deren Feld NAME genau VALUE enthält. Wiederholen Sie den Parameter für mehrere Felder; jedes muss übereinstimmen, und ein Name darf nur einmal angegeben werden. Ein fehlerhafter oder wiederholter Eintrag ergibt invalid_request mit Nennung von field.

nearAbfrageoptional

LAT,LON,KM in Dezimalgrad und Kilometern, zum Beispiel 47.6062,-122.3321,25: nur Bildschirme, deren Standort höchstens KM Kilometer vom Punkt entfernt liegt. Der Breitengrad reicht von -90 bis 90, der Längengrad von -180 bis 180, und KM ist größer als 0 und höchstens 20038. Bildschirme ohne Standort werden ausgelassen. Ein fehlerhafter Wert ergibt invalid_request mit Nennung von near.

OrdnerAbfrageoptionalEine Bildschirmordner-ID enthält nur die Bildschirme direkt in diesem Ordner, nicht die seiner Unterordner; root enthält nur die Bildschirme außerhalb jedes Ordners. Weggelassen listet jeden Bildschirm auf.
nachAbfrageoptionalnext_cursor der vorherigen Seite derselben Liste mit denselben Filtern. Wird ausgelassen, beginnt bei der neuesten Zeile. Ein Wert, der kein solcher Cursor ist, ist invalid_request.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens'

Antworten

StatusBedeutungTextkörper und Header
200BildschirmeScreenList (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/projects/{project_id}/screen-folders

Bildschirmordner im Projekt auflisten

Alle Bildschirmordner im Projekt auflisten, maximal 1000, sortiert nach Name.

Ordner organisieren Bildschirme und sprechen sie gezielt an: Ein Zielgruppenblatt {"folder": ID} einer Kampagne trifft auf die Bildschirme in diesem Ordner und in jedem darin enthaltenen Ordner zu, ein Flottenaktions-Selektor by:folder wirkt auf dieselben Bildschirme, und die default_playlist_id eines Ordners ist das, was seine Bildschirme ohne eigene Playlist anzeigen. parent_id ist null an der Projektwurzel; bauen Sie den Baum aus parent_id. screens zählt die Live-Bildschirme direkt in jedem Ordner.

Der Ordner eines Bildschirms ist Screen.folder_id. Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) listet die Ordner innerhalb seines Bereichs und die Ordner darüber auf, die schreibgeschützt sind, damit sein Baum eine Wurzel hat; Ordner darüber tragen keine Bildschirmanzahl, und Geschwisterordner sind ausgeblendet. Eine Anfrage, die kein Projekt nennt, lässt jedes Projekt aus, in dem der Aufrufer auf Bildschirme beschränkt ist.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listScreenFoldersInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screen-folders'

Antworten

StatusBedeutungTextkörper und Header
200BildschirmordnerScreenFolderList (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/projects/{project_id}/screen-folders

Bildschirmordner im Projekt erstellen

Erstellt einen Bildschirmordner in der Projektwurzel (parent_id null oder nicht vorhanden) oder innerhalb von parent_id. Namen werden getrimmt, enthalten 1 bis 100 Unicode-Zeichen ohne Steuerzeichen, sind nicht "." oder ".." und sind unter den Ordnern derselben Ebene eindeutig (resource_conflict).

Eine Organisation hält höchstens 1000 Ordner über alle ihre Projekte (quota_exceeded), maximal 10 Ebenen tief (invalid_request). default_playlist_id muss, wenn gesetzt, eine genehmigte Playlist benennen (playlist_not_approved). Sendet screen.folder_created.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) erstellt einen Ordner nur innerhalb eines Ordners seines Bereichs; die Projektwurzel oder jedes andere übergeordnete Element ist outside_screen_scope. Das Erstellen eines Ordners in einem geschützten Ordner ist eine protected_change-Überprüfung (202 pending_review), die eine zweite genehmigende Person entscheidet.

Authentifizierung
projectBearer
Anfrageinhalt
ScreenFolderCreate
Operations-ID
createScreenFolderInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)Getrimmt; 1 bis 100 Unicode-Zeichen, keine Steuerzeichen, nicht . oder .., unter den Ordnern derselben Ebene eindeutig. minLength: 1 maxLength: 100
parent_id (optional, inline)Der Ordner, in dem er erstellt werden soll; null oder fehlt für die Projektwurzel.
default_playlist_id (optional, string)Eine genehmigte Playlist für die Bildschirme des Ordners ohne eigene. minLength: 1
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screen-folders'

Antworten

StatusBedeutungTextkörper und Header
201Ordner erstellt.ScreenFolder (application/json); Header: ETag
202

Der Schreibvorgang wurde zu einer Überprüfung und wartet auf die Genehmigung einer Person (docs/reviews.md), mit Propose-Zugriff oder auf jeder Zugriffsstufe, wenn er einen Bildschirm in einem geschützten Bildschirmordner erreicht, wo eine zweite genehmigende Person entscheidet (docs/screen-scope.md). Eine Person genehmigt, lehnt ab oder fordert Änderungen im Dashboard unter review.url an.

Eine Wiederholung mit demselben Idempotency-Key liefert denselben Body.

ReviewPending (application/json)
403outside_screen_scope wie bei OutsideScreenScope oder approver_required - ein auf Bildschirme beschränktes Mitglied, das Überprüfungen nicht genehmigen kann, ändert nicht, was ein Bildschirm abspielt oder wann (docs/screen-scope.md).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/projects/{project_id}/screens/move

Bildschirme im Projekt verschieben

Verschiebt Bildschirme (screen_ids) und Ordner (folder_ids) in einen Ordner (folder_id) oder zur Projektwurzel, wenn folder_id null ist, in einer einzigen Alles-oder-Nichts-Anfrage mit maximal 1000 IDs. Jede ID muss existieren (not_found). Ein Ordner kann nicht in sich selbst oder einen darin enthaltenen Ordner verschoben werden, und die Verschiebung muss alle Ordner innerhalb von 10 Ebenen halten (invalid_request).

Elemente, die sich bereits am Ziel befinden, bleiben unverändert; jeder verschobene Bildschirm und Ordner erhöht seine Revision. Verschobene Bildschirme lösen ihre Playlist innerhalb von etwa 15 Sekunden neu auf: levels nennt die Kampagnen, in deren Ordner-Zielgruppe sie eintreten oder aus der sie austreten, und die Standard-Playlists von Ordnern, die sie erhalten oder verlieren. Sendet screen.moved.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) verschiebt Bildschirme und Ordner innerhalb seines Bereichs in einen Ordner seines Bereichs; jede ID oder jedes Ziel außerhalb davon sowie die Projektwurzel lehnen die gesamte Verschiebung ab (outside_screen_scope), auch wenn ein Bildschirm den Bereich zwischen Prüfung und Schreiben verlässt.

Ein Verschieben in einen geschützten Ordner hinein oder aus ihm heraus ist eine protected_change-Überprüfung (202 pending_review), die eine zweite genehmigende Person entscheidet.

Authentifizierung
projectBearer
Anfrageinhalt
ScreenMove
Operations-ID
moveScreensInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
folder_id (erforderlich, inline)Zielordner; null für die Projektwurzel.
screen_ids (optional, array)
folder_ids (optional, Array)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens/move'

Antworten

StatusBedeutungTextkörper und Header
200Wie viele Bildschirme und Ordner verschoben wurden und welche levels die verschobenen Bildschirme erhalten oder verlieren.ScreenMoveResult (application/json)
202

Der Schreibvorgang wurde zu einer Überprüfung und wartet auf die Genehmigung einer Person (docs/reviews.md), mit Propose-Zugriff oder auf jeder Zugriffsstufe, wenn er einen Bildschirm in einem geschützten Bildschirmordner erreicht, wo eine zweite genehmigende Person entscheidet (docs/screen-scope.md). Eine Person genehmigt, lehnt ab oder fordert Änderungen im Dashboard unter review.url an.

Eine Wiederholung mit demselben Idempotency-Key liefert denselben Body.

ReviewPending (application/json)
403outside_screen_scope wie bei OutsideScreenScope oder approver_required - ein auf Bildschirme beschränktes Mitglied, das Überprüfungen nicht genehmigen kann, ändert nicht, was ein Bildschirm abspielt oder wann (docs/screen-scope.md).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/projects/{project_id}/schedule/calendar

Zeitplankalender im Projekt erhalten

Beantwortet, was die Bildschirme eines Subjekts über [from, to) abspielen und warum, für den Zeitplankalender des Dashboards: genau eines von screen_id, folder_id (die Bildschirme im Ordner und in jedem darin enthaltenen Ordner), tag oder campaign_id (die Bildschirme ihrer Zielgruppe).

Bildschirme, deren Stacks identische Eingaben haben (dieselben Ebenen, Standard, Zeitzone und Display-Anzahl), teilen sich eine Gruppe mit einer Zeitleiste, sodass ein großes Subjekt nur Dutzende Zeitleisten kostet; eine Gruppe listet bis zu 500 ihrer Bildschirme und eine Antwort höchstens 200 Gruppen (truncated).

Jede Gruppe trägt ihren Stack, höchste zuerst (Übernahme, Kampagnen, die die Bildschirme erreichen, deren eigene Zeitplaneinträge, dann die Standard-Playlist oder die des nächstgelegenen Ordners), die spans jeder Ebene (spielt auf jedem Display, auf das sie zielt, partial mit den Displays, auf denen sie spielt, outranked oder conditional, solange sie auf Interaktion oder eine Datenbedingung wartet, die nur ein Player beobachtet), was jedes Display zeigt (on_screen; die Hauptregion einer Vollseite) und conflicts (zwei Kampagnen gleicher Priorität, die gleichzeitig gelten; eine Ebene, die gilt, aber nie spielt). from und to sind RFC-3339-Zeitpunkte, to nach from, höchstens 93 Tage auseinander; sie werden auf die Minute gekürzt.

Regeln werden in der Zeitzone jeder Gruppe gelesen, so wie der Sweep und jeder Player sie lesen; jede Ebene gilt als abspielbar. Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) muss eine screen_id oder eine folder_id innerhalb seines Bereichs senden; ein Tag, eine campaign_id oder kein Subjekt ist outside_screen_scope.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getScheduleCalendarInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
vonAbfrageerforderlich
bisAbfrageerforderlich
screen_idAbfrageoptional
folder_idAbfrageoptional
TagAbfrageoptional
campaign_idAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/schedule/calendar?from=FROM&to=TO'

Antworten

StatusBedeutungTextkörper und Header
200Der Kalender des Subjekts.ScheduleCalendar (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/api/projects/{project_id}/schedule/imports/template

Vorlage für den Zeitplan-Import im Projekt abrufen

Liefert eine Tabelle mit den Spalten, die ein Zeitplan-Import liest, und drei Beispielzeilen (ein Bildschirmcode, ein Bildschirmordner und ein Tag) als CSV oder, mit format=xlsx, als XLSX-Arbeitsmappe.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getScheduleImportTemplateInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
FormatAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/schedule/imports/template'

Antworten

StatusBedeutungTextkörper und Header
200Die Vorlagentabelle.string (text/csv), string (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
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/projects/{project_id}/schedule/imports/preview

Vorschau des Zeitplan-Imports im Projekt

Liest eine Tabelle mit Zeitplanzeilen gegen das Projekt und liefert, was ihr Commit bewirken würde, ohne etwas zu schreiben.

Jede Zeile nennt ein Ziel (einen Bildschirm per ID, per Wert eines Bildschirmfelds wie eines Raumcodes oder per Namen; folder:NAME; tag:NAME; mehrere getrennt durch ; oder |), Inhalt (einen Mediendateinamen oder playlist:NAME oder eine Playlist-ID), einen Beginn und ein Ende (ein Datum allein als Ende schließt diesen Tag) und optional timezone, days (Mon-Fri), ein Tagesfenster (daily_start, daily_end), priority 0 bis 100, einen Namen und Display-Nummern.

Zeiten werden auf der eigenen Uhr jedes Bildschirms gelesen; eine timezone-Spalte rechnet sie aus einer anderen Zone um.

Jede Zeile wird geprüft und meldet ihre Fehler nach Spalte: unbekannter oder mehrdeutiger Bildschirm, Ordner oder Tag, fehlende oder mehrdeutige Datei, eine Datei, die einen Bildschirm nicht füllen kann, ungültige oder umgekehrte Zeiten, ein Ende in der Vergangenheit, keine Zeitangabe, ein Bildschirm ohne Zeitzone oder Standard-Playlist, zwei Zeilen, die auf einem Bildschirm gleichzeitig mit derselben Priorität gelten, und mehr Ebenen, als ein Bildschirm fasst (32), oder mehr Kampagnen, als seine Organisation über alle ihre Projekte fasst (100; jede gemeinsame Ebene ist eine davon).

Zeilen, die in Inhalt, Zeiten, Priorität und Name übereinstimmen, werden zu einer Ebene: Ein Bildschirm ist ein Eintrag im eigenen Zeitplan dieses Bildschirms; mehrere Bildschirme, ein Ordner oder ein Tag sind eine gemeinsame Ebene (eine Kampagne), die Vorrang vor den eigenen Ebenen eines Bildschirms hat.

Die Antwort listet die Ebenen auf, mit dem, was ein Commit mit jeder tut (create, update, unchanged), die Ebenen, die ein früherer Lauf desselben Imports angelegt hat und die die Tabelle nicht mehr enthält (removals), die Stapel der Bildschirme, wie sie wären (calendar), und einen Fingerprint, der an den Commit gesendet wird. Die Tabelle besteht aus JSON-Zeilen, CSV oder XLSX, höchstens 5,000 Zeilen.

Für einen auf Bildschirme beschränkten Aufrufer nicht verfügbar (outside_screen_scope). Der Zeitplan-Import ist Teil des Enterprise-Plans; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt. Die Vorlage ist in jedem Plan offen.

Authentifizierung
projectBearer
Anfrageinhalt
ScheduleImportRequest
Operations-ID
previewScheduleImportInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
nameAbfrageoptionalDer Name des Imports; ein erneuter Import unter demselben Namen aktualisiert die Ebenen, die er angelegt hat (Standard import). Wird mit einem Datei-Body gesendet.
ZeitzoneAbfrageoptionalDie IANA-Zone, in der die Zeiten geschrieben sind, wenn eine Zeile keine timezone hat. Ohne sie werden die Zeiten auf der eigenen Uhr jedes Bildschirms gelesen.
QuelleAbfrageoptionalDer Dateiname, aufgezeichnet mit dem Import.
code_fieldAbfrageoptionalEinen Bildschirmcode nur aus diesem Bildschirmfeld lesen (zum Beispiel code oder room_id); sonst stimmt ein Code mit jedem Feld überein.

Anfrageinhalt-Felder

FeldBeschreibung
Name (optional, Zeichenkette)Kennzeichnet den Import; derselbe Name aktualisiert die Ebenen, die er angelegt hat (Standard import). minLength: 1 maxLength: 80
source (optional, String)Die Datei, aus der die Zeilen stammen. maxLength: 200
Zeitzone (optional, Zeichenkette)Die IANA-Zone, in der die Zeiten geschrieben sind, wenn eine Zeile keine timezone hat.
code_field (optional, String)Einen Bildschirmcode nur aus diesem Bildschirmfeld lesen.
fingerprint (optional, String)Der Fingerprint der Vorschau; für den Commit erforderlich.
rows (erforderlich, Array)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/schedule/imports/preview'

Antworten

StatusBedeutungTextkörper und Header
200Die Vorschau. valid ist false, solange eine Zeile einen Fehler hat.ScheduleImportPreview (application/json)
402feature_not_in_plan — Der Zeitplan-Import ist Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan.Problem (application/problem+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)
POST/api/projects/{project_id}/schedule/imports

Zeitplan-Import im Projekt committen

Führt einen in der Vorschau angezeigten Import als Commit aus: dieselbe Tabelle und der Fingerprint, den ihre Vorschau geliefert hat. Jede Ebene wird angelegt, aktualisiert oder entfernt, die Zeitpläne der Bildschirme und die gemeinsamen Ebenen werden in einer Transaktion geschrieben, und das Importereignis schedule.imported wird angehängt: Alle Zeilen werden angewendet oder keine.

Die Ein-Datei-Playlists, die die Dateien der Tabelle benötigen, werden zuerst angelegt (sie ändern nichts auf einem Bildschirm). Eine Tabelle, deren Zeilen Fehler haben, wird abgelehnt (schedule_import_invalid); ein Projekt, das sich seit der Vorschau geändert hat, oder Zeilen, die anders gelesen werden, werden abgelehnt (schedule_import_stale), und der Client ruft die Vorschau erneut auf.

Wird dieselbe Tabelle unter demselben Namen erneut importiert, ändert sich nichts; eine geänderte Zeile aktualisiert ihre Ebene, und eine entfernte Zeile entfernt ihre Ebene. Erfordert eine Person, die im Dashboard genehmigen kann, und für einen Agenten Zugangsdaten mit Schreibzugriff.

Ein Commit, der eine reservierte Kampagne aktualisieren oder löschen würde, wird mit reserved_item (403) beantwortet und schreibt nichts, es sei denn, eine Person, die genehmigen kann, führt den Commit aus.

Ein Commit, der einen geschützten Bildschirm erreicht, wird vollständig mit protected_target abgelehnt, auch wenn der Import keine levels hat, aber Importeinträge eines geschützten Bildschirms entfernt oder eine Import-Kampagne löscht, deren Zielgruppe einen solchen erreicht.

In einem Projekt mit geschützten Bildschirmordnern wird ein Commit, dessen Vorschau an einem Dienst scheitert, nicht am Blatt, mit dependency_unavailable beantwortet und schreibt nichts: Senden Sie dieselbe Anfrage nach kurzer Wartezeit erneut. Ein Validierungsfehler bei Blatt, Kampagne oder Bildschirm wird so beantwortet, wie es der Commit täte (invalid_request und die anderen oben genannten Probleme).

Für einen auf Bildschirme beschränkten Aufrufer nicht verfügbar. Der Zeitplan-Import ist Teil des Enterprise-Plans; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt. Die Vorlage ist in jedem Plan offen.

Authentifizierung
projectBearer
Anfrageinhalt
ScheduleImportRequest
Operations-ID
commitScheduleImportInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.
fingerprintAbfrageoptionalDer Fingerprint der Vorschau, für einen CSV- oder XLSX-Body; ein JSON-Body trägt ihn als Feld.
nameAbfrageoptionalDer Name des Imports; ein erneuter Import unter demselben Namen aktualisiert die Ebenen, die er angelegt hat (Standard import). Wird mit einem Datei-Body gesendet.
ZeitzoneAbfrageoptionalDie IANA-Zone, in der die Zeiten geschrieben sind, wenn eine Zeile keine timezone hat. Ohne sie werden die Zeiten auf der eigenen Uhr jedes Bildschirms gelesen.
QuelleAbfrageoptionalDer Dateiname, aufgezeichnet mit dem Import.
code_fieldAbfrageoptionalEinen Bildschirmcode nur aus diesem Bildschirmfeld lesen (zum Beispiel code oder room_id); sonst stimmt ein Code mit jedem Feld überein.

Anfrageinhalt-Felder

FeldBeschreibung
Name (optional, Zeichenkette)Kennzeichnet den Import; derselbe Name aktualisiert die Ebenen, die er angelegt hat (Standard import). minLength: 1 maxLength: 80
source (optional, String)Die Datei, aus der die Zeilen stammen. maxLength: 200
Zeitzone (optional, Zeichenkette)Die IANA-Zone, in der die Zeiten geschrieben sind, wenn eine Zeile keine timezone hat.
code_field (optional, String)Einen Bildschirmcode nur aus diesem Bildschirmfeld lesen.
fingerprint (optional, String)Der Fingerprint der Vorschau; für den Commit erforderlich.
rows (erforderlich, Array)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/schedule/imports'

Antworten

StatusBedeutungTextkörper und Header
200Was der Commit angewendet hat.ScheduleImportCommitted (application/json)
402feature_not_in_plan — Der Zeitplan-Import ist Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan.Problem (application/problem+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)
409

protected_target - die Änderung erreicht einen Bildschirm in einem geschützten Bildschirmordner und hat kein Überprüfungsformular (docs/screen-scope.md). Heben Sie den Schutz des Ordners über eine Überprüfung auf, nehmen Sie die Änderung vor und schützen Sie den Ordner wieder.

Problem (application/problem+json)
500dependency_unavailable - die Prüfung auf geschützte Bildschirmordner konnte nicht ausgeführt werden; senden Sie dieselbe Anfrage nach kurzer Wartezeit erneut.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/projects/{project_id}/project/browser-links/claim

Browser-Link im Projekt beanspruchen

Beansprucht einen Browser-Link-Code für das authentifizierte Projekt und erstellt atomar genau einen ersten pairing_pending Bildschirm plus dessen bestehenden Browser-Berechtigungsnachweis. Die Anmeldung bleibt projektbezogen. Die Antwort enthält nur sichere Metadaten und niemals einen Bereitstellungstoken, Fragment-URL, Cookie oder Nachweis.

Authentifizierung
projectBearer
Anfrageinhalt
BrowserLinkClaimRequest
Operations-ID
claimBrowserLinkInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Code (erforderlich, Zeichenfolge)Muster: "^[23456789ABCDEFGHJKMNPQRSTUVWXYZ]{3}-?[23456789ABCDEFGHJKMNPQRSTUVWXYZ]{3}$"
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/browser-links/claim'

Antworten

StatusBedeutungTextkörper und Header
201Exakte wiedergabesichere fragmentfreie Browser-Link-Anspruch.BrowserLinkClaim (application/json); Header: Cache-Control, RateLimit-Policy, RateLimit
400

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)
403

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)
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)
409

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)
410

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)
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
500

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)
POST/api/projects/{project_id}/screens/pair

Bildschirm im Projekt koppeln

Beansprucht eine fleet-weite sechsstellige Player-Pairing-Sitzung. Exakte Idempotency-Key-Wiederholungen liefern das dauerhafte Originalergebnis ohne erneuten Verbrauch des Kontingents.

Die Dashboard-Sitzung beansprucht den Code in ihrem aktuellen Projekt mit demselben Body, Idempotency-Key, denselben Budgets und Problemen, mit dem Unterschied, dass sein not_found bei einem unbekannten oder bereits beanspruchten Code keinen CLI-Befehl nennt; es ist eine Zustandsänderung, daher folgt es den Dashboard-Mutationsregeln, eine Schattensitzung ohne Staff-Schreibmodus wird abgelehnt, und die Ereignisse, die der Claim anhängt, nennen den Dashboard-Benutzer. folder_id nennt den Ordner, in dem der Bildschirm landet.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) muss einen Ordner innerhalb seines Bereichs senden und koppelt nur als Person, die genehmigen kann (outside_screen_scope, approver_required).

Authentifizierung
projectBearer
Anfrageinhalt
PairScreen
Operations-ID
pairScreenInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Code (erforderlich, Zeichenfolge)Muster: "^[23456789ABCDEFGHJKMNPQRSTUVWXYZ]{6}$"
label (optional, string)minLength: 1 maxLength: 120
folder_id (optional, String)

Der Bildschirmordner, in dem der Bildschirm landet; ohne Angabe landet er an der Projektwurzel. Ein auf Bildschirme beschränkter Aufrufer muss einen Ordner innerhalb seines Bereichs senden (sonst outside_screen_scope). Ein Ordner, den das Projekt nicht enthält, ist für einen Aufrufer des gesamten Projekts invalid_request.

Teil der idempotenten Anfrage: Ein anderer folder_id unter demselben Idempotency-Key ist idempotency_mismatch. minLength: 1

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens/pair'

Antworten

StatusBedeutungTextkörper und Header
201Dauerhafte pairing_pending Bildschirm-Anforderung.PairingClaim (application/json); Header: Cache-Control, RateLimit-Policy, RateLimit
400

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)
401

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)
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)
409

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)
413

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)
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
500

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)
403outside_screen_scope wie bei OutsideScreenScope oder approver_required - ein auf Bildschirme beschränktes Mitglied, das Überprüfungen nicht genehmigen kann, ändert nicht, was ein Bildschirm abspielt oder wann (docs/screen-scope.md).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/projects/{project_id}/screens/provision

Bildschirm im Projekt bereitstellen

Optionale Bereitstellung eines neuen Bildschirms, nur im Browser. Legt immer einen neuen Bildschirm mit pairing_pending an; höchstens fünf warten gleichzeitig auf die Kopplung (quota_exceeded). Exakte Wiederholungen liefern zehn Minuten lang dasselbe Fragment-Token erneut aus. Die sechsstellige Kopplung bleibt der Standard- und einzige Wiederherstellungsablauf. folder_id nennt den Ordner, in dem der Bildschirm landet.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) muss einen Ordner innerhalb seines Bereichs senden (sonst outside_screen_scope).

Authentifizierung
projectBearer
Anfrageinhalt
Bildschirm bereitstellen
Operations-ID
provisionScreenInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
label (optional, string)minLength: 1 maxLength: 120
folder_id (optional, String)Der Bildschirmordner, in dem der Bildschirm landet, wie bei PairScreen. minLength: 1
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens/provision'

Antworten

StatusBedeutungTextkörper und Header
201Neuer Browser-Bereitstellungslink.ScreenProvisioning (application/json); Header: Cache-Control, RateLimit-Policy, RateLimit
400

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)
401

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)
409

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)
410

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)
413

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)
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
500

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)
403outside_screen_scope wie bei OutsideScreenScope oder approver_required - ein auf Bildschirme beschränktes Mitglied, das Überprüfungen nicht genehmigen kann, ändert nicht, was ein Bildschirm abspielt oder wann (docs/screen-scope.md).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/projects/{project_id}/screens/actions

Bildschirmaktionen im Projekt anwenden

Wendet eine Aktion auf eine ausgewählte Flotte ohne Bildschirmanzahlbegrenzung an. Wählen Sie eindeutige screen_ids oder einen Tag, der aktive Bildschirme in Erstellungsreihenfolge abdeckt. Die aufgelöste Auswahl wird vor jeder Änderung fixiert, in begrenzten Blöcken gespeichert und für vierundzwanzig Stunden unter Idempotency-Key aufbewahrt.

Jeder Schritt verwendet seinen Ein-Bildschirm-Mutationspfad, bewahrt Revisionen, Ereignisse, Laufzeitsignale und Bildschirmbegrenzungen. Eine Antwort enthält eine begrenzte Seite von Ergebnissen; Übereinstimmungen, Erfolge und Fehler beschreiben diese Seite. HTTP 202 enthält total, offset und next_cursor. Fahren Sie mit demselben Selektor, Aktion und Idempotency-Key fort und übergeben Sie next_cursor als after.

Berücksichtigen Sie Retry-After, wenn vorhanden, auch bei einer Seite mit null Ergebnissen. Die Antwort gibt Idempotency-Key zurück, einschließlich eines generierten Schlüssels, wenn der Aufrufer ihn weggelassen hat; bewahren Sie diesen Schlüssel für Fortsetzungen auf. HTTP 200 beendet die Auswahl. Beantwortete Seiten werden exakt wiedergegeben, einschließlich bildschirmbezogener Fehler; unterbrochene Schritte werden ohne Wiederholung ihrer Effekte erneut abgespielt.

Große Aktionen werden gegen die bestehenden 600-pro-Minute-Organisationsbudgets für Neu laden, Toast, Übernahme, Playlist-Zeitpläne, Neustart, Display und Display-Zeitpläne abgestimmt; Erschöpfung des Organisationsbudgets pausiert die Aktion, statt die Flotte abzulehnen. Pro-Bildschirm-Erschöpfung schlägt nur bei diesem Bildschirm fehl.

Ein assign-, takeover- oder set_playlist_schedule-Schritt, der eine Playlist mit einem Format an einen Bildschirm bindet, dessen Wand eine andere Form hat, lässt nur diesen Bildschirm mit 409 playlist_format_mismatch fehlschlagen. Zuweisungen und Tag-Änderungen haben kein Nachrichtenbudget.

Eine Zuweisung, deren Playlist ein iframe src oder Anwendungsparameter hat, die ein Bildschirm-Token lesen, das einem Bildschirm der Seite fehlt, fügt dieser Seite eine screen_fact_missing-Warnung hinzu (warnings, PlaylistWarning). Teilweises Scheitern ist ein normales Ergebnis. Alle Seiten und Wiederholungen unter einem Schlüssel sind eine gemessene Aktion.

Anfragen verwenden eine begrenzte Byte-Nutzlast; verwenden Sie einen Tag für eine Auswahl, die größer ist als die Transport-Nutzlast. Ein fehlerhafter Selektor oder eine fehlerhafte Aktion wird abgelehnt, bevor ein Bildschirm berührt wird. selector oder action wird abgelehnt, bevor ein Bildschirm berührt wird.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) wählt per screen_ids oder per Ordner aus, jeweils jeden Bildschirm innerhalb seines Bereichs; ein Tag-Selektor, ein Bildschirm außerhalb des Bereichs oder ein unbekannter Bildschirm lehnt die gesamte Aktion ab (outside_screen_scope), bevor etwas festgeschrieben oder vorgeschlagen wird.

Assign, takeover, takeover_clear, set_playlist_schedule und clear_playlist_schedule, die einen geschützten Bildschirm erreichen, werden auf jeder Zugriffsstufe zu einer Überprüfung, die eine zweite genehmigende Person entscheidet (202 pending_review); set_tags, add_tags und remove_tags auf einem geschützten Bildschirm sind protected_target (409).

Eine set_playlist_schedule-Aktion mit einem pausierten Eintrag (einem Entwurf) fällt unter die Änderungskontrolle für Zeitpläne, die der Enterprise-Plan enthält; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt.

Authentifizierung
projectBearer
Anfrageinhalt
ScreenActionRequest
Operations-ID
applyScreenActionsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Screenrig-Review-NoteÜberschriftoptional

Optionale Vorschlag-Notiz bei einem Review-Klassen-Schreibvorgang, gesendet als prozentkodiertes UTF-8 (was JavaScript encodeURIComponent schreibt). Der Server dekodiert Prozentzeichen (ein ungültiger Escape ist 400 invalid_request); die dekodierte Notiz ist Klartext, maximal 280 Zeichen nach Trimmen, keine Steuerzeichen (sonst 400 invalid_request).

Gespeichert bei der Überprüfung, wenn der Schreibvorgang einer wird; ignoriert, wenn er live angewendet wird.

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.
nachAbfrageoptionalnext_cursor von der vorherigen Ergebnissseite. Verwenden Sie den ursprünglichen Idempotency-Key und den Anforderungskörper erneut.

Anfrageinhalt-Felder

FeldBeschreibung
selector (erforderlich, ScreenActionSelector)
Aktion (erforderlich, ScreenAction)Eine Flottenaktion, unterschieden nach Typ. Jedes Mitglied trägt nur seine eigenen Parameter; ein Mitglied eines anderen Typs ist ein unbekanntes Feld und invalid_request.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/screens/actions'

Antworten

StatusBedeutungTextkörper und Header
200Pro Bildschirm Ergebnisse. Teilweiser Erfolg ist eine normale Antwort.ScreenActionResult (application/json); Header: Idempotency-Key, Cache-Control, RateLimit-Policy, RateLimit
202

Es verbleiben weitere Bildschirme (mit next_cursor und demselben Idempotency-Key und Body fortfahren, Retry-After beachten), oder, mit dem Status pending_review, wurde die Aktion zu einer Überprüfung bei Propose-Zugriff (docs/reviews.md) oder auf jeder Zugriffsstufe, weil sie einen Bildschirm in einem geschützten Bildschirmordner erreicht (docs/screen-scope.md).

Nur assign, takeover, takeover_clear, set_playlist_schedule und clear_playlist_schedule werden zu Reviews; jede andere Aktion ist insufficient_access für Propose.

inline (application/json); Header: Idempotency-Key, Retry-After, Cache-Control, RateLimit-Policy, RateLimit
400

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)
401

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)
402

feature_not_in_plan — set_reboot_schedule mit enabled true (geplante Neustarts) und set_playlist_schedule mit einer displays-Sperre (Videowände) sind Teil von Plus; die Aktionen zum Aufheben und einmalige Befehle sind offen. payment_required — das Projekt hat kein Guthaben mehr. Das Problem nennt die Funktion, den Plan des Projekts und required_plan.

Problem (application/problem+json)
403insufficient_access, outside_screen_scope, wenn ein auf Bildschirme beschränkter Aufrufer außerhalb seines Bereichs auswählt, oder approver_required bei einem auf Bildschirme beschränkten Mitglied, das nicht genehmigen kann.Problem (application/problem+json)
409

playlist_format_mismatch und die anderen Konflikte der Aktion oder protected_target, wenn set_tags, add_tags, remove_tags, toast, display, display_clear, set_display_schedule oder clear_display_schedule einen Bildschirm in einem geschützten Bildschirmordner erreicht.

Problem (application/problem+json)
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)
POST/api/projects/{project_id}/tab-shares

Tab-Freigabe im Projekt starten

Zeigt Browser-Tabs auf Bildschirmen im benannten Projekt; Anfrage, Antwort, Zugriff und Limits entsprechen POST /api/tab-shares.

Authentifizierung
projectBearer
Anfrageinhalt
TabShareWrite
Operations-ID
startTabShareInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
screen_ids (optional, array)Bildschirme nach id. Duplikate werden zusammengeführt.
folder_ids (optional, Array)Bildschirmordner; jeder enthält alle untergeordneten Ordner.
tags (optional, array)Ein Bildschirm mit mindestens einem der Tags.
tabs (erforderlich, array)
cookies (optional, array)Die Cookies des Absenders für die Seiten, höchstens 64 KiB kodiert. Geheim; siehe POST /api/tab-shares.
reload_s (optional, integer)0 (nie, der Standard) oder 60 bis 86400: So oft wird das iframe jeder Seite neu geladen.
until (optional, string)Strikt in der Zukunft und höchstens 24 Stunden voraus; ohne Angabe 24 Stunden ab jetzt. Ende der Übernahme auf jedem Ziel und Ablauf der temporären Playlist. format: "date-time"
qr (optional, boolean)Bei true trägt jede Seite unten rechts einen QR-Code ihrer Adresse. Standardmäßig false.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/tab-shares'

Antworten

StatusBedeutungTextkörper und Header
200Die Freigabe. Mindestens ein Bildschirm wurde übernommen.TabShare (application/json); Header: RateLimit-Policy, RateLimit
400

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)
401

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)
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)
409

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)
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
403outside_screen_scope wie bei OutsideScreenScope oder approver_required - ein auf Bildschirme beschränktes Mitglied, das Überprüfungen nicht genehmigen kann, ändert nicht, was ein Bildschirm abspielt oder wann (docs/screen-scope.md).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/projects/{project_id}/campaigns

Kampagnen im Projekt auflisten

Listet die Kampagnen des Projekts in Rangfolge auf (höchstens 100), in der Reihenfolge, in der die Auflösung sie liest. reserved ist bei jeder Kampagne vorhanden.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) sieht jede Kampagne, mit editable true nur dann, wenn die gesamte Zielgruppe innerhalb seines Bereichs liegt (ein Tag-Blatt und die Wurzelregel für jeden Bildschirm sind es nie; eine all-Regel braucht ein enthaltenes Kind, eine any-Regel jedes Kind) und der Aufrufer ändern darf, was abgespielt wird.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listCampaignsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/campaigns'

Antworten

StatusBedeutungTextkörper und Header
200Die Kampagnen des Projekts.CampaignList (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/projects/{project_id}/campaigns

Kampagne im Projekt erstellen

createCampaign für das im Pfad genannte Projekt. reserved true reserviert die Kampagne, und nur eine Person, die genehmigen kann, setzt es (reserved_item für einen Agenten, einen Service-Client oder jeden anderen), wobei campaign.reserved_changed angehängt wird.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) erstellt eine Kampagne nur für eine Zielgruppe innerhalb seines Bereichs (Blätter vom Typ folder und screen_id; kein Tag, nicht alle Bildschirme), sonst outside_screen_scope, und nur als Person, die genehmigen kann (approver_required).

Eine Kampagne, deren Zielgruppe einen geschützten Bildschirm erreicht, ist auf jeder Zugriffsstufe eine protected_change-Überprüfung, die eine zweite genehmigende Person entscheidet (202 pending_review). reserved true fällt unter die geschützten Ordner und paused true bei einer neuen Kampagne (einem Entwurf) unter die Änderungskontrolle für Zeitpläne, beide Teil des Enterprise-Plans; ein Projekt, dessen Plan dies nicht enthält, wird mit feature_not_in_plan (402) abgelehnt.

Authentifizierung
projectBearer
Anfrageinhalt
CampaignWrite
Operations-ID
createCampaignInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 120
playlist_id (erforderlich, Zeichenfolge)minLength: 1
audience (erforderlich, 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.

from (optional, string)Muster: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$"
until (optional, string)Später als from. Muster: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]$"
windows (optional, array)
monthly (optional, array)
dates (optional, array)
except (optional, array)Zivile Daten, aufsteigend und jeweils einmal gespeichert. Eine Ausnahme entfernt jedes Vorkommen, das an ihrem Datum beginnt, einschließlich überlappender Nachtabschnitte; sie liegt zwischen from und until.
data (optional, PageDataCondition)

Ein card-data-Prädikat, ausgewertet vor der zivilen Zeit. Fehlende oder abgelaufene Daten stimmen nie überein. Die Seite respektiert auch ihre gewöhnlichen Zeitgrenzen. Erfordert die Host-Fähigkeit page.conditions; ältere Hosts erhalten die deaktivierte Seite.

interaction (optional, LevelInteraction)

Die Ebene gilt, solange jemand den Bildschirm nutzt: ab einer Berührung, einem Klick oder einer Taste, bis idle_s Sekunden ohne Eingabe vergehen. Typische Verwendung: eine interaktive Seite über einer Attract-Schleife. idle_s wird gespeichert und zurückgegeben (60, wenn ausgelassen).

covers (optional, string)

Wo die Ebene läuft: die ganze Seite (default, gespeichert fehlend) oder main, die Seite selbst, für eine gewöhnliche Playlist; header, footer oder side, ein über die Seite gezeichneter Streifen, nur für eine Regions-Playlist dieser Region (PlaylistRegionFormat). Eine Regions-Playlist wird mit full oder main abgelehnt, und ein Streifen braucht eine Regions-Playlist, die auf einem anvisierten Display angeordnet ist.

Erlaubt: "full", "main", "header", "footer", "side"

displays (optional, array)Die Ausgänge einer Videowand, auf denen sie spielt; fehlt der Wert, spielt sie auf jedem Ausgang.
start (optional, string)on_time wechselt an der Grenze und unterbricht das aktuelle Element; next_item (Standard, gespeichert als fehlend) wartet, bis es endet. Erlaubt: "next_item", "on_time"
priority (optional, integer)Standard: 0 Minimum: 0 Maximum: 100
paused (optional, boolean)Standard: false
reserved (optional, Boolean)Nur eine Person, die genehmigen kann, reserviert eine Kampagne (sonst reserved_item). default: false
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/campaigns'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt.Kampagne (application/json); Header: ETag
202

Der Schreibvorgang wurde zu einer Überprüfung und wartet auf die Genehmigung einer Person (docs/reviews.md), mit Propose-Zugriff oder auf jeder Zugriffsstufe, wenn er einen Bildschirm in einem geschützten Bildschirmordner erreicht, wo eine zweite genehmigende Person entscheidet (docs/screen-scope.md). Eine Person genehmigt, lehnt ab oder fordert Änderungen im Dashboard unter review.url an.

Eine Wiederholung mit demselben Idempotency-Key liefert denselben Body.

ReviewPending (application/json)
402

feature_not_in_plan — Geschützte Ordner und die Änderungskontrolle für Zeitpläne sind Teil des Enterprise-Plans; das Problem nennt die Funktion, den Plan, den das Konto hat, und required_plan. Eine Kampagne, die eine Playlist auf Display 2 oder höher einer Videowand (displays) festlegt, ist Teil von Plus. Das Problem nennt die Funktion, den Plan des Projekts und required_plan.

Problem (application/problem+json)
403

outside_screen_scope oder approver_required wie bei ScreenScopePlays oder reserved_item - eine reservierte Kampagne wird nur von einer Person geändert, pausiert, gelöscht oder auf nicht reserviert gesetzt, die Überprüfungen genehmigen kann, nie von einem Agenten oder Service-Client (docs/screen-scope.md).

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/projects/{project_id}/connections

Verbindungen eines Projekts auflisten

Listet die Verbindungen des Projekts auf, neueste zuerst, höchstens 200 pro Seite; geben Sie next_cursor als after für die nächste zurück. Ein Secret, ein Schlüssel oder ein Aktualisierungs-Token wird nie zurückgegeben: secret zeigt, ob eines gehalten wird, und einen Hinweis, der nicht geheim ist. Ein Lesezugriff enthält nie einen Zustimmungslink.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listConnectionsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
nachAbfrageoptionalnext_cursor der vorherigen Seite derselben Liste mit denselben Filtern. Wird ausgelassen, beginnt bei der neuesten Zeile. Ein Wert, der kein solcher Cursor ist, ist invalid_request.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/connections'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite mit Verbindungen.ConnectionList (application/json); Header: Cache-Control
400invalid_request, auch bei einem fehlerhaften Cursor.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/projects/{project_id}/connections

Verbindung in einem Projekt anlegen

Legt in diesem Projekt eine Verbindung zu Microsoft oder Google an: Modus own_app mit den eigenen Zugangsdaten des Kunden oder Modus screenrig_app, der consent_url beantwortet, einen einmaligen Link für die Person, die ihn abschließt (siehe createConnection). Hängt connection.created an. Ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt dieselbe Verbindung zurück.

Authentifizierung
projectBearer
Anfrageinhalt
ConnectionWrite
Operations-ID
createConnectionInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
provider (erforderlich, String)Erlaubt: "microsoft", "google"
mode (erforderlich, Zeichenkette)Erlaubt: "own_app", "screenrig_app"
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 80
config (optional, ConnectionConfigWrite)Microsoft, Modus own_app: beide Mitglieder. Nicht akzeptiert für eine Google-Verbindung oder für den Modus screenrig_app.
secret (optional, String)

Modus own_app. Microsoft: der Wert eines der Client-Secrets der App (nicht ihre ID; höchstens 1024 Zeichen), mit config.tenant_id und config.client_id. Google: die JSON-Schlüsseldatei des Dienstkontos, vollständig (höchstens 16384 Bytes). Beim Eingang versiegelt und nie zurückgegeben; die CLI liest sie aus einer Datei oder stdin, nie aus einem Argument.

Nicht akzeptiert im Modus screenrig_app. minLength: 1 maxLength: 16384

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/connections'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt. Eine Verbindung im Modus screenrig_app trägt consent_url und consent_expires_at.ConnectionConsent (application/json); Header: ETag, Location, Cache-Control
400invalid_request, das das ungültige Feld nennt.Problem (application/problem+json)
409connection_app_not_configured, connection_limit_reached oder idempotency_mismatch.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/projects/{project_id}/bi-connections

BI-Verbindungen auflisten im Projekt

Listet die BI-Verbindungen des Projekts auf, älteste zuerst, 200 pro Seite; geben Sie next_cursor als cursor für die nächste zurück. Ein Secret wird nie zurückgegeben: secret zeigt, ob es gesetzt ist, und seine letzten 4 Zeichen.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listBIConnectionsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
CursorAbfrageoptionalnext_cursor der vorherigen Seite.
LimitAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/bi-connections'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite mit Verbindungen.BIConnectionList (application/json); Header: Cache-Control
400invalid_request, auch bei einem fehlerhaften Cursor.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/projects/{project_id}/bi-connections

BI-Verbindung anlegen im Projekt

Fügt eine Verbindung zu einem BI-System hinzu, das dem Projekt gehört. Für Grafana: seine Adresse (http oder https auf einem öffentlichen Host, mit optionalem Pfadpräfix) und ein Service-Account-Token mit der Rolle Viewer. Das Token wird versiegelt und nie zurückgegeben.

Grafana renders dashboards for screens through its Image Renderer plugin or remote rendering service, so the customer installs one; run POST /api/bi-connections/{id}/test to check. For Power BI (kind powerbi): config.tenant_id and config.client_id of a Microsoft Entra app registration and its client secret value as secret.

Ein Power-BI-Administrator muss für die App die Entwicklereinstellungen Embed content in apps und Service principals can call Fabric public APIs aktivieren (Admin-Portal, Mandanteneinstellungen), die App muss Mitglied oder Administrator jedes Arbeitsbereichs sein, den sie zeigt, und Berichte brauchen im Produktivbetrieb eine Embedded-, Fabric- oder Premium-Kapazität.

For Tableau (kind tableau): config.url (the https address of Tableau Server, or of your Tableau Cloud pod such as https://10ay.online.tableau.com), config.site (the site content URL, empty for the default site), config.client_id and config.secret_id of a connected app with direct trust, config.username (the Tableau user the screens views are shown as) and the secret value as secret.

Fügen Sie embed_origin der Antwort zur Domain-Zulassungsliste der verbundenen App hinzu und aktivieren Sie das Secret. Wer ein Bildschirm-Ticket hält, kann jede Ansicht einbetten, die dieser Benutzer sehen kann; verwenden Sie daher einen Benutzer, der nur die Bildschirm-Dashboards sieht. Tableau Cloud oder Tableau Server 2023.3 oder neuer.

Für eine Webseite mit Anmeldung (kind web): das Dienstkonto einer Website, die ihr Dashboard hinter einer Anmeldung zeigt. config.login_mode ist auto (config.login_url, config.username und das Passwort als secret: Der Renderer öffnet die Anmeldeseite und füllt das Formular aus), steps (config.login_url und config.steps, ein Skript aus den Schritten goto, fill, click, press, wait_for und wait_ms, deren Werte {{username}}, {{password}} und {{otp}} enthalten dürfen) oder none (keine Anmeldung: Die Verbindung zeigt Seiten mit den Cookies, die Sie ihr geben). totp_secret ist der Base32-Schlüssel oder die otpauth://-Adresse der Authenticator-App des Kontos: Der Server berechnet den Einmalcode (RFC 6238) und sendet dem Renderer nur den Code. cookies ist ein aus einem angemeldeten Browser exportierter Cookie-Satz für eine Website, deren Anmeldung sich nicht skripten lässt (Single Sign-on, das auf einem Telefon genehmigt wird, eine Geräteprüfung); der Server behält den Satz und erneuert ihn aus den Cookies, die jede Erfassung zurückgibt, sodass eine Anmeldung selten ist.

Das Passwort, der Seed und die Cookies werden versiegelt und nie zurückgegeben. Verwenden Sie ein schreibgeschütztes Dienstkonto. Das Passwort wird nur in config.login_url und die goto-Schritte eingegeben, sodass das Verlegen auf einen anderen Ursprung erneut secret verlangt. Nach fünf abgelehnten Anmeldungen in Folge meldet sich die Verbindung nicht mehr an, bis sich ihre Zugangsdaten ändern.

Ein Server ohne Seiten-Renderer antwortet mit bi_web_unavailable. Hängt bi_connection.created an. Ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt dieselbe Antwort zurück.

Authentifizierung
projectBearer
Anfrageinhalt
BIConnectionWrite
Operations-ID
createBIConnectionInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 80
kind (erforderlich, string)Erlaubt: "grafana", "powerbi", "tableau", "web"
config (erforderlich, BIConnectionConfig)
secret (optional, String)

Erforderlich außer für web und für eine Power-BI-Verbindung, die connection_id nennt. Das Token des Dienstkontos (Grafana), der Wert des Client-Secrets der App (Power BI), der Secret-Wert der verbundenen App (Tableau) oder das Passwort des Dienstkontos (web: von login_mode auto verlangt, von none nicht verwendet).

Beim Eingang versiegelt; die CLI liest es aus einer Datei oder stdin, nie aus einem Argument. minLength: 1 maxLength: 4096

totp_secret (optional, Zeichenfolge)

Web: der Base32-Schlüssel der Authenticator-App des Kontos (16 bis 128 Zeichen, Leerzeichen erlaubt) oder seine otpauth://totp-Adresse, die den Algorithmus (SHA1, SHA256, SHA512), die Stellenzahl (6 bis 8) und die Periode festlegen kann. Versiegelt; nur der berechnete Code verlässt den Server. maxLength: 1024

cookies (optional, array)Web: ein aus einem angemeldeten Browser exportierter Cookie-Satz. Versiegelt; bei jeder Erfassung erneuert.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/bi-connections'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt.BIConnection (application/json); Header: ETag, Cache-Control
400invalid_request, auch bei einer Adresse, die kein öffentlicher Internet-Host ist.Problem (application/problem+json)
402feature_not_in_plan — der Plan des Projekts enthält keine BI-Dashboards; required_plan nennt den Plan, der sie enthält.Problem (application/problem+json)
409idempotency_mismatch.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/projects/{project_id}/bi-views

BI-Ansichten auflisten im Projekt

Lists the project's BI views, oldest first, 200 to a page; pass next_cursor back as cursor for the next. Each carries embed_url, the address an iframe primitive shows (content_fit fill); it is null where this server has no embed host.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listBIViewsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
CursorAbfrageoptionalnext_cursor der vorherigen Seite.
LimitAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/bi-views'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite mit Ansichten.BIViewList (application/json); Header: Cache-Control
400invalid_request, auch bei einem fehlerhaften Cursor.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/projects/{project_id}/bi-views

BI-Ansicht anlegen im Projekt

Fügt eine Ansicht eines Grafana-Dashboards der Verbindung oder eines einzelnen seiner Panels hinzu (url: eine Adresse /d/{uid}/... auf dem Host der Verbindung, oder target) oder eines öffentlichen Grafana-Dashboard-Links (kind grafana und target.public_url, ohne Verbindung).

Put the answer's embed_url in an iframe primitive: the server renders the dashboard as a PNG through Grafana's /render API, refreshed every refresh_s (30 to 86400, default 300) and shared by every screen of the same size; the screen never talks to Grafana. A public dashboard plays live from Grafana, which must allow embedding.

Die Einbettungsseite zeigt nur ein Ticket, das das Manifest des Bildschirms enthält, sodass eine Ansicht nur auf den Bildschirmen ihres eigenen Projekts läuft.

For Power BI (kind powerbi): a report of a workspace the connection's app is a member of (url: an app.powerbi.com /groups/{workspace}/reports/{report} address, or target with workspace_id and report_id), with pages to show and rotate_s to rotate through them (pages listing two or more, or rotate_all_pages, need rotate_s of 10 to 3600; one report page needs none), and refresh_s of 0 (no refresh) or 60 to 86400 (default 300).

The page asks the server for a short-lived view-only embed token (GenerateToken, App owns data) and renews it before it expires; the screen never holds the client secret. A Power BI Publish to web link is a view without a connection (kind powerbi, target.public_url https://app.powerbi.com/view?r=...), framed as it is.

For Tableau (kind tableau): a view of the connection site (url: an address copied from Tableau, such as https://HOST/t/SITE/views/WORKBOOK/VIEW or Tableau Cloud https://HOST/#/site/SITE/views/WORKBOOK/VIEW, or Workbook/View; or target.view), optionally with target.rotate_sheets and rotate_s of 10 to 3600 to turn the workbook published sheets (rotate_s and rotate_sheets go together; rotate_sheets may be given as the whole target beside url), and refresh_s of 0 (no refresh) or 60 to 86400 (default 300).

The page asks the server for a five minute JWT with only the embed scope, signed with the connected app secret, and builds the Embedding API v3 tableau-viz from the Tableau host; the screen never holds the secret.

Eine Tableau-Public-Visualisierung ist eine Ansicht ohne Verbindung (kind tableau, target.public_url, neu aufgebaut als https://public.tableau.com/views/WORKBOOK/VIEW) und akzeptiert ebenfalls rotate_sheets. Für eine Webseite (kind web): eine Seite der Website der Web-Verbindung (url: eine https-Adresse auf einem öffentlichen Host, ohne target).

Der Browser am Rand öffnet sie angemeldet, wartet auf das Element wait_for, wenn gesetzt, und wait_ms Millisekunden (bis zu 10000) und zeichnet clip, einen CSS-Selektor, wenn gesetzt, sonst die ganze Seite.

Das Bild wird alle refresh_s (60 bis 86400, standardmäßig 300) neu gezeichnet und von allen Bildschirmen gleicher Größe geteilt, und nur, solange ein Bildschirm die Ansicht zeigt; schlägt eine Erfassung fehl, bleibt das letzte Bild auf dem Bildschirm. Setzen Sie wait_for auf ein Element, das nur existiert, wenn die Seite angemeldet ist, damit nie eine Anmeldeseite gezeigt wird. Hängt bi_view.created an.

Authentifizierung
projectBearer
Anfrageinhalt
BIViewWrite
Operations-ID
createBIViewInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
connection_id (optional, String)
kind (optional, String)Erforderlich ohne connection_id; sonst muss es zur Verbindung passen. Erlaubt: "grafana", "powerbi", "tableau", "web"
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 80
url (optional, Zeichenfolge)

Eine Dashboard-Adresse /d/{uid}/... auf dem Host der Verbindung. Der Server liest daraus orgId, viewPanel (N oder panel-N) oder panelId, from, to, var-* und theme. Tableau: eine Ansichtsadresse auf dem Host der Verbindung (/views/W/V, /t/SITE/views/W/V, #/site/SITE/views/W/V) oder Workbook/View. Web: die https-Adresse der Seite auf einem öffentlichen Host. maxLength: 2048

target (optional, BITarget)

Was eine Ansicht zeigt. Grafana mit einer Verbindung: dashboard_uid (und optional ein Panel). Power BI mit einer Verbindung: workspace_id und report_id, mit pages oder rotate_all_pages. Tableau mit einer Verbindung: view (Workbook/View), mit rotate_sheets. Web mit einer Verbindung: url. Ohne Verbindung: nur public_url (und rotate_sheets für Tableau).

refresh_s (optional, Integer)Grafana 30 bis 86400; Power BI und Tableau 0 oder 60 bis 86400; web 60 bis 86400. default: 300 minimum: 0 maximum: 86400
rotate_s (optional, Integer)Power BI und Tableau: 0 oder 10 bis 3600; erforderlich für ein Ziel, das Seiten oder Blätter rotiert. default: 0 minimum: 0 maximum: 3600
fit (optional, String)Erlaubt: "contain", "cover", "fill" Standard: "contain"
wait_for (optional, Zeichenfolge)Web: ein CSS-Selektor eines Elements, das erscheint, wenn die Seite bereit ist, und nur, wenn sie angemeldet ist. maxLength: 512
wait_ms (optional, Integer)Web: die Millisekunden, die nach der Bereitschaft der Seite gewartet wird. minimum: 0 maximum: 10000
clip (optional, Zeichenfolge)Web: ein CSS-Selektor des Teils der Seite, der gezeichnet wird. maxLength: 512
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/bi-views'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt.BIView (application/json); Header: ETag, Cache-Control
400invalid_request, auch bei einer url, die keine Dashboard-Adresse der Verbindung ist.Problem (application/problem+json)
402feature_not_in_plan — der Plan des Projekts enthält keine BI-Dashboards; required_plan nennt den Plan, der sie enthält.Problem (application/problem+json)
404not_found: Die Verbindung gehört nicht zu diesem Projekt.Problem (application/problem+json)
409idempotency_mismatch.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/projects/{project_id}/triggers

Trigger im Projekt auflisten

Listet die CAP-Alarmauslöser des Projekts auf, älteste zuerst (maximal 20), jeweils mit ihrer Ingest-URL, dem Benutzernamen und dem neuesten Alarm. Das Passwort wird hier niemals zurückgegeben.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listTriggersInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/triggers'

Antworten

StatusBedeutungTextkörper und Header
200Die Trigger des Projekts.TriggerList (application/json); Header: Cache-Control
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/projects/{project_id}/triggers

Trigger im Projekt erstellen

Erstellt einen CAP-Alarm-Trigger: eine eingehende URL, an die ein Notifikationssystem (Everbridge, Rave, Alertus, IPAWS-Relays und andere CAP 1.2 Sender) Alarme mit HTTP Basic-Zugangsdaten sendet.

Die Antwort ist der einzige Ort, an dem das Passwort erscheint (mit der Antwort drehen): Speichern Sie es sofort im sendenden System. Ziel ist ein Tag (jeder aktive Bildschirm mit diesem, wenn die Warnung eintrifft) oder bis zu 500 screen_ids.

Eine Warnung übernimmt jeden Zielbildschirm mit einer Standard-Playlist bis zum <expires> der Warnung, sonst für default_for_seconds (60 bis 604800, Standard 3600); siehe POST /api/triggers/{id}/cap. Eine Organisation hat höchstens 20 Trigger über alle ihre Projekte (trigger_limit_reached). Fügt trigger.created hinzu.

Eine exakte Wiederholung mit demselben Idempotency-Key gibt vierundzwanzig Stunden lang dieselbe Antwort zurück, einschließlich des Passworts. Ein Trigger, dessen Selektor einen geschützten Bildschirm erreicht, ist protected_target (409), und ein fehlgeschlagenes Lesen des Bildschirmschutzes ist dependency_unavailable (500, dieselbe Anfrage wiederholen); ein Trigger steht einem auf Bildschirme beschränkten Aufrufer nicht zur Verfügung.

Authentifizierung
projectBearer
Anfrageinhalt
TriggerWrite
Operations-ID
createTriggerInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
kind (optional, String)Erlaubt: "cap", "overlay" Standard: "cap"
label (erforderlich, string)minLength: 1 maxLength: 80
Ziel (erforderlich, TriggerTarget)Genau eines von tag und screen_ids.
default_for_seconds (optional, Ganzzahl)

Wie lange eine Meldung ohne <expires> die Bildschirme hält: 60 bis 604800, Standard 3600, bei einem CAP-Trigger; wie lange eine Sendung ohne duration ihre Meldung hält: 10 bis 604800, Standard 600, bei einem Overlay-Trigger. minimum: 10 maximum: 604800

pull (optional, CapPull)

CAP-Quellen, die die Plattform für den Auslöser liest, mit Zielbildschirmen und welche Alarme zählen: die Parameter einer cap-alert-Kartenplatzierung (docs/feeds.md "CAP alerts"). Jede Quell-URL wird einmal pro Minute für jeden Auslöser und jede Platzierung, die sie nennt, abgerufen.

Ohne Quellen werden die öffentlichen Feeds der Plattform für den Standort gelesen (NWS, Canada NAAD und MeteoAlarm für einen Standort mit Gebietscodes). Die schwerwiegendste passende Warnung übernimmt die Zielbildschirme genau wie eine Push-Nachricht; wenn die Quellen keine Warnungen zeigen (eine Stornierung oder ein Ablauf), endet eine abgerufene Warnung.

Eine veraltete oder fehlerhafte Quelle beendet niemals eine Warnung. Standort ist erforderlich, sofern keine Quellen angegeben sind.

overlay (optional, TriggerOverlayWrite)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/triggers'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt, mit seiner URL, dem Benutzernamen und dem Passwort.TriggerWithPassword (application/json); Header: ETag, Cache-Control
400invalid_request, einschließlich eines fehlerhaften Tags oder sowohl Tag als auch screen_ids.Problem (application/problem+json)
409trigger_limit_reached, idempotency_mismatch oder protected_target, wenn der Selektor einen Bildschirm in einem geschützten Bildschirmordner erreicht.Problem (application/problem+json)
500dependency_unavailable - die Prüfung auf geschützte Bildschirmordner konnte nicht ausgeführt werden; senden Sie dieselbe Anfrage nach kurzer Wartezeit erneut.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/projects/{project_id}/events

Ereignisse im Projekt 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
Anfrageinhalt
keine
Operations-ID
listEventsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
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]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/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/api/projects/{project_id}/project/capabilities

Projektfähigkeiten im Projekt erhalten

Der Plan des aufrufenden Projekts, unabhängige Werbetreibende/Bildschirm-Flags mit ihrer Revision, die abgeleitete effektive Fähigkeitensammlung, die Plan-Funktionen, die es hat (plan_features), und seine Limits (limits). Spiegelt niemals eine Kundenbehauptung wider; ein unbekannter Plan schlägt geschlossen als verboten fehl.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getProjectCapabilitiesInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/project/capabilities'

Antworten

StatusBedeutungTextkörper und Header
200Projektfunktionen.ProjectCapabilities (application/json); Header: Cache-Control
403verboten – der Projekt-Tarif ist nicht im Katalog.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/projects/{project_id}/billing/balance

Abrechnungsstand im Projekt abrufen

Die quellenbewusste Kontostandsaufnahme des aufrufenden Projekts. Alle Millicredit-Beträge sind kanonische Dezimalstrings. Es ist eine Momentaufnahme, keine Zahlungsbefugnis; rails_available ist falsch, solange Karte, Steuer und Auszahlungs-Schiene nicht verfügbar sind.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getBillingBalanceInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/billing/balance'

Antworten

StatusBedeutungTextkörper und Header
200Bilanz-Snapshot.Abrechnungsbilanz (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/projects/{project_id}/billing/statement

Abrechnungsbeleg im Projekt abrufen

Stabile Cursor-Paginierung über unveränderliche veröffentlichte Journal-Einträge für das aufrufende Projekt. Holds sind keine veröffentlichten Einträge. Korrekturen verlinken auf das Originalereignis, anstatt es umzuschreiben. Es gibt keine willkürliche Gewährungs- oder Auszahlungsänderung auf dieser Ebene.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getBillingStatementInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
CursorAbfrageoptional
LimitAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/billing/statement'

Antworten

StatusBedeutungTextkörper und Header
200Seite mit Kontoauszug.Abrechnungs-Auszug (application/json)
400invalid_request - Limit liegt außerhalb des zulässigen Bereichs.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/projects/{project_id}/billing/usage

Abrechnungsnutzung im Projekt abrufen

Die Nutzung des aufrufenden Projekts für einen UTC-Monat, mit den ausgelieferten und empfangenen Bytes (nie berechnet), dem Speicher, der über dem kostenlosen Speicher des Plans des Zahlers berechnet wird (allowance.storage_bytes), sowie den API-Anfragen, abgerechneten Projekt-Stream-Ereignissen und Webhook-Zustellversuchen, die auf die kostenlosen 10.000 pro Monat angerechnet werden. Ein Projekt, das für sich selbst zahlt, liest seinen eigenen Pool.

Ein Projekt, für das ein anderer Zahler bezahlt, teilt den Pool dieses Zahlers mit dessen anderen Projekten; es liest seinen eigenen Anteil, und payer nennt den Zahler. Der Pool-Gesamtbetrag des Zahlers bleibt in den Abrechnungen des Zahlers.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getBillingUsageInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
ZeitraumAbfrageoptionalUTC-Monat in YYYY-MM-Form; Standard ist der aktuelle Monat.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/billing/usage'

Antworten

StatusBedeutungTextkörper und Header
200Projektnutzung.ProjectBillingUsage (application/json); Header: Cache-Control
400invalid_request - Periode ist kein UTC-Monat in YYYY-MM-Form.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/projects/{project_id}/advertising/network

Werbenetzwerk im Projekt abrufen

Das Netzwerk des anrufenden Verkäufers, einschließlich der berechneten ScreenRig-Bereitstellungsgebühr. Verkäufer können diese Gebühr nicht ändern.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getAdvertisingNetworkInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/network'

Antworten

StatusBedeutungTextkörper und Header
200Netzwerk.AdvertisingNetwork (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/projects/{project_id}/advertising/network

Werbenetzwerk im Projekt erstellen

Erstellt das eine Netzwerk des aufrufenden Verkäufers, falls nicht vorhanden. Erfordert screens=true. Idempotent; Wiederholungen geben dasselbe Netzwerk zurück.

Authentifizierung
projectBearer
Anfrageinhalt
AdvertisingNetworkCreate
Operations-ID
createAdvertisingNetworkInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)maxLength: 120
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/network'

Antworten

StatusBedeutungTextkörper und Header
200Netzwerk.AdvertisingNetwork (application/json)
403verboten – das Projekt verfügt nicht über Bildschirmfunktionalität oder hat einen unbekannten Tarif.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/projects/{project_id}/advertising/network/rate

Standard-Werbesatz im Projekt festlegen

Setzt den Standardtarif des Verkäufers pro 15 Sekunden abgeschlossener Wiedergabe im Projekt. Eine Änderung, die den effektiven Tarif einer akzeptierten Kampagne ändert, pausiert diese gesamte Kampagne mit price_change_pending; eine maskierte oder wirkungslose Änderung nicht. If-Match trägt die Netzwerkrevision.

Authentifizierung
projectBearer
Anfrageinhalt
AdvertisingRate
Operations-ID
setAdvertisingDefaultRateInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um die aktuelle Ressource zu schreiben; eine übergebene veraltete Revision ist revision_conflict.

Anfrageinhalt-Felder

FeldBeschreibung
rate_mcr_per_15s (erforderlich, McrString)Exakte ganze Millicredit-Menge als kanonische Dezimalzeichenfolge. 1 Credit entspricht 1000 mcr. Muster: "^-?[0-9]+$"
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/network/rate'

Antworten

StatusBedeutungTextkörper und Header
200Netzwerk aktualisiert.AdvertisingNetwork (application/json)
412revision_conflict – If-Match ist veraltet.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/projects/{project_id}/advertising/inventory

Werbeinventar im Projekt auflisten

Das vom anrufenden Verkäufer ausgewählte Inventar.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAdvertisingInventoryInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/inventory'

Antworten

StatusBedeutungTextkörper und Header
200Inventar.AdvertisingInventoryList (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/projects/{project_id}/advertising/slots

Werbeplätze im Projekt auflisten

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAdvertisingSlotsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/slots'

Antworten

StatusBedeutungTextkörper und Header
200Slots.AdvertisingSlotList (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/projects/{project_id}/advertising/slots

Werbeplatz im Projekt erstellen

Erstellt einen wiederverwendbaren Verkäuferplatz. Bilder dauern 5-30 Sekunden, Videos höchstens die Plattformbegrenzung von 120 Sekunden. Anzeigen sind immer stummgeschaltet.

Authentifizierung
projectBearer
Anfrageinhalt
AdvertisingSlotWrite
Operations-ID
createAdvertisingSlotInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 120
aktiviert (optional, Boolean)
accepted_media (erforderlich, Array)
max_image_duration_ms (erforderlich, Ganzzahl)Minimum: 5000 Maximum: 30000
max_video_duration_ms (erforderlich, Ganzzahl)Minimum: 1000 Maximum: 120000
rate_override_mcr_per_15s (optional, inline)
vast_tag_url (optional, inline)

Der eigene VAST 2-4-Werbetag des Verkäufers, der versucht wird, wenn keine eingeladene Kampagne diesen Slot auf den eigenen Bildschirmen des Verkäufers füllt. Nur HTTPS auf Port 443 oder 8443 zu einem öffentlichen Host.

Das Backend ruft es ab, folgt bis zu fünf Wrappers, nimmt die gewählte progressive MP4- oder WebM-Mediendatei in die Medien des Projekts auf und feuert Impression, creativeView und start bei akzeptiertem Start, complete bei akzeptiertem Abschluss und Error bei Fehlern. Quartile-Tracker werden nicht ausgelöst.

Makros [CACHEBUSTING], [TIMESTAMP], [SCREENRIG_SCREEN_ID], [SCREENRIG_SLOT_ID] und [SCREENRIG_PAGE_ID] werden erweitert. Der Slot muss Video akzeptieren. Null, abwesend oder leer löscht das Tag. Käufer sehen es nie.

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/slots'

Antworten

StatusBedeutungTextkörper und Header
201Slotslot.AdvertisingSlot (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/projects/{project_id}/advertising/memberships

Werbemitgliedschaften im Projekt auflisten

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAdvertisingMembershipsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/memberships'

Antworten

StatusBedeutungTextkörper und Header
200Mitgliedschaften.AdvertisingMembershipList (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/projects/{project_id}/advertising/networks

Gemeinsame Werbenetzwerke im Projekt auflisten

Netzwerke, denen der aufrufende Werbetreibende derzeit angehört, mit dem Umfang und der Überprüfungspolitik, die ihm gewährt wurden. Die Bildschirmanzahl ist keine garantierte Impressionenzahl.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAdvertisingJoinedNetworksInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/networks'

Antworten

StatusBedeutungTextkörper und Header
200Beigetretene Netzwerke.AdvertisingJoinedNetworkList (application/json)
403verboten – dem Projekt fehlt das Werbetreibenden-Flag.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/projects/{project_id}/advertising/creatives

Werbekreativen im Projekt auflisten

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAdvertisingCreativesInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/creatives'

Antworten

StatusBedeutungTextkörper und Header
200Kreative.AdvertisingCreativeList (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/projects/{project_id}/advertising/creatives

Werbemittel im Projekt erstellen

Bindet eine fertige, eigene Medienrevision an eine unveränderliche Kreativität. Kopiert keine Bytes, lädt nicht erneut hoch und berechnet keine neue Generation. Unbekannte oder nicht fertige Medien werden abgelehnt.

Authentifizierung
projectBearer
Anfrageinhalt
AdvertisingCreativeCreate
Operations-ID
createAdvertisingCreativeInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
media_id (erforderlich, Zeichenkette)
copy (optional, Zeichenfolge)maxLength: 500
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/creatives'

Antworten

StatusBedeutungTextkörper und Header
201Kreativ.AdvertisingCreative (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/projects/{project_id}/advertising/campaigns

Werbekampagnen im Projekt auflisten

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAdvertisingCampaignsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/campaigns'

Antworten

StatusBedeutungTextkörper und Header
200Kampagnen.AdvertisingCampaignList (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/projects/{project_id}/advertising/campaigns

Werbekampagne im Projekt erstellen

Erstellt eine Entwurfskampagne. Entwürfe enthalten kein Geld, reservieren nichts und autorisieren keine Auslieferung. Die Aktivierung erfordert ein ausdrücklich akzeptiertes Angebot.

Authentifizierung
projectBearer
Anfrageinhalt
AdvertisingCampaignDraft
Operations-ID
createAdvertisingCampaignInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 120
category (optional, AdvertisingCategory)

Die Kategorie des Werbetreibenden. Zwei Anzeigen einer Kategorie laufen auf einem Bildschirm nie im selben Werbeblock; eine Anzeige ohne Kategorie wird nie getrennt.

Erlaubt: "alcohol", "apparel", "automotive", "beauty", "cannabis", "consumer_electronics", "education", "entertainment", "financial_services", "food_and_beverage", "gambling", "government", "grocery", "health_and_pharma", "home_and_garden", "insurance", "jobs", "legal", "media", "political", "quick_service_restaurants", "real_estate", "restaurants", "retail", "sports_and_fitness", "technology", "telecom", "tobacco_and_vaping", "travel", "utilities"

daily_cap_mcr (erforderlich, McrString)Exakte ganze Millicredit-Menge als kanonische Dezimalzeichenfolge. 1 Credit entspricht 1000 mcr. Muster: "^-?[0-9]+$"
lifetime_cap_mcr (erforderlich, McrString)Exakte ganze Millicredit-Menge als kanonische Dezimalzeichenfolge. 1 Credit entspricht 1000 mcr. Muster: "^-?[0-9]+$"
image_duration_ms (optional, integer)Kampagnenweite Bildanzeigedauer. Videos behalten ihre serverbestätigte Dauer. Standard: 10000 Minimum: 5000 Maximum: 30000
max_play_price_mcr (optional, Inline)Positiver maximaler Preis für abgeschlossene Wiedergabe. Weglassen für keine zusätzliche Obergrenze.
flight_start (erforderlich, Zeichenkette)Format: "date-time"
flight_end (erforderlich, Zeichenkette)Format: "date-time"
Netzwerke (erforderlich, Array)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/campaigns'

Antworten

StatusBedeutungTextkörper und Header
201Entwurfskampagne.AdvertisingCampaign (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/projects/{project_id}/advertising/reviews

Werbebewertungen im Projekt auflisten

Kreativversionen, die dem aufrufenden Verkäufer zur Prüfung vorgelegt werden. Ein Verkäufer sieht nur exakt eingereichte Kreative, niemals die Bibliothek des Käufers.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAdvertisingReviewsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/reviews'

Antworten

StatusBedeutungTextkörper und Header
200Überprüfungen.AdvertisingReviewList (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/projects/{project_id}/advertising/reports/spend

Werbeausgaben im Projekt abrufen

Käuferbezogene Ausgaben- und Lieferzahlen für eine Kampagne. Beträge sind dezimale mcr-Strings. Es werden niemals die Einnahmen des Verkäufers, der Bankstatus oder die projektweite Nutzung offengelegt.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getAdvertisingSpendInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
FormatAbfrageoptionaljson (Standard) liefert den Bericht als JSON. csv, xlsx und pdf liefern dieselben Zeilen als Dateianhang (jede Seite eines seitenweisen Berichts, bis zu 50000 Zeilen).
campaign_idAbfrageerforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/reports/spend?campaign_id=CAMPAIGN_ID'

Antworten

StatusBedeutungTextkörper und Header
200Ausgabenbericht.AdvertisingSpendReport (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/projects/{project_id}/advertising/reports/delivery

Werbelieferung im Projekt abrufen

Brutto, Servicegebühr und Netto des Verkäufers für ein Fenster mit eigenem Liefernachweis. Es werden niemals die Brieftasche des Käufers oder andere Netzwerke offengelegt. Nur autorisierte Nachweise über abgeschlossene Wiedergaben begründen eine abrechenbare Lieferung. Das Fenster ist höchstens 92 Tage; ein größeres Fenster ist invalid_request.

Wenn mehr als 5000 Abrechnungen vorliegen, setzt die Antwort truncated, Summen und Zählungen decken dennoch alle ab und Zeilen listen nur die frühesten 5000 auf.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getAdvertisingDeliveryInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
FormatAbfrageoptionaljson (Standard) liefert den Bericht als JSON. csv, xlsx und pdf liefern dieselben Zeilen als Dateianhang (jede Seite eines seitenweisen Berichts, bis zu 50000 Zeilen).
vonAbfrageerforderlich
bisAbfrageerforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/advertising/reports/delivery?from=FROM&to=TO'

Antworten

StatusBedeutungTextkörper und Header
200Zustellungsbericht.AdvertisingDeliveryReport (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/projects/{project_id}/playback

Wiedergabezusammenfassungen im Projekt auflisten

Tägliche Wiedergabeaggregate.

JSON gibt höchstens 200 Zeilen zurück und ist nicht rate-limitiert. format=csv (oder Accept text/csv ohne application/json) streamt jede passende Zeile innerhalb von day_from bis day_to (einschließlich UTC-Tage; Standard day_to heute und day_from 30 Tage früher; höchstens 366 Tage, sonst invalid_request) als CSV mit einer festen Kopfzeile (PlaybackAggregateCsv); nur die CSV-Form verbraucht die Budgets playback-export-org (30 pro Minute) und playback-export-ip (60 pro Minute).

Beide Formen sind eine gemessene API-Anfrage. Antworten tragen Vary Accept. Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) muss screen_id senden, und es muss ein Bildschirm innerhalb seines Bereichs sein (sonst outside_screen_scope); die CSV-Formen folgen derselben Regel.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listPlaybackAggregatesInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
screen_idAbfrageoptional
media_idAbfrageoptional
TagAbfrageoptionalUTC-Kalendertag des Aggregats.
day_fromAbfrageoptionalErster UTC-Tag, einschließlich. Schließt day aus. Mit day_to umfasst höchstens 366 Tage. CSV setzt standardmäßig 30 Tage vor day_to.
day_toAbfrageoptionalLetzter UTC-Tag, inklusive. Schließt Tag aus. CSV setzt ihn standardmäßig auf heute (UTC).
FormatAbfrageoptionaljson (Standard), csv, xlsx oder pdf. Ohne Angabe wählt ein Accept-Header, der text/csv, aber nicht application/json nennt, csv. xlsx und pdf schreiben die ersten 50000 Zeilen derselben Liste.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playback'

Antworten

StatusBedeutungTextkörper und Header
200

Tägliche Wiedergabeaggregate für das aufrufende Projekt, sowohl Bilder als auch Videos. Eine Zeile pro Bildschirm, Medium und UTC-Tag. Neueste Tage zuerst. Identifikatoren filtern die eigenen Zeilen des Aufrufers und sind niemals eine projektübergreifende Suche.

PlaybackAggregateList (application/json), PlaybackAggregateCsv (text/csv); Header: Vary, RateLimit-Policy, RateLimit
400

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)
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
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/api/projects/{project_id}/playback/plays

Wiedergabespiele im Projekt auflisten

Pro Wiedergabeaufzeichnung: eine Zeile pro akzeptiertem playback.media_started (oder veraltetem playback.video_started) und eine Zeile pro akzeptiertem playback.application_started (release_id gesetzt, Medienfelder leer) des aufrufenden Projekts, älteste zuerst nach received_at, bei Gleichstand nach Einfügung. Von (einschließlich) und bis (ausschließlich) begrenzt received_at; bis standardmäßig jetzt, von bis 24 Stunden vor bis, und der Bereich beträgt höchstens 31 Tage (sonst invalid_request).

Die neuesten 5 Sekunden werden noch nicht zurückgegeben: Das effektive Ende ist höchstens jetzt minus 5 Sekunden (settle lag), sodass ein Live-Tail niemals eine hinter seinem Cursor liegende Zeile überspringt. Gefiltert werden screen_id, media_id, playlist_id (die Playlist, von der der Start angezeigt wurde) und tag (ein Bildschirm-Tag, den der Bildschirm beim Empfang der Wiedergabe trug).

Eine playlist_id-Seite kann weniger als limit Zeilen enthalten, sogar keine, mit einem next_cursor, wenn ein langer Abschnitt von Wiedergaben anderer Playlists durchsucht wurde; null beendet dennoch den Bereich.

JSON ist eine Seite mit höchstens limit Zeilen (Standard 200, höchstens 1000) mit next_cursor, null am Ende des Bereichs; geben Sie ihn mit denselben Filtern als cursor zurück. order=desc (oder before) zeigt innerhalb desselben Bereichs die neuesten zuerst: next_cursor ist dann der Cursor der ältesten zurückgegebenen Zeile, null am Anfang des Bereichs, und wird als before (exklusiv) mit denselben Filtern zurückgegeben; order=asc mit before wird mit invalid_request abgelehnt, das order nennt, und cursor mit einer newest-first-Seite nennt cursor.

Eine nach Neuheit sortierte Seite kann weniger als die Limit-Zeilen enthalten, sogar keine, mit einem next_cursor; null beendet sie dennoch.

Eine spätere Seite überspringt niemals eine Zeile, die beim Lesen der früheren Seite existierte, und wiederholt keine, außer dass ein Start, den der Player nach einem nicht bestätigten Bericht erneut sendete (die gleiche play_id, kurz danach empfangen), auf einer späteren Seite erneut erscheinen kann; der CSV-Stream listet sie einmal auf. format=csv (oder Accept text/csv ohne application/json) streamt jeden Play vom Cursor bis zum Ende des Bereichs als CSV (PlaybackPlayCsv), neueste zuerst unten vor mit order=desc; Limit wird mit CSV abgelehnt.

Die Abrechnung erfolgt pro Anfrage: Jede JSON-Seite kostet einen API-Anfrage-Credit, während ein CSV-Stream des gesamten Bereichs einen kostet. Jede Abfrage für Wiedergaben (Seite oder Stream) verbraucht die Budgets playback-export-org (30 pro Minute) und playback-export-ip (60 pro Minute).

Ein Stream begrenzt jeden Schreibvorgang (15 Sekunden) und endet, wenn der Client die Verbindung trennt; schlägt er nach dem 200-Header fehl, wird die Verbindung abgebrochen, sodass ein Export, der bis zum sauberen Ende liest, vollständig ist. Antworten enthalten Vary Accept. Wiedergaben werden für die Ereignisaufbewahrung des Plans aufbewahrt (30 Tage sind der ausgelieferte Mindestwert; planbasierte Aufbewahrung verwendet das eigene 7- oder 90-Tage-Fenster des Plans).

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) muss screen_id senden, und es muss ein Bildschirm innerhalb seines Bereichs sein (sonst outside_screen_scope); die CSV-Formen folgen derselben Regel.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listPlaybackPlaysInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
vonAbfrageoptionalInklusive untere Grenze bei received_at. Standardmäßig 24 Stunden vor to.
bisAbfrageoptionalExklusives oberes Limit für received_at. Standard ist jetzt. to - from beträgt höchstens 31 Tage.
screen_idAbfrageoptional
media_idAbfrageoptional
playlist_idAbfrageoptionalNur Wiedergaben, die von dieser Playlist gezeigt werden.
TagAbfrageoptionalEin Bildschirm-Tag, den der Bildschirm beim Empfang der Wiedergabe trug.
CursorAbfrageoptionalnext_cursor der vorherigen Seite mit denselben Filtern. Opaque.
ReihenfolgeAbfrageoptionalAufsteigend Seiten älteste zuerst mit Cursor; absteigend Seiten neueste zuerst mit before. before impliziert absteigend; order=asc mit before wird abgelehnt.
vorAbfrageoptionalSeiten neueste zuerst, strikt älter als diese Position: der next_cursor einer neuesten-ersten Seite mit denselben Filtern. Undurchsichtig.
LimitAbfrageoptionalJSON-Seitengröße. Mit CSV abgelehnt.
FormatAbfrageoptionaljson (Standard), csv, xlsx oder pdf. Ohne Angabe wählt ein Accept-Header, der text/csv, aber nicht application/json nennt, csv. xlsx und pdf schreiben die ersten 50000 Zeilen derselben Liste.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playback/plays'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite mit Wiedergaben oder dem CSV-Stream.PlaybackPlayList (application/json), PlaybackPlayCsv (text/csv); Header: Cache-Control, Vary, RateLimit-Policy, RateLimit
400

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)
401

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)
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
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/api/projects/{project_id}/playback/totals

Wiedergabegesamtwerte im Projekt erhalten

Wiedergabesummen des aufrufenden Projekts über inklusive UTC-Tage, gelesen aus den Tageszusammenfassungen: by=day gibt eine Zeile pro Tag mit Wiedergaben zurück (screen_id oder media_id schränkt auf einen Bildschirm oder ein Medium ein), by=screen und by=media sortieren die meistgenutzten Bildschirme oder Medien (Top, höchstens 100), und by=screen_day gibt die Tagesreihe der Top-Bildschirme zurück (Top höchstens 10). day_to standardmäßig heute (UTC) und day_from 29 Tage davor.

Eine Tagesreihe umfasst höchstens 366 Tage (92 bei Eingrenzung auf einen Bildschirm oder Medien); ein Ranking höchstens 92. Die Zählungen umfassen jeden Start, den das Projekt aufgezeichnet hat, einschließlich der vor der Einführung von Play-Rollups gespeicherten.

Rollups folgen der Erfassung um bis zu etwa 21 Minuten. truncated ist true, wenn ein Ranking aus Ausschnitten eines Fensters erstellt wurde, das zu groß für einen Lesevorgang ist: Es umfasst die besten Schlüssel jedes Ausschnitts. Nicht rate-limitiert. Eine gemessene API-Anfrage.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) muss screen_id senden, und es muss ein Bildschirm innerhalb seines Bereichs sein (sonst outside_screen_scope); die CSV-Formen folgen derselben Regel.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getPlaybackTotalsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
FormatAbfrageoptionaljson (Standard) liefert den Bericht als JSON. csv, xlsx und pdf liefern dieselben Zeilen als Dateianhang (jede Seite eines seitenweisen Berichts, bis zu 50000 Zeilen).
vonAbfrageoptionalTag: Wiedergaben pro Tag; Bildschirm, Medien: die meistgenutzten Schlüssel; screen_day: die Tagesreihe der Top-Bildschirme.
day_fromAbfrageoptionalErster UTC-Tag, einschließlich. Standardmäßig 29 Tage vor day_to. Eine Tagesreihe umfasst höchstens 366 Tage (92 bei Einschränkung auf Bildschirm oder Medien), ein Ranking höchstens 92.
day_toAbfrageoptionalLetzter UTC-Tag, inklusive. Standardmäßig heute (UTC).
screen_idAbfrageoptional
media_idAbfrageoptional
obenAbfrageoptionalWie viele Bildschirme oder Medien ein Ranking zurückgibt (maximal 10 bei by=screen_day). Abgelehnt bei by=day.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playback/totals'

Antworten

StatusBedeutungTextkörper und Header
200Summen der angeforderten Gruppierung.PlaybackTotals (application/json); Header: Cache-Control
400

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)
401

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)
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/api/projects/{project_id}/playback/completeness

Vollständigkeit der Wiedergabe im Projekt abrufen

Wie viele der von den Bildschirmen gemachten Wiedergaben das Backend erreicht haben und wo die fehlenden lagen. Player nummerieren ihre Medienstarts, sodass ein Start, der nie angekommen ist, eine Lücke in der Nummerierung hinterlässt, zum Beispiel wenn ein Bildschirm über die 24 Stunden seiner Berichtswarteschlange hinaus offline bleibt oder die Warteschlange Berichte verwirft.

Für die UTC-Tage day_from bis day_to (jeweils einschließlich; day_to ist standardmäßig heute, UTC, und day_from 29 Tage davor; der Zeitraum umfasst höchstens 92 Tage) enthält die Antwort measured_plays, die nummerierten Wiedergaben, die angekommen sind; missing_plays, die Nummern, die die Player übersprungen haben; completeness, measured_plays geteilt durch ihre Summe, null, wenn beide 0 sind; days, dieselben drei Zahlen für jeden Tag, der welche hat, älteste zuerst, wobei eine Lücke am UTC-Tag der darauffolgenden Wiedergabe gezählt wird; und gaps, die Lücken, neueste zuerst, jeweils mit screen_id, day, from und to (den Startzeiten der Wiedergaben auf beiden Seiten der Lücke) sowie missing_plays. screen_id schränkt days und gaps auf einen Bildschirm ein; limit (standardmäßig 100, höchstens 500) begrenzt gaps, und truncated ist true, wenn mehr vorhanden sind.

Ein ausgeschalteter Bildschirm erzeugt keine Wiedergaben und hinterlässt keine Lücke. Wiedergaben ohne Nummer (ältere Player, Starts, die vor den Wiedergabenummern gespeichert wurden) werden nicht gemessen: Sie sind in play_count von GET /api/playback/totals enthalten und in keiner dieser Zahlen. Keine Ratenbegrenzung. Eine abgerechnete API-Anfrage.

Ein auf Bildschirme beschränkter Aufrufer (docs/screen-scope.md) muss screen_id senden, und es muss ein Bildschirm innerhalb seines Bereichs sein (sonst outside_screen_scope); die CSV-Formen folgen derselben Regel.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getPlaybackCompletenessInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
FormatAbfrageoptionaljson (Standard) liefert den Bericht als JSON. csv, xlsx und pdf liefern dieselben Zeilen als Dateianhang (jede Seite eines seitenweisen Berichts, bis zu 50000 Zeilen).
day_fromAbfrageoptionalErster UTC-Tag, einschließlich. Standardmäßig 29 Tage vor day_to. Zusammen mit day_to umfasst der Zeitraum höchstens 92 Tage.
day_toAbfrageoptionalLetzter UTC-Tag, inklusive. Standardmäßig heute (UTC).
screen_idAbfrageoptional
LimitAbfrageoptionalDie maximale Anzahl aufzulistender Lücken, neueste zuerst.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/playback/completeness'

Antworten

StatusBedeutungTextkörper und Header
200Die Vollständigkeit des Zeitraums und seine Lücken.PlaybackCompleteness (application/json); Header: Cache-Control
400

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)
401

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)
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/api/projects/{project_id}/health/trend

Health Trend im Projekt erhalten

Der Flottenzustand des Projekts nach UTC-Stunde: wie viele Bildschirme meldeten sich, und wie viele davon waren heiß (80 °C oder mehr), hatten ein getrenntes Display oder stürzten ab (3 oder mehr Abstürze in 24 Stunden). from (einschließlich) und to (ausschließlich) standardmäßig die letzten 24 Stunden, maximal 93 Tage; eine Seite enthält höchstens limit Zeilen (Standard 100, maximal 500) mit next_cursor, null am Ende.

Stunden hinken Berichten um bis zu etwa 5 Minuten hinterher. Einem auf Bildschirme beschränkten Aufrufer verweigert (outside_screen_scope); GET /api/screens/{id}/health/history ist die Form pro Bildschirm.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getHealthTrendInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
FormatAbfrageoptionaljson (Standard) liefert den Bericht als JSON. csv, xlsx und pdf liefern dieselben Zeilen als Dateianhang (jede Seite eines seitenweisen Berichts, bis zu 50000 Zeilen).
vonAbfrageoptionalInklusive untere Grenze bei der Berichtszeit. Standardmäßig 24 Stunden vor to.
bisAbfrageoptionalExklusives oberes Limit für die Berichtszeit. Standard ist jetzt.
LimitAbfrageoptionalSeitengröße.
CursorAbfrageoptionalnext_cursor der vorherigen Seite mit denselben Filtern. Opaque.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/health/trend'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite mit stündlicher Flotten-Gesundheit.HealthTrend (application/json); Header: Cache-Control
400

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)
401

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)
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/api/projects/{project_id}/uptime/daily

Projektverfügbarkeit im Projekt erhalten

Tägliche Verfügbarkeit der Bildschirme des Projekts über inklusive UTC-Tage (Standards und Bereich wie GET /api/screens/{id}/uptime). Jede Zeile summiert die Online- und Offline-Sekunden der Bildschirme mit aufgezeichnetem Zustand an diesem Tag; Abdeckung ist der Anteil des Tages dieser Bildschirme mit aufgezeichnetem Zustand.

Intervalle zählen, wenn sie enden, sodass die Zeile von heute die bisher beendeten Intervalle abdeckt; die Live-Online-Zahl steht in der Dashboard-Zusammenfassung. Einem auf Bildschirme beschränkten Aufrufer verweigert (outside_screen_scope); GET /api/screens/{id}/uptime ist die Form pro Bildschirm.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
getProjectUptimeInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
FormatAbfrageoptionaljson (Standard) liefert den Bericht als JSON. csv, xlsx und pdf liefern dieselben Zeilen als Dateianhang (jede Seite eines seitenweisen Berichts, bis zu 50000 Zeilen).
day_fromAbfrageoptionalErster UTC-Tag, einschließlich. Standardmäßig 29 Tage vor day_to. Mit day_to umfasst höchstens 366 Tage.
day_toAbfrageoptionalLetzter UTC-Tag, inklusive. Standardmäßig heute (UTC).
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/uptime/daily'

Antworten

StatusBedeutungTextkörper und Header
200Tägliche Betriebszeitzeilen, älteste zuerst.ProjectUptime (application/json); Header: Cache-Control
400

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)
401

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)
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/api/projects/{project_id}/card-types

Kartentypen im Projekt auflisten

Entdecken Sie integrierte Karten aus dem veröffentlichten Katalog dieser Umgebung, zusammengeführt mit dem bereitgestellten Floor. Aktualisierungen und Schemaüberprüfungen erfolgen im Hintergrund; diese Route ruft niemals den Edge-Bucket auf. Jeder Eintrag listet seine aktuelle Kopie, seine Stufe und die Layouts, die diese Stufe erlaubt, sowie jede ausgelieferte Hauptversion auf.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listCardTypesInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-types'

Antworten

StatusBedeutungTextkörper und Header
200Eingebauter Kartenkatalog, nach ID sortiertCardCatalogue (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/projects/{project_id}/card-data

Kartendaten im Projekt auflisten

Listet die Kartendatendokumente des Projekts auf, maximal 200 in aufsteigender Schlüsselreihenfolge. next_cursor ist der zuletzt zurückgegebene Schlüssel; geben Sie ihn als after für die nächste Seite zurück, null, wenn keine weiteren vorhanden sind. Kartendatendokumente enthalten die dynamischen Eigenschaften von Kartenplatzierungen (Menüabschnitte, Ticker-Elemente, KPI-Kacheln); der Daten-Schlüssel der Platzierung benennt einen davon.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listCardDataInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
nachAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-data'

Antworten

StatusBedeutungTextkörper und Header
200KartendatendokumenteCardDataList (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/projects/{project_id}/media

Medien im Projekt auflisten

Bereite Medien neueste zuerst auflisten, maximal 1000 pro Seite. folder enthält nur die Dateien direkt in einem Medienordner (dessen ID) oder mit root nur die an der Bibliothekswurzel; eine wohlgeformte Ordner-ID, die keinen Ordner benennt, listet nichts auf. next_cursor ist die Position der zuletzt zurückgegebenen Zeile, solange weitere Zeilen vorhanden sind; geben Sie ihn als after mit denselben Filtern für die nächste Seite zurück. next_cursor ist auf der letzten Seite null.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listMediaInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
TagAbfrageoptionalExaktes Medientag. Unmarkierte Objekte werden ausgelassen, wenn dieser Filter vorhanden ist.
primitiveAbfrageoptional
OrdnerAbfrageoptionalEine Medienordner-ID enthält nur die Dateien direkt in diesem Ordner, nicht die seiner Unterordner; root enthält nur die Dateien im Bibliotheksstamm. Weggelassen listet jede Datei auf.
idsAbfrageoptional

Kommagetrennte Medien-IDs, höchstens 200 verschiedene; mehr wird mit invalid_request bei ids abgelehnt. Es bleiben nur diese Dateien: Eine ID, die keine fertige Datei benennt, fehlt im Ergebnis, und die übrigen Filter und die Paginierung gelten weiterhin. Ein leerer Wert listet nichts auf.

libraryAbfrageoptional

true listet statt dieses Projekts das Bibliotheksprojekt der Organisation auf: Seine Elemente sind hier schreibgeschützt und tragen library true. Eine Organisation ohne Bibliothek oder das Bibliotheksprojekt selbst listet mit true nichts auf.

nachAbfrageoptionalnext_cursor der vorherigen Seite derselben Liste mit denselben Filtern. Wird ausgelassen, beginnt bei der neuesten Zeile. Ein Wert, der kein solcher Cursor ist, ist invalid_request.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media'

Antworten

StatusBedeutungTextkörper und Header
200MedienMediaList (application/json)
POST/api/projects/{project_id}/media/generations

Medienerstellung im Projekt starten

Ein Standbild aus einem Prompt erzeugen, es als fertiges privates Projektmedium speichern und seine Nutzung berechnen. POST antwortet sofort mit 202 und Operation, mit oder ohne Prefer: respond-async, weil ein Proxy vor der API eine Anfrage verwirft, die 100 s lang kein Byte sendet, und ein Standbild in hoher Qualität länger dauern kann.

Fragen Sie GET /api/operations/{id} ab, bis Operation succeeded ist, wenn result {media_id, usage: {quality, credits, usd}} (MediaGenerationUsage) ist, oder failed ist, wenn error das Problem ist. Eine Ablehnung, die vor jeder Arbeit des Anbieters entschieden wird (payment_required, reseller_generation_limit, rate_limited, not_ready, invalid_request), beantwortet den POST dennoch.

Sie enthält niemals Bildbytes, b64_json, Objektschlüssel, signierte URLs, Anbieter-URLs, Anbieter-Kosten, Anbieter-Tokens oder den Namen des Bereitstellungsmodells. Der Prompt sind Kundenbytes und wird nicht zurückgegeben.

Bevor der Prompt den Bildanbieter erreicht, fügt der Server feste Rahmenanforderungen hinzu: Das Kunstwerk muss den Rahmen randfüllend ausfüllen, und es dürfen kein Fernseher, Monitor, Bildschirm, Display, Rahmen, Rand, Halterung, Ständer, Wand, Raum, Geräte-Mockup, Schatten oder Foto eines installierten Schildes dargestellt werden. Jegliche Beschreibung im Prompt, wo das Schild hängen wird oder welches Gerät es zeigt, wird als Platzierungsmetadaten und nicht als Motiv behandelt.

Dekorative Regeln und Rahmen innerhalb des Designs selbst bleiben verfügbar. Der Prompt des Aufrufers wird niemals umgeschrieben oder entfernt und wird unverändert gespeichert. Idempotency-Key spielt dieselbe Operation erneut ab, niemals einen zweiten berechneten Versuch. Clients führen kein PUT aus und committen die generierten Bytes nicht.

Die gespeicherte Wiedergabe ist verlustbehaftetes WebP (Qualität 90) in genauem Seitenverhältnis mit einer kurzen Kante von 1080 px (16:9 ist 1920x1080, 9:16 1080x1920, 1:1 1080x1080, 4:3 1440x1080, 3:4 1080x1440, 3:2 1620x1080, 2:3 1080x1620); die Lieferanten-Leinwand wird zentriert zugeschnitten und auf diese Größe neu abgetastet.

Der Dateiname ist pro Generation unverwechselbar, z. B. generated-16x9-1a2b3c4d.webp, mit dem Suffix aus der Medien-ID. Holen Sie die Bytes mit GET /api/media/{id}/content. Eigene Generierung und anschließendes Hochladen bleibt gültig.

Bei Standard führt ein Guthaben, das nach dem Einführungsniveau (minus 1.000.000 Credits bis 2027-01-01, dann null) nicht die doppelten Anbieterkosten des Standbilds abdeckt, auf ganze Credits aufgerundet, zu payment_required, außer SCREENRIG__ENVIRONMENT=development, und die Zulassung vor dem Anbieteraufruf erfordert ein Guthaben über diesem Niveau um den Mindestwert pro Qualität: 200 Credits für niedrig, 800 für mittel, 2000 für hoch.

Andere Pläne werden nie wegen ihres Guthabens abgelehnt.

Eine über einen Reseller abgerechnete Organisation wird mit reseller_generation_limit (402) abgelehnt, sobald den delegierten Kunden ihres Resellers das monatliche Limit für die Bildgenerierung in Rechnung gestellt wurde ($100 zum Listenpreis, solange der Reseller auf die Prüfung wartet, danach $1,000, gezählt pro UTC-Monat), es sei denn, das eigene Guthaben der Organisation deckt das Bild; eine bereits zugelassene Generierung wird abgeschlossen.

Eine leere Konfiguration des gewählten Anbieters liefert not_ready. Nur Projekt-Bearer. Eine laufende Generierung pro Organisation; weitere Parallelität ist rate_limited.

Authentifizierung
projectBearer
Anfrageinhalt
MediaGenerationRequest
Operations-ID
createMediaGenerationInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich
PreferÜberschriftoptionalOptional. Die Route antwortet mit oder ohne diesen Header sofort mit 202 und Operation; fragen Sie Operation ab.

Anfrageinhalt-Felder

FeldBeschreibung
prompt (erforderlich, Zeichenkette)minLength: 1 maxLength: 4000
aspect_ratio (optional, string)Erlaubt: "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" Standard: "16:9"
Qualität (optional, Zeichenkette)Erlaubt: "low", "medium", "high" Standard: "medium"
Tag (optional, string)Muster: "^[A-Za-z0-9]{1,32}$"
Referenzen (optional, Array)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media/generations'

Antworten

StatusBedeutungTextkörper und Header
202

Die Generierung wurde akzeptiert und läuft weiter; fragen Sie GET /api/operations/{id} ab, bis Operation succeeded (result media_id und usage) oder failed (error) ist. Derselbe Idempotency-Key antwortet mit derselben Operation.

Operation (application/json); Header: Preference-Applied, RateLimit-Policy, RateLimit
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)
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)
500

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/projects/{project_id}/media-folders

Medienordner im Projekt auflisten

Alle Medienordner im Projekt auflisten, maximal 1000, sortiert nach Name. Ordner organisieren die Medienbibliothek, und ein Playlist-Selector nach:folder spielt die Dateien direkt in einem Ordner ab. Die parent_id eines Ordners ist null an der Bibliothekswurzel.

Bauen Sie den Baum aus parent_id; der Ordner einer Datei ist Media.folder_id. library=true listet stattdessen die Ordner der Bibliothek der Organisation auf (schreibgeschützt; ein by:folder-Selektor kann einen davon benennen).

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listMediaFoldersInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
libraryAbfrageoptional

true listet statt dieses Projekts das Bibliotheksprojekt der Organisation auf: Seine Elemente sind hier schreibgeschützt und tragen library true. Eine Organisation ohne Bibliothek oder das Bibliotheksprojekt selbst listet mit true nichts auf.

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-folders'

Antworten

StatusBedeutungTextkörper und Header
200MedienordnerMediaFolderList (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/projects/{project_id}/media-folders

Medienordner im Projekt erstellen

Erstellt einen Medienordner im Bibliotheksstamm (parent_id null oder nicht vorhanden) oder innerhalb von parent_id. Namen werden getrimmt, enthalten 1 bis 100 Unicode-Zeichen ohne Steuerzeichen, sind nicht "." oder ".." und können sich wiederholen. Eine Organisation hält höchstens 1000 Ordner über alle ihre Projekte (quota_exceeded), maximal 10 Ebenen tief (invalid_request). Sendet media.folder_created.

Authentifizierung
projectBearer
Anfrageinhalt
MediaFolderCreate
Operations-ID
createMediaFolderInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
Name (erforderlich, Zeichenkette)Gekürzt; 1 bis 100 Unicode-Zeichen, keine Steuerzeichen, nicht . oder .. minLength: 1 maxLength: 100
parent_id (optional, inline)Der Ordner, in dem es erstellt werden soll; null oder fehlt für die Bibliothekswurzel.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-folders'

Antworten

StatusBedeutungTextkörper und Header
201Ordner erstellt.MediaFolder (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)
POST/api/projects/{project_id}/media/move

Medien im Projekt verschieben

Verschiebt Dateien (media_ids) und Ordner (folder_ids) in einen Ordner (folder_id) oder zum Bibliotheksstamm, wenn folder_id null ist, in einer einzigen Alles-oder-Nichts-Anfrage mit maximal 1000 IDs. Jede ID muss existieren (not_found). Ein Ordner kann nicht in sich selbst oder einen darin enthaltenen Ordner verschoben werden, und die Verschiebung muss alle Ordner innerhalb von 10 Ebenen halten (invalid_request).

Elemente, die sich bereits am Ziel befinden, bleiben unverändert; jede verschobene Datei und jeder verschobene Ordner erhöht deren Revision. Das Verschieben von Dateien ändert, was die by:folder-Selektoren ihrer alten und neuen Ordner abspielen, basierend auf der nächsten Selektorauflösung jedes Bildschirms; das Verschieben eines Ordners ändert keine eigenen Dateien eines Ordners. Sendet media.moved.

Eine Propose-Anmeldeinformation macht jede verschobene Datei ausstehend und setzt ihre Medienüberprüfung in die Warteschlange; genehmigte Playlists lösen sie durch den Ordner auf, mit dem sie genehmigt wurde, bis eine Person die Änderung genehmigt (docs/reviews.md).

Authentifizierung
projectBearer
Anfrageinhalt
MediaMove
Operations-ID
moveMediaInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
folder_id (erforderlich, inline)Zielordner; null für die Bibliothekswurzel.
media_ids (optional, Array)
folder_ids (optional, Array)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media/move'

Antworten

StatusBedeutungTextkörper und Header
200Wie viele Dateien und Ordner verschoben wurden.MediaMoveResult (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/projects/{project_id}/media/uploads

Medien-Upload im Projekt starten

Authentifizierung
projectBearer
Anfrageinhalt
MediaUploadDeclaration
Operations-ID
createMediaUploadInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich
project_idAbfrageoptional

Erforderlich mit dashboardSession: das Projekt, in dem die Datei in die Warteschlange gestellt wurde. Muss mit dem ausgewählten Projekt der Sitzung übereinstimmen, sonst resource_conflict. Dies bindet die Upload-Zulassung über Tabs hinweg. Die zurückgegebene Upload-ID bleibt projektbezogen für Byte-Upload und Commit. Weggelassen bei einem Projekt-Bearer.

Anfrageinhalt-Felder

FeldBeschreibung
Dateiname (erforderlich, String)Name der hochgeladenen Bytes, wie sie gesendet werden: ein reiner Dateiname mit höchstens 255 UTF-8-Bytes, ohne Verzeichnis, Backslash oder Steuerzeichen. minLength: 1 maxLength: 255
source_filename (optional, Zeichenfolge)

Ursprünglicher Dateiname des Aufrufers vor jeglicher clientseitiger Transkodierung. Nur Dateiname ohne Pfad, höchstens 255 UTF-8-Bytes. Wird unverändert als source_filename im fertigen Medium gespeichert und zur Ableitung von filename verwendet. minLength: 1 maxLength: 255

content_type (erforderlich, Zeichenfolge)Erlaubt: "image/png", "image/jpeg", "image/webp", "image/gif", "video/mp4", "video/webm", "audio/mpeg"
Bytes (erforderlich, Ganzzahl)Minimum: 1 Maximum: 1073741824
sha256 (erforderlich, Zeichenfolge)Muster: "^[a-f0-9]{64}$"
Tag (optional, string)Muster: "^[A-Za-z0-9]{1,32}$"
folder_id (optional, String)

Der Medienordner, in dem das fertige Medium landet; weggelassen landet es im Stammverzeichnis der Bibliothek. Der Ordner muss existieren, wenn der Upload deklariert wird (sonst invalid_request bei folder_id) und wenn er abgeschlossen wird (die Operation schlägt mit invalid_request fehl: erneut deklarieren). Ein Uploader (docs/uploaders.md) muss einen seiner Ordner senden (sonst outside_upload_scope).

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media/uploads'

Antworten

StatusBedeutungTextkörper und Header
201

Kurzlebige signierte Autorisierung für genau ein privates Objekt-PUT. Senden Sie die zurückgegebene Methode und jeden zurückgegebenen Header wörtlich. So lädt auch das Dashboard hoch. Sein Browser überträgt die Bytes per PUT direkt an den Objektspeicher, niemals über die API, weil ein Proxy vor der API einen Request-Body über 100 MB ablehnt.

Ein Browser setzt Content-Length selbst aus dem Body, daher sendet er jeden zurückgegebenen Header außer diesem.

MediaUploadSession (application/json); Header: Cache-Control, 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)
POST/api/projects/{project_id}/selectors/preview

Vorschau-Auswahl im Projekt

Nur lesende Vorschau aktueller projekt-eigener bereiter Bild- oder Videoübereinstimmungen. Gibt Dateinamenreihenfolge und normalisierte Richtlinie zurück; zufällige Wiedergabe mischt bei jedem neuen Durchlauf auf dem Player. Bewegt keine Cursor, erstellt keine Inhaltsberechtigungen und ändert keine Manifeste. Mehr als 1024 Übereinstimmungen führen zu invalid_request.

Authentifizierung
projectBearer
Anfrageinhalt
SelectorPreviewInput
Operations-ID
previewSelectorInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Zeitzone (optional, Zeichenkette)IANA-Zone, in der die Medienverfügbarkeit gelesen wird; Standard UTC.
rect (optional, Objekt)Die Rect-Größe der Primitive; erforderlich mit selector.fit aspect.
primitive (erforderlich, Zeichenfolge)Erlaubt: "image", "video"
selector (erforderlich, inline)
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/selectors/preview'

Antworten

StatusBedeutungTextkörper und Header
200Aktuelle Selektoren stimmen überein.SelectorPreview (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/projects/{project_id}/feedback/bugs

Fehlerberichte im Projekt auflisten

Gibt die eigenen Fehlerberichte des aufrufenden Projekts zurück, neueste zuerst, bis zu hundert. Einsendungen anderer Projekte werden nie zurückgegeben. Lesen Sie einen eigenen Thread anhand seiner Feedback-ID. Es gibt keinen Paginierungscursor in v1. Jede Einsendung enthält ihren Status und die Antworten von Mitarbeitern/Agenten, älteste zuerst.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listBugReportsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feedback/bugs'

Antworten

StatusBedeutungTextkörper und Header
200Fehlerberichte, die dem aufrufenden Projekt gehören.FeedbackList (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/projects/{project_id}/feedback/bugs

Fehler im Projekt melden

Erfasst einen Fehlerbericht für das aufrufende Projekt. Die eigenen Felder einer Einreichung können nicht aktualisiert oder gelöscht werden; fügen Sie eine Korrektur oder weitere Informationen mit einer Antwort im selben Feedback-Thread hinzu.

Ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt die ursprüngliche Einreichung für vierundzwanzig Stunden zurück, anstatt ein Duplikat zu erstellen, und ein anderer Inhalt unter diesem Schlüssel gibt idempotency_mismatch zurück. Jede Einreichung wird geprüft, bevor sie gespeichert wird.

Ein Textkörper unter 12 Zeichen oder 3 Wörtern gibt submission_too_short zurück; Text, der kein Problem oder keine Anfrage beschreibt (zufällige Zeichen, Tastaturgeklimper) gibt submission_unclear zurück; Spam, linklastiger Text, Prompt Injection und bösartiger Text geben submission_rejected zurück.

Eine abgelehnte Einreichung wird nicht gespeichert, ihr Problemdetail wiederholt nie den eingereichten Text, und ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt dieselbe Ablehnung zurück.

Platzieren Sie niemals Anmeldeinformationen, Cookies, Authorization-Header, Abschluss-Nonces, signierte URLs oder Objektschlüssel in Titel, Text oder Kontext; anmeldeinformationsähnlicher Text (ScreenRig-Tokens, JWTs, Bearer-Tokens, Cloud- und API-Schlüssel, private Schlüssel) wird vor der Speicherung der Einreichung durch [redacted] ersetzt, und die Antwort enthält den redigierten Text.

Wenn das Screening-Modell kurzzeitig nicht verfügbar ist, wird die Einreichung akzeptiert und für ein Hintergrund-Re-Screening zurückgehalten; nach mehreren solchen Akzeptanzen innerhalb einer Stunde erhält das Projekt submission_screening_unavailable (500, Retry-After) und versucht die gleiche Anfrage später erneut.

Authentifizierung
projectBearer
Anfrageinhalt
FeedbackWrite
Operations-ID
reportBugInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Titel (erforderlich, Zeichenkette)Einzeilige Zusammenfassung. Führende und nachfolgende Leerzeichen werden entfernt, Steuerzeichen abgelehnt. minLength: 1 maxLength: 120
Inhalt (erforderlich, Zeichenfolge)Vollständige Beschreibung. Zeilenumbruch und Tabulator sind die einzigen akzeptierten Steuerzeichen. minLength: 1 maxLength: 4000
context (optional, FeedbackContext)

Geschlossener Diagnoseumschlag. Jedes Mitglied ist ein optionaler eingeschränkter Skalar, Verschachtelung ist strukturell unmöglich, unbekannte Mitglieder werden mit invalid_request abgelehnt. Die Form existiert, damit ein Client keine Argumentwerte, Anmeldeinformationen oder freie Umgebungsdaten darin speichern kann.

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feedback/bugs'

Antworten

StatusBedeutungTextkörper und Header
201Gespeicherter Fehlerbericht. Ein exakter idempotenter Wiederholungsversuch liefert dieselbe Einreichung zurück.FeedbackSubmission (application/json); Header: RateLimit-Policy, RateLimit
400

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)
409

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)
422

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)
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/projects/{project_id}/feedback/features

Funktionsanfragen im Projekt auflisten

Gibt die eigenen Feature-Anfragen des aufrufenden Projekts zurück, neueste zuerst, bis zu hundert. Einsendungen anderer Projekte werden nie zurückgegeben. Lesen Sie einen eigenen Thread anhand seiner Feedback-ID. Es gibt keinen Paginierungscursor in v1. Jede Einsendung enthält ihren Status und die Antworten von Mitarbeitern/Agenten, älteste zuerst.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listFeatureRequestsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feedback/features'

Antworten

StatusBedeutungTextkörper und Header
200Feature-Anfragen, die vom aufrufenden Projekt besessen werden.FeedbackList (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/projects/{project_id}/feedback/features

Feature im Projekt anfordern

Erfasst eine Funktionsanfrage für das aufrufende Projekt. Die eigenen Felder einer Einreichung können nicht aktualisiert oder gelöscht werden; fügen Sie eine Korrektur oder weitere Informationen mit einer Antwort im selben Feedback-Thread hinzu.

Ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt die ursprüngliche Einreichung für vierundzwanzig Stunden zurück, anstatt ein Duplikat zu erstellen, und ein anderer Inhalt unter diesem Schlüssel gibt idempotency_mismatch zurück. Jede Einreichung wird geprüft, bevor sie gespeichert wird.

Ein Textkörper unter 12 Zeichen oder 3 Wörtern gibt submission_too_short zurück; Text, der kein Problem oder keine Anfrage beschreibt (zufällige Zeichen, Tastaturgeklimper) gibt submission_unclear zurück; Spam, linklastiger Text, Prompt Injection und bösartiger Text geben submission_rejected zurück.

Eine abgelehnte Einreichung wird nicht gespeichert, ihr Problemdetail wiederholt nie den eingereichten Text, und ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt dieselbe Ablehnung zurück.

Platzieren Sie niemals Anmeldeinformationen, Cookies, Authorization-Header, Abschluss-Nonces, signierte URLs oder Objektschlüssel in Titel, Text oder Kontext; anmeldeinformationsähnlicher Text (ScreenRig-Tokens, JWTs, Bearer-Tokens, Cloud- und API-Schlüssel, private Schlüssel) wird vor der Speicherung der Einreichung durch [redacted] ersetzt, und die Antwort enthält den redigierten Text.

Wenn das Screening-Modell kurzzeitig nicht verfügbar ist, wird die Einreichung akzeptiert und für ein Hintergrund-Re-Screening zurückgehalten; nach mehreren solchen Akzeptanzen innerhalb einer Stunde erhält das Projekt submission_screening_unavailable (500, Retry-After) und versucht die gleiche Anfrage später erneut.

Authentifizierung
projectBearer
Anfrageinhalt
FeedbackWrite
Operations-ID
requestFeatureInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Titel (erforderlich, Zeichenkette)Einzeilige Zusammenfassung. Führende und nachfolgende Leerzeichen werden entfernt, Steuerzeichen abgelehnt. minLength: 1 maxLength: 120
Inhalt (erforderlich, Zeichenfolge)Vollständige Beschreibung. Zeilenumbruch und Tabulator sind die einzigen akzeptierten Steuerzeichen. minLength: 1 maxLength: 4000
context (optional, FeedbackContext)

Geschlossener Diagnoseumschlag. Jedes Mitglied ist ein optionaler eingeschränkter Skalar, Verschachtelung ist strukturell unmöglich, unbekannte Mitglieder werden mit invalid_request abgelehnt. Die Form existiert, damit ein Client keine Argumentwerte, Anmeldeinformationen oder freie Umgebungsdaten darin speichern kann.

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feedback/features'

Antworten

StatusBedeutungTextkörper und Header
201Gespeicherte Funktionsanfrage. Ein exakter idempotenter Wiederholungsversuch liefert dieselbe Einreichung zurück.FeedbackSubmission (application/json); Header: RateLimit-Policy, RateLimit
400

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)
409

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)
422

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)
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/projects/{project_id}/service-clients

Service-Clients im Projekt auflisten

Die Service-Clients des Projekts (Spezifikation: ein Server, Skript oder CI-Job eines Kunden, der dem Projekt gehört), neueste zuerst, aktiv und widerrufen, mit ihren öffentlichen Schlüsseln, geheimen IDs und Nutzung; niemals ein Geheimnis oder dessen Digest. Benötigt die Projektfähigkeit.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listServiceClientsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/service-clients'

Antworten

StatusBedeutungTextkörper und Header
200Der Service-Client.ServiceClientList (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/projects/{project_id}/service-clients

Service-Client im Projekt erstellen

Erstellt einen Service-Client, der dem Projekt gehört, mit einem Namen, Fähigkeiten (weggelassen bedeutet alle sechs; jede muss vom Manager gehalten werden, sonst 403), Zugriff (lesen, Standard, oder verwalten) und einem öffentlichen JWK-Schlüssel (OKP Ed25519, EC P-256 oder RSA mit mindestens 2048 Bit) und/oder geheim true. Das Geheimnis wird einmalig zurückgegeben, nur hier. Maximal 50 aktive Clients pro Organisation.

Agenten benötigen Identitätsscope, aktive Identität Manage, ihre eigene Manage-Berechtigung mit der Projektfähigkeit im Projekt und eine aktive Administratorrolle in der Organisation; eine Person verwendet die Dashboardsitzung mit project_id und einem frischen Nachweis (Art service_client_change, Subjekt die Client-ID oder die Projekt-ID bei Erstellung) im Body. Ein Servicetoken wird mit 403 abgelehnt.

Ein auf Bildschirme beschränktes Mitglied verbindet keine Agenten, stellt keine Zugangsdaten aus und verwaltet nicht die Personen des Projekts: outside_screen_scope (den Projektinhaber fragen).

Authentifizierung
agentIdentityBearer
Anfrageinhalt
ServiceClientChange
Operations-ID
createServiceClientInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich

Anfrageinhalt-Felder

FeldBeschreibung
project_id (optional, Zeichenkette)Nur Dashboard-Sitzung.
proof (optional, DashboardProof)
Name (optional, Zeichenkette)minLength: 1 maxLength: 80
Fähigkeiten (optional, Array)
Zugriff (optional, String)Verwalten erfordert eine Person, die Überprüfungen genehmigen kann (403 approver_required). Erlaubt: "lesen", "vorschlagen", "verwalten"
key (optional, object)Ein öffentlicher JWK: OKP Ed25519, EC P-256 oder RSA mit mindestens 2048 Bit.
secret (optional, boolean)Ein Geheimnis erzeugen (nur Erstellung).
upload_scope (optional, UploadScope)

Was ein Uploader verwenden darf (docs/uploaders.md): die Playlists, deren Seiten er ändert, und die Medienordner, in die er hochlädt. Ordner sind genau die aufgelisteten, nie deren Unterordner. Eine ID, die beim Schreiben kein aktives Objekt des Projekts benennt, ergibt invalid_request an ihrer Position; ein späteres Löschen hinterlässt eine tote ID, die nichts gewährt.

Der Bereich wird bei jeder Anfrage gelesen, sodass eine Änderung ab der nächsten gilt.

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/service-clients'

Antworten

StatusBedeutungTextkörper und Header
201Der Service-Client.ServiceClientResult (application/json)
402

feature_not_in_plan — ein Upload-Bereich macht einen Uploader, und der Plan des Projekts enthält keine Uploader; required_plan nennt den Plan, der sie enthält. Das Einengen eines Bereichs und das Entfernen sind immer erlaubt.

Problem (application/problem+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/api/projects/{project_id}/media-sync-accounts

Konten der Mediensynchronisierung auflisten im Projekt

Lists the project's media sync accounts, newest first (200 per page; next_cursor continues). Each shows its tenant and client id, its state and its last test; the client secret is never returned, only whether one is set and its last four characters.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listMediaSyncAccountsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
CursorAbfrageoptionalDer next_cursor der vorherigen Seite.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-sync-accounts'

Antworten

StatusBedeutungTextkörper und Header
200Die Konten des Projekts.MediaSyncAccountList (application/json); Header: Cache-Control
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/projects/{project_id}/media-sync-accounts

Konto für die Mediensynchronisierung anlegen im Projekt

Fügt ein Konto hinzu, das lesend synchronisiert. kind microsoft365 speichert die Zugangsdaten der eigenen Microsoft-Entra-App des Projekts, sodass Synchronisierungen einen SharePoint- oder OneDrive-for-Work-Ordner lesen können: config.tenant_id ist die Verzeichnis-ID oder primäre Domain des Mandanten (common, organizations und consumers werden abgelehnt), config.client_id die Anwendungs-ID der App und secret der Wert eines der Client-Secrets der App; die App braucht die Microsoft-Graph-Anwendungsberechtigung Sites.Selected (für jede Website erteilt) oder Files.Read.All, mit Administratorzustimmung.

Anstelle dieser drei benennt config.connection_id eine Microsoft-Verbindung des Projekts (createConnection), in beiden Modi, die sich anmeldet und das Secret hält. kind canva nimmt nur einen Namen: Das Konto ist pending_consent, und die Antwort trägt authorize_url, einen einmaligen Link (gültig bis authorize_expires_at), den die Person, der das Canva-Konto gehört, bei Canva angemeldet öffnet, um es über die Canva-Integration von screenRIG zu verbinden.

Die Freigabe gehört dem Projekt, sodass ihre Synchronisierungen die Person überdauern, die das Konto verbunden hat.

Ein Server ohne die Canva-Integration antwortet mit 409 canva_not_configured. kind dropbox funktioniert wie canva: Das Konto ist pending_consent, und authorize_url ist ein einmaliger Link, den die Person, der das Dropbox-Konto gehört, bei Dropbox angemeldet öffnet, um Lesezugriff zu erlauben (files.metadata.read, files.content.read, account_info.read, sharing.read).

Die Verbindung läuft über die Dropbox-App von screenRIG oder, wenn config.app_key sie benennt, über die eigene Dropbox-App des Kunden (PKCE, daher kein App-Secret; die App muss https://API_ORIGIN/api/dropbox/callback als Redirect-URI eingetragen haben).

Ein Server ohne die Dropbox-App von screenRIG antwortet auf ein dropbox-Konto ohne app_key mit 409 dropbox_not_configured. kind google_drive ist sofort ready und liest die Ordner, die für config.service_account_email freigegeben sind: das Dienstkonto von screenRIG oder das eigene des Kunden, wenn secret der JSON-Schlüssel dieses Dienstkontos ist.

Ein für das Dienstkonto von screenRIG freigegebener Ordner wird nur synchronisiert, wenn ein Projektmitglied mit verifizierter E-Mail ihn freigegeben hat oder besitzt. Ein Server ohne das Dienstkonto von screenRIG antwortet auf ein google_drive-Konto ohne Schlüssel mit 409 google_drive_not_configured. Ein Secret wird im Ruhezustand versiegelt und nie zurückgegeben oder protokolliert. Hängt media_sync_account.created an.

Ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt dasselbe Konto zurück (ein Wiederholungsversuch für ein Canva- oder Dropbox-Konto erhält einen neuen Link).

Authentifizierung
projectBearer
Anfrageinhalt
MediaSyncAccountWrite
Operations-ID
createMediaSyncAccountInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
kind (erforderlich, string)Erlaubt: "microsoft365", "canva", "dropbox", "google_drive"
Name (erforderlich, Zeichenkette)minLength: 1 maxLength: 80
config (optional, object)

Für microsoft365 entweder tenant_id und client_id (beide) mit secret oder connection_id allein: die ID einer Microsoft-Verbindung dieses Projekts. Für dropbox benennt app_key optional die eigene Dropbox-App des Kunden. Nicht akzeptiert für canva oder google_drive.

secret (optional, String)

Erforderlich für microsoft365 mit tenant_id und client_id: der Wert eines der Client-Secrets der App (nicht ihre ID), höchstens 1024 Zeichen.

Für google_drive optional: der JSON-Schlüssel des eigenen Google-Cloud-Dienstkontos des Kunden (type service_account), dessen client_email zur service_account_email des Kontos wird; ohne ihn liest das Konto über das Dienstkonto von screenRIG. Nicht akzeptiert zusammen mit connection_id und nicht für canva oder dropbox. minLength: 1 maxLength: 8192

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-sync-accounts'

Antworten

StatusBedeutungTextkörper und Header
201Angelegt, mit maskiertem Secret; ein Canva- oder Dropbox-Konto enthält zusätzlich authorize_url.MediaSyncAccountConnect (application/json); Header: ETag, Cache-Control
400invalid_request.Problem (application/problem+json)
402feature_not_in_plan — der Plan des Projekts enthält keine Mediensynchronisierung; required_plan nennt den Plan, der sie enthält.Problem (application/problem+json)
409

canva_not_configured (dieser Server hat keine Canva-Integration; nur kind canva), dropbox_not_configured (keine Dropbox-App von screenRIG und kein config.app_key; nur kind dropbox), google_drive_not_configured (kein Dienstkonto von screenRIG und kein Schlüssel; nur kind google_drive), resource_conflict oder idempotency_mismatch.

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/projects/{project_id}/media-syncs

Mediensynchronisierungen auflisten im Projekt

Lists the project's media syncs, newest first (200 per page; next_cursor continues), optionally of one account_id or state. Each shows its source folder, the media folder it fills, its cadence, state, next run and the summary of its last run.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listMediaSyncsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
CursorAbfrageoptionalDer next_cursor der vorherigen Seite.
account_idAbfrageoptionalListet nur die Synchronisierungen auf, die über dieses Konto lesen.
StatusAbfrageoptionalListet nur die Synchronisierungen in diesem Zustand auf.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-syncs'

Antworten

StatusBedeutungTextkörper und Header
200Die Synchronisierungen des Projekts.MediaSyncList (application/json); Header: Cache-Control
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/projects/{project_id}/media-syncs

Mediensynchronisierung anlegen im Projekt

provider canva: liest das Design (design ist seine ID oder seine Adresse canva.com/design/ID/...) über ein verbundenes Canva-Konto und speichert die Synchronisierung, jetzt fällig.

Each run asks Canva for the design's last change and, when it moved, exports the pages (pages, default all; format png gives one image per page and mp4 one video) and imports them into the media folder, replacing the bytes of a page already imported under the same media id so the playlists that use it update; a page the design no longer has leaves play like a removed SharePoint file.

Ein Design, das Canva nicht mehr anzeigt, stoppt die Synchronisierung im Zustand error (Laufzeitfehler design_unavailable) und behält die Medien.

Ein Design oder eine Seite, die das Konto nicht sehen kann, ist 409 media_sync_source_refused. provider dropbox: url ist die Adresse des Ordners in Dropbox (https://www.dropbox.com/home/...), ein Link zu einem freigegebenen Ordner, den das verbundene Konto seiner Dropbox hinzugefügt hat, oder ein mit / beginnender Pfad; sie wird einmal über ein verbundenes Dropbox-Konto gelesen, und die Synchronisierung wird gespeichert, jetzt fällig.

Ordner in einem Team-Space werden vom Stammverzeichnis des Teams aus gelesen. Jeder Lauf setzt an der von Dropbox gespeicherten Position im Ordner fort, sodass nur Änderungen gelesen werden.

Ein Ordner, den das Konto nicht öffnen kann, ist 409 media_sync_source_refused; ein Konto, dessen Verbindung Dropbox nicht mehr anerkennt, ist 409 dropbox_reconnect_required. provider google_drive: url ist die Google-Drive-Adresse des Ordners (https://drive.google.com/drive/folders/ID) oder seine ID, freigegeben (Viewer genügt) für die service_account_email des Kontos.

Jeder Lauf listet den Ordner auf und vergleicht die Prüfsumme jeder Datei. Dateien aus Google Docs, Sheets und Slides werden als unsupported_type übersprungen. Ein Ordner, der sich über die Adresse nicht öffnen lässt, ist 409 media_sync_source_refused.

Über das Dienstkonto von screenRIG muss der Ordner von einem Projektmitglied mit verifizierter E-Mail freigegeben worden sein oder diesem gehören (403 media_sync_sharer_not_member), und jeder Lauf prüft das erneut (der Laufzeitfehler sharer_not_member stoppt die Synchronisierung im Zustand error). provider sharepoint: liest die Adresse des Ordners über das Konto (eine SharePoint-Website-Adresse wie https://TENANT.sharepoint.com/sites/SITE/LIBRARY/FOLDER oder ein Freigabelink; die App muss sie sehen können: Sites.Selected braucht eine Freigabe für die Website, ein Freigabelink braucht Files.Read.All) und speichert die Synchronisierung, jetzt fällig. folder_id ist der Medienordner, in dem die Dateien landen; ohne ihn legt die Synchronisierung einen an, der nach dem Quellordner benannt ist.

Each run imports the images (png, jpeg, webp, gif), videos (mp4, webm) and audio (mp3) directly in the source folder, replaces the bytes of a file that changed under the same media id so playlists that use it update, and takes a file removed at the source out of play: its media is deleted, or, while screens still hold it, moved to a Removed subfolder and deleted later.

Subfolders are ignored; other files are listed as skipped with the reason. every is the seconds between runs, 300 to 86400, default 900. A folder the provider refuses is 409 media_sync_source_refused and one it cannot reach is 500 media_sync_source_unavailable; nothing is stored. Appends media_sync.created.

Authentifizierung
projectBearer
Anfrageinhalt
MediaSyncWrite
Operations-ID
createMediaSyncInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
provider (erforderlich, String)Erlaubt: "sharepoint", "canva", "dropbox", "google_drive"
account_id (erforderlich, String)Ein Konto der Art des Anbieters: microsoft365 für sharepoint, canva, dropbox oder google_drive.
url (optional, Zeichenfolge)

sharepoint (erforderlich): die SharePoint-Adresse des Ordners oder ein Freigabelink, einmal gelesen, um den Ordner zu finden, und nicht gespeichert. dropbox (erforderlich): die Dropbox-Adresse des Ordners, ein Link zu einem freigegebenen Ordner, den das Konto hinzugefügt hat, oder ein mit / beginnender Pfad. google_drive (erforderlich): die Google-Drive-Adresse des Ordners oder seine ID. maxLength: 4096

design (optional, String)canva (erforderlich): die ID des Designs oder seine Adresse canva.com/design/ID/... maxLength: 2048
Seiten (optional, Array)canva: die zu synchronisierenden Seiten; weglassen für alle Seiten. Ein Design, das später weniger Seiten hat, nimmt die fehlenden aus der Wiedergabe.
format (optional, String)canva: png liefert ein Bild pro Seite; mp4 ein Video der Seiten. Allowed: "png", "mp4" default: "png"
folder_id (optional, String)Der Medienordner, in dem die Dateien landen. Weglassen, um einen nach dem Quellordner benannten anzulegen.
every (optional, Integer)Sekunden zwischen den Läufen; Standard 900. minimum: 300 maximum: 86400
Name (optional, Zeichenkette)Standardmäßig der Name des Quellordners. minLength: 1 maxLength: 80
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/media-syncs'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt, jetzt fällig.MediaSync (application/json); Header: ETag, Cache-Control
400invalid_request.Problem (application/problem+json)
402feature_not_in_plan — der Plan des Projekts enthält keine Mediensynchronisierung; required_plan nennt den Plan, der sie enthält.Problem (application/problem+json)
403media_sync_sharer_not_member — ein über das Dienstkonto von screenRIG gelesener Google-Drive-Ordner war weder von einem Projektmitglied mit verifizierter E-Mail freigegeben noch in dessen Besitz.Problem (application/problem+json)
409

media_sync_source_refused (der Anbieter hat die App, ihre Berechtigung oder den Ordner abgelehnt), dropbox_reconnect_required (das Dropbox-Konto muss erneut verbunden werden), dropbox_not_configured, google_drive_not_configured, resource_conflict (dieselbe Quelle wird bereits in diesen Medienordner synchronisiert) oder idempotency_mismatch.

Problem (application/problem+json)
500media_sync_source_unavailable: Der Anbieter war nicht erreichbar oder antwortete mit einem Fehler.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/projects/{project_id}/fleet-links

Flottenlinks im Projekt auflisten

Listet die Flottenlinks des Projekts auf, älteste zuerst (maximal 50). Unter Effektiv Verwalten ist jede URL leer und url_redacted ist wahr, da die URL Bildschirme erstellt.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listFleetLinksInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/fleet-links'

Antworten

StatusBedeutungTextkörper und Header
200Die Flotten-Links des Projekts.FleetLinkList (application/json); Header: Cache-Control
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/projects/{project_id}/fleet-links

Flottenlink im Projekt erstellen

Erstellt einen Flotten-Link: eine Player-URL (https://play.<domain>/player/#fleet=<secret>), die jedes Gerät, das sie öffnet, in seinen eigenen Bildschirm in diesem Projekt verwandelt, ohne Kopplungscode. Legen Sie ihn in einem Gerätemanager ab, z. B. einer Google Admin Console Kiosk-App.

Jeder neue Bildschirm erhält die Tags, Felder und Playlist des Links sowie ein Label vom Gerät (zuerst die Administrator-Asset-ID, dann den Standort), sonst das nächste Standard-Label. Ein Player, der bereits einen Bildschirm hält, erstellt keinen weiteren: Sein Schlüssel bleibt die Identität des Bildschirms über Neustarts und Neuladen hinweg.

Nach einem Powerwash oder einer Neuinstallation stellt ein Gerät, das die Seriennummer oder DUID eines Bildschirms meldet, den eine Flottenverbindung dieses Projekts erstellt hat, diesen Bildschirm wieder her (screen.recovered), anstatt einen neuen zu erstellen, sobald der alte Schlüssel zehn Minuten lang still war.

Das Geheimnis befindet sich im URL-Fragment, das Browser niemals an einen Server senden. max_screens begrenzt die Bildschirme, die der Link erstellt, und expires_at beendet den Link zu diesem Zeitpunkt, ebenso wie sein Deaktivieren. Eine Organisation hat höchstens 50 Flottenlinks über alle ihre Projekte (fleet_link_limit_reached). Hängt fleet_link.created an.

Ein exakter Wiederholungsversuch mit demselben Idempotency-Key gibt dieselbe Antwort für vierundzwanzig Stunden zurück.

Authentifizierung
projectBearer
Anfrageinhalt
FleetLinkWrite
Operations-ID
createFleetLinkInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
label (erforderlich, string)minLength: 1 maxLength: 80
aktiviert (optional, Boolean)Standardmäßig true.
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.

fields (optional, Objekt)Felder, mit denen jeder vom Link erstellte Bildschirm beginnt; Kartenplatzierungen lesen sie über {screen.field.NAME}.
playlist_id (optional, Zeichenfolge)
max_screens (optional, Ganzzahl)Minimum: 1 Maximum: 10000
expires_at (optional, String)Wann der Link abläuft (RFC 3339); ein Link nach diesem Zeitpunkt legt keine Bildschirme an und stellt keine wieder her. Fehlt der Wert, läuft der Link nie ab. Ein bereits vergangener Zeitpunkt wird akzeptiert und lässt den Link sofort ablaufen. format: "date-time"
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/fleet-links'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt, mit seiner URL.FleetLink (application/json); Header: Cache-Control
400invalid_request, einschließlich einer unbekannten playlist_id oder eines fehlerhaften Tags oder Felds.Problem (application/problem+json)
409fleet_link_limit_reached oder idempotency_mismatch.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/projects/{project_id}/webhooks

Webhooks im Projekt auflisten

Listet die Webhook-Benachrichtigungen des Projekts in der Webhook-Form auf, älteste zuerst (höchstens 50); GET /api/notifications listet jeden Kanal auf. Das Signing-Secret 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 enthält.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listWebhooksInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/webhooks'

Antworten

StatusBedeutungTextkörper und Header
200Die Webhooks des Projekts.WebhookList (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/projects/{project_id}/webhooks

Webhook im Projekt erstellen

Erstellt einen Webhook, der die dauerhaften Ereignisse des Projekts als signierte HTTPS-POSTs empfängt. Die URL muss https auf einem öffentlichen Internet-Host sein: eine IP-Literal oder jede aktuelle DNS-Antwort des Namens muss öffentlich sein (private, loopback, link-local, CGNAT, IPv6 außerhalb 2000::/3, Dokumentation und andere reservierte Bereiche werden mit webhook_url_rejected abgelehnt).

Der Port muss 443 (Standard) oder 8443 sein, sonst webhook_url_rejected. Der Host wird vor jeder Zustellung aufgelöst und erneut geprüft, und die Verbindung wird genau zur geprüften Adresse aufgebaut, sodass eine spätere DNS-Änderung keine Zustellungen umleiten kann. event_types listet genaue Ereignistypen (screen.online) oder Präfixe mit Endung .* (screen.*).

Eine Organisation hat höchstens 50 Benachrichtigungen über alle Kanäle (webhook_limit_reached). Der Server erzeugt das Signing-Secret und gibt es nur in dieser Antwort und in rotate-secret zurück; speichern Sie es. Eine exakte Wiederholung mit demselben Idempotency-Key liefert vierundzwanzig Stunden lang dieselbe Antwort, Secret eingeschlossen.

Die Zustellung beginnt mit dem ersten Ereignis nach notification.created.

Authentifizierung
projectBearer
Anfrageinhalt
WebhookWrite
Operations-ID
createWebhookInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
url (erforderlich, Zeichenfolge)https-URL auf einem öffentlichen Internet-Host, Port 443 (Standard) oder 8443. Kein Benutzerinfo oder Fragment. maxLength: 2048 Format: "uri"
event_types (erforderlich, WebhookEventTypes)

Exakte Ereignistypen wie screen.online oder Präfixe, die auf .* enden, wie screen.* (jeder Typ, der mit screen. beginnt). notification.test wird nie über ein Abonnement verteilt; es wird nur von POST /api/webhooks/{id}/test gesendet.

aktiviert (optional, Boolean)true
Beschreibung (optional, Zeichenfolge)maxLength: 200
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/webhooks'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt. Das Geheimnis wird nur hier und bei rotate-secret angezeigt.Webhook mit Secret (application/json); Header: Cache-Control
400invalid_request oder webhook_url_rejected.Problem (application/problem+json)
409webhook_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/projects/{project_id}/alerts

Alarme im Projekt auflisten

Listet die Bildschirmalarme des Projekts auf: einen pro Bildschirm und Bedingung, solange sie andauert (open), und die, die innerhalb der Ereignisaufbewahrung des Tarifs geendet haben (resolved).

Ein Alarm wird geöffnet, wenn das Ereignis seiner Bedingung eintrifft (screen.offline, eine Gerätezustandsänderung display_disconnected, temperature_high oder on_battery, screen.storage_shortfall, ein hängendes screen.manifest_upgrade, ein screen.status_changed der Fehlerstufe, ein screen.glass_changed mit dem Urteil hängend, leer oder eingefroren), und wird durch das aufhebende Ereignis behoben; crashing ist eine Meldung, kein Alarm. counts.attention zählt offene Alarme, die nicht quittiert, zurückgestellt oder stummgeschaltet sind, also die Zahl, die das Dashboard anzeigt.

Ein Bildschirm, der für einen vom Backend gesendeten Neustart neu startet, öffnet keinen screen_offline- oder display_disconnected-Alarm, bis der Neustart abgeschlossen ist oder zehn Minuten nach dem Senden vergangen sind; eine Bedingung, die dann noch gilt, öffnet ihren Alarm in diesem Moment. Offene Alarme kommen zuerst, die neuesten zuerst; geben Sie next_cursor wie zuvor zurück, um die nächste Seite zu erhalten.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAlertsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
FormatAbfrageoptionaljson (Standard) liefert den Bericht als JSON. csv, xlsx und pdf liefern dieselben Zeilen als Dateianhang (jede Seite eines seitenweisen Berichts, bis zu 50000 Zeilen).
StatusAbfrageoptional
screen_idAbfrageoptional
vorAbfrageoptionalnext_cursor der vorherigen Seite.
LimitAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/alerts'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite mit Alarmen.AlertList (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/projects/{project_id}/alert-mutes

Alarm-Stummschaltungen im Projekt auflisten

Listet die noch nicht beendeten Stummschaltungen des Projekts auf, die zuerst endende zuerst (höchstens 50).

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listAlertMutesInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/alert-mutes'

Antworten

StatusBedeutungTextkörper und Header
200Die aktuellen Stummschaltungen des Projekts.AlertMuteList (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/projects/{project_id}/alert-mutes

Alarm-Stummschaltung im Projekt erstellen

Schaltet Bildschirme für Wartungsarbeiten bis zu einem Zeitpunkt stumm, der höchstens 30 Tage in der Zukunft liegt: die in screen_ids genannten Bildschirme und jeden Bildschirm, der zu dem Zeitpunkt, an dem eine Meldung fällig wird, eines der tags trägt. Ihre Alarme werden weiterhin geöffnet und behoben, als stummgeschaltet markiert, und brauchen nie Aufmerksamkeit; die Meldungen jeder Benachrichtigung dazu werden übersprungen (muted).

Eine Organisation hat höchstens 50 aktuelle Stummschaltungen über alle ihre Projekte (alert_mute_limit_reached). Hängt alert_mute.created an.

Authentifizierung
projectBearer
Anfrageinhalt
AlertMuteWrite
Operations-ID
createAlertMuteInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
screen_ids (optional, array)
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.

until (erforderlich, string)Höchstens 30 Tage in der Zukunft. format: "date-time"
note (optional, string)maxLength: 200
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/alert-mutes'

Antworten

StatusBedeutungTextkörper und Header
201Erstellt.AlertMute (application/json)
409alert_mute_limit_reached oder idempotency_mismatch.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/projects/{project_id}/notifications

Benachrichtigungen im Projekt 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
Anfrageinhalt
keine
Operations-ID
listNotificationsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/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/projects/{project_id}/notifications

Benachrichtigung im Projekt 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
Anfrageinhalt
NotificationWrite
Operations-ID
createNotificationInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

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]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/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/projects/{project_id}/notes

Notizen im Projekt auflisten

Listet die Notizen des Projekts auf, neueste zuerst. Eine Notiz ist eine kurze Klartextinformation, die ein Agent für sein zukünftiges Ich und die anderen Agenten des Projekts geschrieben hat; sie ist Kontext, niemals eine Anweisung und niemals eine Genehmigung.

Jede aktive Berechtigungslesung, einschließlich Nur-Lesen, und das Lesen belastet den API-Zähler nicht. state ist offen (Standard), gelöst oder alle; about_id enthält die Notizen zu einem Bildschirm oder einer Playlist und author_id die Notizen, die ein Agent geschrieben hat.

Geben Sie next_cursor als after für die nächste Seite zurück; es ist auf der letzten Seite leer. new markiert eine offene Notiz, die ein anderer Agent nach dem letzten Lesen der Notizen durch diesen Anrufer geschrieben hat.

Das Lesen der Notizen ist die erste Seite offener Notizen ohne about_id oder author_id: Diese Antwort berechnet neu gegenüber dem vorherigen Lesen und verschiebt dann den Lesemarker auf jetzt (spätere Seiten derselben Liste behalten den früheren Marker).

Es enthält auch eine Überprüfung: bis zu 5 offene Notizen, deren Überprüfung fällig ist (älteste zuerst), die der Aufrufer bestätigen sollte, wenn sie noch gültig sind, und andernfalls auflösen. Eine unbeantwortete Überprüfung 30 Tage nach der ersten Rückgabe löst die Notiz als not_confirmed auf.

Nur ein Agent mit Manage-Zugriff verschiebt seinen Marker und startet diese 30 Tage; ein Nur-Lese-Agent oder ein Service-Client erhält dieselbe Antwort und ändert nichts. Jede andere Seite oder Filter gibt eine leere Überprüfung zurück und verschiebt nichts. counts sind die offenen Notizen des Projekts und für diesen Anrufer, wie viele neu und fällig sind.

Ein auf Bildschirme beschränkter Agent listet nur die Notizen über seine eigenen Bildschirme, Playlists und das Projekt auf: Liste, Überprüfung und Zählungen lassen Notizen über einen Bildschirm außerhalb seines Bereichs aus, und eine projektübergreifende Auflistung lässt ein Projekt aus, in dem der Agent beschränkt ist, wählen Sie also dieses Projekt aus.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listNotesInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
StatusAbfrageoptional
about_idAbfrageoptionalNur Notizen über diesen Bildschirm oder diese Playlist.
author_idAbfrageoptionalNur Notizen, die dieser Agent geschrieben hat.
nachAbfrageoptionalnext_cursor der vorherigen Seite.
LimitAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/notes'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite von Notizen, die zu überprüfenden Notizen und die Zählungen.Notizliste (application/json)
400

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)
POST/api/projects/{project_id}/notes

Notiz im Projekt hinzufügen

Fügt eine Notiz für die Agenten des Projekts hinzu: eine Tatsache, auf die ein anderer Agent reagieren würde, niemals ein Fortschrittsbericht, Chat oder ein Geheimnis. Der Inhalt ist 1 bis 2000 Zeichen reiner Text nach dem Trimmen und kann Zeilen umfassen.

Text, der Zugangsdaten enthält (Tokens, Schlüssel, private Schlüssel, Passwörter in URLs), wird mit note_contains_credential abgelehnt, und Text, der als Anweisung an ein Modell gelesen wird, mit note_rejected; nichts wird gespeichert und die Details wiederholen den Text nie. Bezieht sich auf Namen eines Bildschirms (auch archiviert) oder einer Playlist des Projekts, sonst not_found. ttl_seconds (3600 bis 31536000) erzeugt eine temporäre Notiz, die als abgelaufen gilt; eine Notiz ohne diese erscheint 90 Tage nach Hinzufügung oder letzter Bestätigung zur Überprüfung. Ersetzt Namen einer offenen Notiz, die diese ersetzt: sie wird in derselben Transaktion als ersetzt markiert (note_not_open, wenn sie bereits aufgelöst ist).

Ein Body, dessen normalisierter Text (getrimmt, Leerraum zusammengefasst, Kleinschreibung) und dessen Feld about zu einer offenen Notiz passen, bestätigt diese Notiz und gibt sie mit 200 zurück, statt eine hinzuzufügen; es wird kein note.added-Ereignis angehängt. Eine Organisation hält höchstens 200 offene Notizen über alle ihre Projekte; die 201. ist note_limit_reached, dessen Detail bis zu 5 Notizen nennt, die zuerst aufzulösen sind.

Fügt note.added (und note.resolved bei ersetzter Notiz) ohne Text hinzu. Ein exakter Wiederholungsversuch mit demselben Idempotency-Key liefert für vierundzwanzig Stunden die erste Antwort zurück.

Für einen auf Bildschirme beschränkten Agenten (docs/screen-scope.md) ist ein about, das ein Bildschirm außerhalb seines Bereichs oder ein dem Projekt unbekannter ist, oder ein replaces, das eine Notiz über einen Bildschirm außerhalb seines Bereichs nennt, outside_screen_scope (403), und nichts wird gespeichert.

Authentifizierung
projectBearer
Anfrageinhalt
Notiz schreiben
Operations-ID
addNoteInProject

Parameter

NameSendenErforderlich?Beschreibung
project_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.

Anfrageinhalt-Felder

FeldBeschreibung
Inhalt (erforderlich, Zeichenfolge)Klartext, 1 bis 2000 Zeichen nach Kürzung; Zeilenumbrüche bleiben erhalten. minLength: 1 maxLength: 2000
über (optional, inline)
ttl_seconds (optional, Ganzzahl)Verfällt die Notiz so lange nach dem Hinzufügen. Ohne Angabe wird die Notiz nach 90 Tagen zur Überprüfung angezeigt. Minimum: 3600 Maximum: 31536000
ersetzt (optional, Zeichenkette)Eine offene Notiz, die diese hier ersetzt; sie wird als ersetzt gelöst. Muster: "^(?:(?:stage|qa|development)_)?nte_[A-Za-z0-9_-]{16,24}$"
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/notes'

Antworten

StatusBedeutungTextkörper und Header
201Hinzugefügt.Notiz (application/json)
200Der Text stimmte mit einer offenen Notiz überein, die bestätigt und zurückgegeben wird.Notiz (application/json)
400

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)
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)
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)
409note_not_open, note_limit_reached oder idempotency_mismatch.Problem (application/problem+json)
422note_contains_credential oder note_rejected.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/projects/{project_id}/support/status

Support-Status im Projekt

Verfügbarkeit und Stunden für jedes aktive Projekt. chat_allowed ist für jedes aktive Projekt, einschließlich Standard, wahr. human_available ist wahr, wenn auf Anfrage eine Person dem Chat beitreten kann (Education, Premium und Enterprise); Standard und Plus erhalten Dokumentation und KI-Support. staffed gibt an, ob Mitarbeitende gerade in ihren Zeiten erreichbar sind. Luna antwortet auf jedem Plan sofort.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
supportStatusInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/support/status'

Antworten

StatusBedeutungTextkörper und Header
200Support-Ergebnis.SupportStatus (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/projects/{project_id}/support/conversations

Support-Konversationen im Projekt auflisten

Projektgespräche, neueste zuerst, maximal 100. Unerledigte Mitarbeiterzähler sind pro authentifizierter Person oder Agent.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listSupportConversationsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
vorAbfrageoptionalKonversations-ID vom nächsten Cursor der vorherigen Seite.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/support/conversations'

Antworten

StatusBedeutungTextkörper und Header
200Support-Ergebnis.SupportConversationList (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/projects/{project_id}/support/conversations

Support-Konversation im Projekt erstellen

Auf jedem Plan verfügbar; Luna antwortet zuerst, sofort. Wo eine Person beitreten kann (human_available im Support-Status), pausiert eine entsprechende Anfrage Luna für Mitarbeitende; bei Standard und Plus wird sie ignoriert und Luna antwortet. Vor der Speicherung oder Slack geprüft.

Eine Eröffnungsnachricht unter 8 Zeichen oder 3 Wörtern gibt submission_too_short zurück; eine, die keine Frage oder kein Problem ist, gibt submission_unclear zurück; Spam, linklastiger Text, Prompt-Injektion und unsicherer Text geben submission_rejected zurück. Abgelehnter Text wird nicht gespeichert oder an Luna gesendet, und die Problemdetails wiederholen ihn nie.

Text in Form von Anmeldeinformationen außer ScreenRig-Anmeldeinformationen (Bearer-Tokens, Cloud- und API-Schlüssel, private Schlüssel) wird vor der Speicherung durch [redacted] ersetzt; ScreenRig-Anmeldeinformationen führen zu invalid_request. Ein neues Gespräch beginnt in einem Slack-Thread; Folgebeiträge bleiben darin. Anfragen mit demselben Schlüssel werden 24 Stunden lang wiederholt, auch eine Ablehnung.

Authentifizierung
projectBearer
Anfrageinhalt
SupportWrite
Operations-ID
createSupportConversationInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
Idempotency-KeyÜberschrifterforderlich

Anfrageinhalt-Felder

FeldBeschreibung
Inhalt (erforderlich, Zeichenfolge)minLength: 1 maxLength: 4000
human_requested (optional, boolean)

Eine Person anfordern; das pausiert Luna und wartet auf Mitarbeitende. Zählt nur dort, wo eine Person beitreten kann (human_available: Education, Premium und Enterprise); bei Standard und Plus wird es ignoriert und Luna antwortet. Standard: false

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/support/conversations'

Antworten

StatusBedeutungTextkörper und Header
201Support-Ergebnis.SupportSubmission (application/json)
422Die Nachricht wurde durch Screening abgelehnt: submission_too_short oder submission_unclear (nur die Eröffnungsnachricht) oder submission_rejected. Das Detail wiederholt nie den Text.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/projects/{project_id}/reviews

Bewertungen im Projekt auflisten

Die Überprüfungen des Projekts (docs/reviews.md): Playlist- und Bildschirmänderungen, die unter Propose-Zugriff vorgeschlagen wurden, und für ein Werbenetzwerk die von Käufern eingereichten Creatives (Typ ad_creative).

Neueste zuerst, höchstens limit (Standard 50, höchstens 100) pro Seite; übergeben Sie next_cursor als Cursor mit denselben Filtern zurück. Zustand pending (Standard), decided (alle anderen Zustände) oder all; Art schränkt auf eine Art ein.

Eine Dashboard-Sitzung liest jede Art; ein Bearer liest die Arten, die seine Berechtigungen abdecken (Playlists für playlist_change, Bildschirme für screen_change, Werbung für ad_creative), und eine Art, die er nicht lesen kann, ist eine leere Seite. pending_count zählt die ausstehenden Überprüfungen jeder Art, die der Aufrufer sieht.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
listReviewsInProject

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
StatusAbfrageoptional
kindAbfrageoptional
LimitAbfrageoptional
CursorAbfrageoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/reviews'

Antworten

StatusBedeutungTextkörper und Header
200Eine Seite von Bewertungen.ReviewList (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/projects/{project_id}/card-data/{key}

Projekt Scoped_get Kartendaten

Gibt das Dokument und seine Revision zurück. ETag ist die Revision, für If-Match beim nächsten Schreiben.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
projectScoped_getCardData

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
keyPfaderforderlichKartendaten-Schlüssel. Darf nicht mit feed: beginnen.
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-data/KEY'

Antworten

StatusBedeutungTextkörper und Header
200KartendatendokumentCardDataEntry (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)
PUT/api/projects/{project_id}/card-data/{key}

Projekt Scoped_put Kartendaten

Erstellt oder ersetzt ein Kartendaten-Dokument. Wenn Kartenplatzierungen in den Playlists des Projekts den Schlüssel binden, muss das Dokument nur die dynamischen Eigenschaften jeder gebundenen Karte enthalten und gegen diese validieren; andernfalls wird das Schreiben mit card_data_invalid abgelehnt, wobei die Karte und der Eigenschaftspfad genannt werden, und es ändert sich nichts. Ein Schlüssel ohne gebundene Platzierung akzeptiert jedes JSON-Objekt.

Jede Zeichenkette, die mit media: beginnt, ist eine Medienreferenz, media:<id>, die eine Karte zeichnen soll (ein Foto); bei jedem Schlüssel muss sie ein bereites, genehmigtes Bild in diesem Projekt benennen, höchstens 256 verschiedene Medien pro Dokument, sonst wird das Schreiben mit card_media_invalid abgelehnt, das den Eigenschaftspfad und media_id angibt.

Bildschirme, deren Inhalt den Schlüssel liest, können diese Medien dann von GET /media/{media_id}. abrufen. Bildschirme, die eine Platzierung zeigen, die den Schlüssel liest, erhalten screen.card_data_changed und rufen ihn an Ort und Stelle erneut ab; das Projektprotokoll zeichnet kv.updated mit einer card_data_entry-Ressource auf, die niemals einen Player erreicht.

Limits, Kontingente, Messung, Revisionen und Idempotenz werden vom Anwendungs-K/V-Speicher verwaltet.

Agenten- und Webhook-Schreibvorgänge sind zudem ratenbegrenzt, pro Organisation je nach Plan (Standard und Plus 60 pro Minute, Education und Premium 600, Enterprise 3.000) und auf jedem Plan mit 60 pro Minute je Schlüssel; ein Schreibvorgang über dem Limit wird mit rate_limited und Retry-After abgelehnt und nicht gemessen.

Authentifizierung
projectBearer
Anfrageinhalt
CardDataWrite
Operations-ID
projectScoped_putCardData

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
keyPfaderforderlichKartendaten-Schlüssel. Darf nicht mit feed: beginnen.
If-MatchÜberschriftoptionalOptionale positive Ressourcenrevision. Weglassen, um einen Schlüssel zu erstellen oder zu überschreiben; 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
Dokument (erforderlich, Objekt)

Das Kartendatendokument: ein JSON-Objekt von maximal 1 MiB. Wenn eine Kartenplatzierung den Schlüssel bindet, enthält sie nur die dynamischen Eigenschaften dieser Karte. Ein String, der mit media: beginnt, ist eine Medienreferenz, media:<id>, die ein fertiges, genehmigtes Bild in diesem Projekt benennt.

expires_at (optional, String)Absolute Ablaufzeit; ausgelassene Daten laufen nie ab. Format: "date-time"
ttl_seconds (optional, Ganzzahl)

TTL ab dem ersten festgeschriebenen Schreibzugriff. Schließt sich mit expires_at gegenseitig aus. Ein Wiederholungsversuch behält den ursprünglichen Ablauf. Werden beide weggelassen, entfällt der Ablauf.

Bemessen Sie sie nach dem Zeitplan des Schreibers: Läuft das Dokument einer Karte ab, ohne dass ein Schreibzugriff es erneuert, während ein Bildschirm die Karte zeigt, wird die Karte leer, und die Benachrichtigungsbedingung card_data_stale meldet es dem Projekt, sodass ein angehaltener Job bemerkt wird. minimum: 1 maximum: 31536000

Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-data/KEY'

Antworten

StatusBedeutungTextkörper und Header
200KartendatendokumentCardDataEntry (application/json)
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)
LÖSCHEN/api/projects/{project_id}/card-data/{key}

Projekt Scoped_delete Kartendaten

Löscht ein Kartendaten-Dokument. Eine an den Schlüssel gebundene Karte wird auf dem Bildschirm verborgen, bis erneut ein Dokument geschrieben wird.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
projectScoped_deleteCardData

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
keyPfaderforderlichKartendaten-Schlüssel. Darf nicht mit feed: beginnen.
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]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/card-data/KEY'

Antworten

StatusBedeutungTextkörper und Header
204Gelöschtkein Körper
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/projects/{project_id}/feeds/{family}

Projekt Scoped_get Feed

Liest ein geteiltes Drittanbieter-Feed-Dokument: dasselbe Dokument, das eine eingebaute Kartenplatzierung mit denselben Parametern liest (docs/feeds.md).

Abfrageparameter werden zum Feed-Schlüssel der Karte normalisiert, benannt durch den Header ScreenRig-Feed-Key: weather, airquality und alerts nehmen lat und lon (auf eine 0,25-Grad-Zelle gerundet); earthquakes lat, lon, radius_km (10 bis 20000, standardmäßig 500), min_magnitude (0 bis 9, standardmäßig 2,5) und hours (1 bis 168, standardmäßig 24); cyclones basins (kommagetrennt at, ep, cp, wp; standardmäßig alle) und optional lat, lon und radius_km (die Stürme in der Nähe dieses Ortes); tides station (eine NOAA-Gezeitenvorhersage-Stations-ID wie 9414290) oder lat und lon (die nächste Station im Umkreis von 100 km, sonst invalid_request); launches keine Parameter (die nächsten Starts weltweit); rates base (eine EZB-Referenzwährung, standardmäßig EUR); crypto symbols (CoinGecko-IDs oder Ticker, kommagetrennt, höchstens 20) und currency (standardmäßig usd); headlines url (eine http- oder https-RSS- oder Atom-URL); drugalerts (screenrig.drugalerts/v1) die jüngsten Rückrufberichte eines Landes: country (us, ca oder gb, erforderlich) und category (drug, die Vorgabe, oder food); respiratory (screenrig.respiratory/v1) die wöchentliche Grippe-, COVID-19- und RSV-Aktivität eines Ortes: country (us oder gb, erforderlich) und region (ein US-Bundesstaat, ein Territorium oder DC nach Name oder Postleitzahl, oder England oder eine UKHSA-Region; das Land, wenn leer).

Die Anfrage ruft den Anbieter nie auf. 200 ist das Dokument (Schema, fetchedAt, Attribution und die Felder der Familie, wie der Kartenvertrag sie definiert); sein ETag ist der sha256 der Bytes und If-None-Match antwortet mit 304; Cache-Control max-age läuft bis zum nächsten geplanten Abruf. 202 bedeutet noch kein Dokument: die registrierte Nachfrage wurde gelesen, und der Feed-Worker holt den Schlüssel innerhalb von etwa einer Minute (Retry-After).

Ein API-Lesevorgang hält einen Schlüssel 24 Stunden lang vor. Eine Organisation registriert höchstens 50 neue Schlüssel pro Tag über alle ihre Projekte (danach rate_limited). Eine Familie ohne Quelle auf dieser Bereitstellung antwortet mit not_found.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
projectScoped_getFeed

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
FamiliePfaderforderlichDie Feed-Familie.
latAbfrageoptional
lonAbfrageoptional
radius_kmAbfrageoptional
min_magnitudeAbfrageoptionalErdbeben: die geringste Magnitude.
StundenAbfrageoptionalErdbeben: das Zeitfenster in Stunden.
BeckenAbfrageoptionalZyklone: durch Komma getrennte Werte für at, ep, cp, wp.
stationAbfrageoptionaltides: eine NOAA-Gezeitenvorhersage-Stations-ID, etwa 9414290. Ohne sie wählen lat und lon die nächste Station im Umkreis von 100 km.
BasisAbfrageoptional
SymboleAbfrageoptional
WährungAbfrageoptional
urlAbfrageoptional
countryAbfrageoptionaldrugalerts: us, ca oder gb. respiratory: us oder gb. Beide verlangen es.
categoryAbfrageoptionaldrugalerts: drug (Standard) oder food.
regionAbfrageoptionalrespiratory: ein US-Bundesstaat, ein Territorium oder DC nach Name oder Postleitzahl, oder England oder eine UKHSA-Region; das Land, wenn leer.
If-None-MatchÜberschriftoptional
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/feeds/FAMILY'

Antworten

StatusBedeutungTextkörper und Header
200Feed-DokumentFeedDocument (application/json); Header: ETag, ScreenRig-Feed-Key
202Noch kein Dokument; der Feed-Worker holt den Schlüssel beim nächsten Durchlauf.FeedPending (application/json); Header: Retry-After, ScreenRig-Feed-Key
304Das Dokument entspricht If-None-Match.kein Körper
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/projects/{project_id}/advertising/networks/{seller_project_id}/inventory

Projekt Scoped_list Advertising Joined Inventory

Ausgewähltes Inventar und wiederverwendbare Slots innerhalb der Mitgliedschaft des Anrufers. Zeigt niemals Screenshots, Playlists oder projektweite Daten des Verkäufers an.

Authentifizierung
projectBearer ODER dashboardSession
Anfrageinhalt
keine
Operations-ID
projectScoped_listAdvertisingJoinedInventory

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.
seller_project_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/projects/PROJECT_ID/advertising/networks/SELLER_PROJECT_ID/inventory'

Antworten

StatusBedeutungTextkörper und Header
200Erlaubte Bestände und Slots.AdvertisingJoinedInventory (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/projects/{project_id}/agents/self

Projekt Scoped_get aktueller Agent

Gibt die Agenteninstallation zurück, die mit dem aufrufenden Projektträger verknüpft ist, plus connection_ready. Ein Projekt ist bereit, wenn mindestens ein Mitglied einen Passkey oder ein Passwort hat. Der Identitätsstatus ist diagnostisch und belastet den API-Zähler nicht.

Authentifizierung
projectBearer
Anfrageinhalt
keine
Operations-ID
projectScoped_getCurrentAgent

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
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]' 'https://api.screenrig.ai/api/projects/PROJECT_ID/agents/self'

Antworten

StatusBedeutungTextkörper und Header
200Aktuelle Verbindungsbereitschaft von Agent und Projekt.AgentSelfStatus (application/json); Header: Cache-Control
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/projects/{project_id}/agents/self/disconnect

Projekt Scoped_disconnect aktueller Agent

Widerruft nur die aufrufende Projektmitgliedschaft und deren Projekttoken, wobei die globale Identität, andere Mitgliedschaften, Projekt und Inhalte erhalten bleiben. Eine Wiederholung mit demselben kryptografisch gültigen widerrufenen Token ist ein No-Op-Erfolg. Das Trennen des letzten aktiven Agenten gibt agent_lockout_risk zurück, sofern allow_last_agent nicht explizit gesetzt ist. Belastet nicht den API-Zähler.

Ein Agenten-Zugriffs-JWT, auch Nur Lesen, trennt den Agenten vom Token-Projekt; die Mitgliedschaft endet, die Projektzustimmung verlässt die Agentenberechtigungen und dieses Identität/Projekt-Paar wird für ältere Zugriffstoken getrennt. Andere Projekte im Token funktionieren weiter. Ein erneuter Versuch mit demselben JWT nach der Trennung ist ein No-Op-Erfolg.

Authentifizierung
revocableAgentBearer
Anfrageinhalt
AgentDisconnectRequest
Operations-ID
projectScoped_disconnectCurrentAgent

Parameter

NameSendenErforderlich?Beschreibung
project_idPfaderforderlich
ScreenRig-ProjectÜberschriftoptionalFür eine Veröffentlichung veraltet. Muss mit den JWT-Projektberechtigungen übereinstimmen; fügt Deprecation- und Warning-Header hinzu. Kein Token-Austausch.

Anfrageinhalt-Felder

FeldBeschreibung
allow_last_agent (optional, Boolean)Verliert explizit den letzten aktiven Agenten-Berechtigten. Ein registrierter Dashboard-Passkey bleibt unabhängige Verwaltungsbefugnis. Standard: false
Anfragevorlage und Antworten
Shell · Anfragevorlage
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/projects/PROJECT_ID/agents/self/disconnect'

Antworten

StatusBedeutungTextkörper und Header
204Agent getrennt.kein Körper; Header: Cache-Control
401

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)
409

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)