Référence API

API Lecture et rapports

Manifeste d’exécution, rapports et événements

Référence HTTP. Générée à partir du contrat backend. Parcourez les points de terminaison ci-dessous ou téléchargez OpenAPI.

Ce groupe compte 24 opérations, générées à partir de api/openapi.yaml. Filtrez par chemin, action ou authentification. Chaque point de terminaison liste ses entrées ; développez-le pour voir un modèle de requête et les codes de réponse. Les modèles demandent vos propres valeurs et un corps conforme au schéma.

Remplacez les espaces réservés en majuscules par vos valeurs. Pour une requête JSON, enregistrez un corps correspondant au schéma dans request.json. Les exemples de cookies utilisent un pot à cookies local issu d’une session authentifiée.

Manifeste d’exécution, rapports et événements

POST/screen/browser-provisioning/exchanges

Approvisionnement du navigateur Exchange

Échange uniquement même origine pour le navigateur. Lie atomiquement le jeton à usage unique à exchange_id et définit uniquement le cookie de l’appareil jumelé normal, host-only, HttpOnly, Secure, SameSite=Strict. Android et Qt ne consomment jamais cette autorisation.

Authentification
aucun
Corps de la requête
BrowserProvisioningExchange
ID d’opération
exchangeBrowserProvisioning

Champs du corps de la requête

ChampDescription
provisioning_token (requis, chaîne)modèle : "^[A-Za-z0-9_-]{43}$"
exchange_id (obligatoire, chaîne)modèle : "^xchg_[A-Za-z0-9_-]{43}$"
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/browser-provisioning/exchanges'

Réponses

StatutSensCorps et en-têtes
201Cookie de l’appareil jumelé émis sans cookie d’exécution ni justificatif dans le corps.BrowserProvisioningCompletion (application/json) ; en-têtes : Cache-Control, Referrer-Policy, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
404

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
410

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
500

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
GET/screen/chrome

Obtenir Runtime Chrome

Stage-chrome pour la session runtime courante. Pas partie du manifeste runtime. Auth est le même cookie runtime ou ScreenRig-Session que GET /screen/manifest. Cache-Control est privé, no-store. banner est toujours nul.

Authentification
runtimeCookie OU nativeSessionAuthorization
Corps de la requête
aucun
ID d’opération
getRuntimeChrome
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/chrome'

Réponses

StatutSensCorps et en-têtes
200Chrome d’exécutionRuntimeChrome (application/json); en-têtes : Cache-Control
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
GET/screen/manifest

Obtenir le manifeste d’exécution

La route unique du manifeste d’exécution, pour chaque session. schemaVersion est 3. Manifeste du lecteur résolu ; la projection est à l’épreuve des erreurs, et les pages et primitives invalides sont omises et listées dans les diagnostics.

Les pages d’emplacement publicitaire sont incluses uniquement pour une session jumelée accordée adslot-v1 ; toute autre session, y compris un spectateur d’écran public anonyme, reçoit du contenu maison sans page d’emplacement publicitaire. Les clés racines restent camelCase ; les clés de page d’emplacement publicitaire restent id, type, adslot_id et visibilité optionnelle en snake_case.

Règle de compatibilité 4 — 200 avec pages [] et diagnostics non vides est une projection dégradée (le Player conserve le dernier bon connu) ; 200 avec pages [] et sans diagnostics est une assignation vide voulue par l’auteur (docs/player-compatibility.md §1.4).

Un écran suspendu reçoit pages [] sans diagnostics, le membre suspension et une révision de manifeste qui lui est propre, qu’une liste de lecture lui soit assignée ou non (§6.9). Un écran archivé renvoie le problème screen_archived et ne doit pas rafraîchir le dernier bon connu.

Authentification
runtimeCookie OU nativeSessionAuthorization
Corps de la requête
aucun
ID d’opération
getRuntimeManifest

Paramètres

NomEnvoyerRequis ?Description
stream_transportsrequêteoptionnel

Transports de flux pris en charge, séparés par des virgules (hls,udp-mpegts,rtsp). L’omission projette les flux vers des images de secours. Négociation de rendu uniquement, jamais d’autorisation. Annoncez udp-mpegts uniquement lorsqu’il est activé localement.

Modèle de requête et réponses
shell · modèle de requête
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/manifest'

Réponses

StatutSensCorps et en-têtes
200Manifeste du lecteur résolu.Manifest Runtime (application/json)
304Manifeste inchangépas de corps
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
GET/stream/events

Événements d’exécution en flux

Authentification
runtimeCookie OU nativeSessionAuthorization
Corps de la requête
aucun
ID d’opération
streamRuntimeEvents

Paramètres

NomEnvoyerRequis ?Description
aprèsrequêteoptionnel

Un curseur d’une réponse précédente : ev1_ pour les événements de projet (et les flux d’événements). Le journal du Lecteur (source=log) pagine avec les curseurs lg1_ ou ev1_ selon l’endroit où le serveur le conserve ; traitez-les comme opaques et renvoyez celui qu’une page a retourné. Un curseur d’un autre type est refusé avec invalid_request.

Last-Event-IDen-têteoptionnelCurseur durable utilisé quand after est absent.
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/stream/events'

Réponses

StatutSensCorps et en-têtes
200

SSE durable à portée d’écran. Le curseur de requête a priorité sur Last-Event-ID ; chaque événement porte un id curseur adapté à la reconnexion. Servi par le sidecar de flux de Valkey (stream-valkey/v1) ; le flux ne porte pas de trames stream.cursor, et un curseur avance seulement avec les événements livrés.

Les curseurs invalides, futurs ou pré-rétention reçoivent stream.resync_required à la tête actuelle et ferment. screen.toast et screen.screenshot_requested sont des événements d’audience d’exécution ; scan ne délivre jamais l’un ou l’autre après details.expires_at.

Les octets de l’image de la capture d’écran ne sont jamais sur ce flux. screen.archived et screen.unarchived sont des événements d’audience à l’exécution ; ils n’effacent pas les identifiants. screen.deleted est un événement d’audience à l’exécution livré lorsque l’identité signée réinitialisée supprime l’écran. Aucun événement d’exécution n’autorise la suppression de l’identité locale.

Seule une réinitialisation signée réussie initiée par une action locale confirmée du player permet la rotation locale d’identité. project.suspended et project.resumed sont des indices d’audience en temps réel lorsque les hits prépayés restants tombent à zéro ou deviennent positifs.

L’audience runtime est une liste blanche (docs/player-compatibility.md §7.1) : screen.content_changed, screen.manifest_changed, screen.toast, screen.screenshot_requested, screen.archived, screen.unarchived, screen.deleted, screen.device_credential_revoked, project.suspended, project.resumed, player.reload, qui atteint chaque session runtime, les commandes par écran player.reboot et player.display (docs/player-compatibility.md §6.5), player.play_page (§6.3.1) et player.identify (§6.3.2), jamais livrées après details.expires_at, et screen.card_data_changed (resource {type: card_data, key}, details {revision} ou {deleted: true}), adressé uniquement aux écrans dont le contenu actuel lit ces données de carte ou cette clé de flux.

Tout autre type n’est jamais publié sur le flux. Les lecteurs ignorent les types d’événements inconnus, y compris le type de message par défaut, ainsi que les noms de champs inconnus, et avancent le curseur à partir de chaque id.

Le flux s’ouvre avec sa propre tentative, tirée par connexion entre 3000 et 15000 ms pour que les flux tombés ensemble ne se reconnectent pas ensemble ; un hôte en vidange envoie à chaque flux sa propre tentative entre 1000 et 30000 ms.

Le cadre de problème en bande (événement : problem) n’a pas d’identifiant ; ses données sont {code, detail, action?}, où action est présente quand le registre en définit une, et le flux se ferme alors (payment_required définit retry : 60000). Le cadre de contrôle fleet player.reload n’a pas d’identifiant et ne déplace jamais le curseur. Aucun cadre ne transporte plus de 64 KiB de données.

chaîne (text/event-stream); en-têtes : X-Accel-Buffering
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/reports

Créer un rapport d’exécution

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
inline
ID d’opération
createRuntimeReport
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/reports'

Réponses

StatutSensCorps et en-têtes
202

Accepté après persistance durable. Un lot de télémétrie est accepté ou refusé en bloc. Il renvoie 202 seulement après que ses observations brutes sont durables et que son fil d’eau a avancé ; il renvoie stream_id, sequence, accepted (nombre de rapports) et duplicate.

Un lot qui change l’état santé ou d’observation le plus récent ou le créneau d’échec de page, ou ajoute des événements de projet, engage son filigrane avec cet état dans une écriture écran, et ajoute ses événements dans la même transaction.

Un lot qui ne change aucun d’eux, comme un lot stable de lectures et rapports de conditions, déplace seulement son filigrane, tenu dans Valkey pendant 25 heures ; tandis que Valkey est indisponible ou en mémoire insuffisante, l’écriture écran le tient à la place.

Un lot refusé (relecture conflictuelle, capacité de flux pleine, autorité retirée) ne stocke rien, sauf un nouveau flux qui perd la dernière place du flux de l’écran au profit d’un nouveau flux concurrent, qui est refusé après que ses observations brutes sont stockées.

Un lot non accusé de réception à cause d’une erreur serveur ou d’une connexion perdue peut avoir stocké certaines de ses observations brutes ; rejouer les mêmes octets stocke chaque observation manquante une fois, jamais deux fois, puis accuse réception. Un relecture d’un lot accusé retourne 202 avec duplicate true et ne change rien.

Un filigrane détenu dans Valkey peut être perdu ou retardé dans un basculement, jamais avancer, donc une séquence dépassant le filigrane du flux est acceptée comme la suivante du flux sans refus de trou, et une relecture dont le filigrane a été perdu est acceptée de nouveau avec duplicate false ; ses lectures sont toujours stockées une fois et ses enregistrements de journal Player s’effondrent sur leurs identités.

Les rapports individuels conservent leur réponse existante.

Un rapport de condition d’exécution (tout autre code de rapport, tel que player.page_skipped) est enregistré dans le journal du lecteur (GET /api/events?source=log), pas dans les événements du projet, et est reconnu lorsque la file d’attente du journal du lecteur l’accepte ; il n’est pas dans le flux d’événements et n’est pas livré aux webhooks. manifest.activated est validé avant cette réponse et est idempotent pour la révision active actuelle. playback.media_started, legacy playback.video_started, et playback.application_started ajoutent durablement une observation authentifiée d’écran (GET /api/playback/plays) avant cette réponse ; les identités des éléments, pages et manifestes signalés ne nécessitent pas l’appartenance au contenu actuel et n’autorisent pas l’accès au contenu.

Les comptes quotidiens, les métadonnées optionnelles et la ressource last_used_at appartenant au projet sont mis à jour par lots récupérables et peuvent être en retard sur l’observation brute.

Les réponses ordinaires de démarrage de lecture omettent les en-têtes optionnels de solde de crédits. playback.page_failed remplace la dernière plage d’échec de page de l’écran et ajoute un événement durable réservé au projet dans la même transaction sans changer la révision de l’écran ou du manifeste. manifest.upgrade stocke la dernière plage de mise à niveau du manifeste de l’écran, gagnante par dernier, derrière ses clôtures de révision et ajoute un événement durable réservé au projet dans la même transaction uniquement lorsque l’état dérivé change ; un rapport périmé, supplanté ou pré-activation post-activation est accepté sans changement, et aucun rapport ne promeut jamais une attribution. application.event ajoute un événement durable de projet avant cette réponse.

pas de corps; en-têtes : RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
PUT/screen/screenshot

Mettre la capture d’écran d’exécution

Téléverse le WebP fixe en attente actuel pour l’écran de session. Le chemin ne nomme pas screen_id ; la session d’exécution jumelée le lie. L’en-tête ScreenRig-Capture-Id doit être le WebP fixe en attente actuel capture_id. Content-Type est exactement image/webp. Le corps est un WebP brut, non vide, au maximum 2 097 152 octets.

Le serveur valide la magie RIFF/WEBP, décode une image fixe, et stocke les octets téléversés inchangés. WebP animé est invalid_request. capture_id manquant, inconnu, expiré ou non actuel est resource_conflict. Les sessions non appariées sont interdites. Le crédit prépayé restant n’est pas un obstacle et ces octets ne sont pas comptés dans used_bytes.

Un emplacement par écran est remplacé. screen.screenshot_ready détaille nom capture_id, octets, largeur, hauteur et sha256 ; ils n’incluent jamais les pixels ni une clé d’objet.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
string
ID d’opération
putRuntimeScreenshot

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Capture-Iden-têteobligatoire
ScreenRig-Capture-Failureen-têteoptionnel

Signaler une capture indisponible avec un corps vide. Les Players envoient unsupported_surface ou capture_failed. Toute autre valeur non vide est enregistrée comme capture_failed, jamais refusée (docs/player-compatibility.md §1.1). Seule la capture en attente actuelle peut échouer.

Aucun pixel ni image partielle n’est stocké ; screen.screenshot_failed contient cette raison et le statut devient indisponible.

Modèle de requête et réponses
shell · modèle de requête
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'ScreenRig-Capture-Id: VALUE' --header 'Content-Type: image/webp' --data-binary '@request.bin' 'https://play.screenrig.ai/screen/screenshot'

Réponses

StatutSensCorps et en-têtes
204Image fixe WebP stockée comme emplacement actuel.pas de corps; en-têtes : Cache-Control
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/adslots/resolve

Résoudre les emplacements publicitaires

Résout jusqu’à 16 occurrences de page vérifiées par le serveur. Un candidat récent avec un remplissage possible est atomiquement tarifé, vérifié par budget et réservé contre la barrière tarifaire de la campagne. Un candidat récent sans remplissage possible retourne vide sans créer de décision ni de réservation.

Aucune campagne éligible ou abordable n’est un résultat vide réussi sans contenu ni débit ; ce n’est jamais un défi de paiement. Les résultats vides peuvent inclure un indice de non-remplissage à l’horloge serveur durant au plus 60 secondes et se terminant à une limite d’éligibilité connue plus tôt.

Les indices s’appliquent au même écran, manifeste, page, emplacement et contexte d’éligibilité ; ils n’autorisent jamais la lecture. Un renouvellement de bail réutilise la même réservation et n’avance pas la rotation, et est refusé tant que la campagne exige une réacceptation du prix.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
RuntimeAdslotResolveRequest
ID d’opération
resolveAdslots

Champs du corps de la requête

ChampDescription
manifest_revision (obligatoire, chaîne)
candidats (obligatoire, tableau)
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/adslots/resolve'

Réponses

StatutSensCorps et en-têtes
200Par résultat candidat rempli ou vide dans l’ordre de la requête.RuntimeAdslotResolveResponse (application/json); en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400invalid_request - taille du lot, clés en double ou fenêtre de prévision invalide.Problème Runtime (application/problem+json)
409resource_conflict - un candidat a été réutilisé avec un hachage de requête différent.Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/adslots/events

Signaler les événements d’emplacement publicitaire

Preuve de lecture authentifiée. Les événements sont dédupliqués par écran et ID d’événement. Une complétion valide consomme sa réservation détenue une fois au prix et frais réservés, crédite le vendeur brut et débite les frais de service en une transaction. Un événement terminal non lecture confirmé libère la retenue une fois.

La complétion reçue après la libération n’est pas facturable et ne débite jamais de crédits frais. La complétion avant le début est mise en attente pour réconciliation.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
RuntimeAdslotEventBatch
ID d’opération
reportAdslotEvents

Champs du corps de la requête

ChampDescription
événements (obligatoire, tableau)
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/adslots/events'

Réponses

StatutSensCorps et en-têtes
200Par résultats d’événements.RuntimeAdslotEventResponse (application/json); en-têtes : Cache-Control, RateLimit-Policy, RateLimit
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
PUT/screen/observation

Mettre l’observation d’exécution

Signale la surface de lecture que le lecteur jumelé a utilisée pour le dernier resolveLayout. Le chemin ne nomme pas screen_id ; la session d’exécution jumelée le lie. Le corps est un JSON ScreenObservation : observed_at plus une à douze surfaces ; un Player pilotant un mur vidéo signale une surface par sortie, id = le nom de la sortie.

Les nombres sont des pixels indépendants de l’appareil et le ratio de pixels de l’appareil à côté de cette surface de mise en page, pas la taille de l’auteur du canevas ni la taille encodée de la capture d’écran. Ils sont uniquement vérifiés dans la plage et ne sont jamais une preuve matérielle ou d’autorisation. La dernière écriture l’emporte et remplace tout le tableau des surfaces.

Un tuple de surfaces identique (id, largeur, hauteur, pixel_ratio, présentation, rotation) n’émet pas screen.surface_changed ; un observed_at ultérieur sur le même tuple est ignoré. Les sessions publiques non jumelées et anonymes sont interdites. Les cookies natifs sont rejetés ; le navigateur ne doit pas adopter les profils d’en-tête. Le crédit prépayé restant n’est pas un obstacle.

L’observation est absente de GET /api/screens jusqu’au premier rapport accepté. ScreenPatch ne peut pas l’écrire. Un écran archivé répond 409 screen_archived. Au maximum 12 rapports par minute par session jumelée (runtime-observation) : un 429 signifie de réessayer au plus tôt après Retry-After.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
Écriture RuntimeObservation
ID d’opération
putRuntimeObservation

Champs du corps de la requête

ChampDescription
observed_at (obligatoire, chaîne)format : « date-time »
surfaces (requis, tableau)De une à douze surfaces ; un Player pilotant un mur vidéo en rapporte une par sortie, id = nom de la sortie.
Modèle de requête et réponses
shell · modèle de requête
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/observation'

Réponses

StatutSensCorps et en-têtes
204Observation stockée comme le tableau actuel des surfaces.pas de corps; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
PUT/screen/health

Mettre la santé d’exécution

Signale l’état de santé de l’appareil pour l’écran de la session jumelée. Envoyez-en un au démarrage de la session, puis toutes les quinze minutes, et un immédiatement lorsque la connexion ou l’alimentation de l’afficheur change.

Chaque membre est optionnel et le corps est lu avec tolérance (docs/player-compatibility.md §1.1) : les membres inconnus sont ignorés, une valeur hors plage est supprimée, et un display.power ou network.kind inconnu est lu comme inconnu ; seul un membre de type JSON incorrect renvoie 400 (un nombre hors plage float64 est hors plage : ce membre est supprimé).

La valeur stockée est le ScreenHealth assaini plus server reported_at, remplaçant le rapport précédent. Au plus un rapport par écran par minute (runtime-health) : un 429 signifie abandonner ce rapport et envoyer le suivant selon le calendrier, jamais réessayer avant Retry-After (au moins 1 seconde).

Une erreur 400 ou serveur ne consomme pas la minute ; toutes les sessions d’un écran la partagent. Nécessite une session jumelée détenant health.write (une session jumelée créée avant l’existence de health.write est admise par runtime.report) ; les sessions non jumelées et anonymes sont interdites et un écran archivé répond 409 screen_archived.

Un rapport d’une session plus ancienne que la génération d’accès au contenu actuelle de l’écran est refusé 401. L’archivage et la récupération de l’écran effacent Screen.health. Un backend sans cette route répond 404 : continuer la lecture et arrêter de rapporter la santé pour cette session. Les transitions ajoutent uniquement screen.health_changed au projet (jamais sur GET /screen/events).

La santé n’est jamais une autorisation.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
Écriture RuntimeHealth
ID d’opération
putRuntimeHealth

Champs du corps de la requête

ChampDescription
uptime_s (optionnel, entier)Secondes depuis le démarrage de l’appareil (OS). minimum : 0
app_uptime_s (optionnel, entier)Secondes depuis le démarrage du processus Player. minimum : 0
mémoire (optionnel, objet)
cpu (optionnel, objet)
temperature_c (optionnel, nombre)Température SoC ou panneau en degrés Celsius. minimum : -50 maximum : 150
afficheur (optionnel, objet)
réseau (optionnel, objet)
battery (facultatif, objet)La batterie de l’appareil. Ne l’envoyez que lorsque l’appareil en a une (Android BatteryManager avec EXTRA_PRESENT). Un changement de source (branché ou débranché) est signalé immédiatement, comme un changement d’afficheur.
crashes_24h (optionnel, entier)Plantages Player sur les dernières 24 heures glissantes. minimum : 0 maximum : 1 000 000
renderer_restarts_24h (optionnel, entier)Redémarrages du moteur de rendu ou de la vue web dans les dernières 24 heures glissantes. minimum : 0 maximum : 1000000
Modèle de requête et réponses
shell · modèle de requête
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/health'

Réponses

StatutSensCorps et en-têtes
204Rapport de santé enregistré.pas de corps; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
PUT/screen/storage

Mettre le stockage d’exécution

Signale le stockage natif du lecteur, le forfait de stockage du lecteur et la comptabilisation des octets transférés. Le chemin ne nomme pas screen_id ; la session d’exécution jumelée le lie. Les sessions non jumelées et anonymes sont interdites. Les cookies natifs sont rejetés ; le navigateur ne doit pas adopter les profils d’en-tête. Les membres inconnus sont ignorés (docs/player-compatibility.md §1.1).

La valeur stockée est le ScreenStorage assaini du projet plus server received_at, pas le corps brut. manifest_revision doit être la révision désirée ou active de l’écran, sinon la réponse est 409 resource_conflict et rien n’est stocké. Les identifiants de page exclus doivent exister dans cette révision.

Une classe d’ajustement identique n’émet pas screen.storage_shortfall ni screen.storage_shortfall_cleared. Ces événements sont uniquement liés au projet et ne sont pas transmis sur GET /screen/events. Le stockage n’est jamais une autorisation ou une admission. ScreenPatch ne peut pas l’écrire. Un rapport de plus de 24 heures par received_at est périmé pour les consommateurs.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
Écriture stockage Runtime
ID d’opération
putRuntimeStorage

Champs du corps de la requête

ChampDescription
observed_at (obligatoire, chaîne)format : « date-time »
volume (requis, ScreenStorageVolume)
cache (obligatoire, ScreenStorageCache)
durabilité (requis, chaîne)Autorisés : « durable », « purgeable »
forfait (obligatoire, ScreenStoragePlan)
transfer_24h (obligatoire, ScreenStorageTransfer)
Modèle de requête et réponses
shell · modèle de requête
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/storage'

Réponses

StatutSensCorps et en-têtes
204Rapport de stockage enregistré.pas de corps; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409resource_conflict - manifest_revision n’est pas la révision souhaitée ou active de l’écran. Le rapport n’est pas enregistré.Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
PUT/screen/status

Mettre le statut d’exécution

Signale la puce de statut que le Player jumelé affiche à l’écran : la condition screenrig.overlay/v1 qui l’emporte selon son rang, ou null lorsqu’aucune puce n’est affichée. Le chemin ne nomme pas screen_id ; la session d’exécution jumelée le lie.

Le corps est un JSON RuntimeStatusWrite {observed_at, chip} ; les membres inconnus sont ignorés (docs/player-compatibility.md §1.1). chip doit être l’id d’une condition du catalogue du backend (packages/overlay/overlay.json, le fichier que les Players intègrent) ; l’avis de mise à niveau et les messages de démarrage ne sont pas des puces.

Un champ chip manquant, une valeur d’un autre type ou un id que le catalogue ne répertorie pas donne 400 invalid_request avec errors[0].field chip, et rien n’est stocké. La valeur stockée est ScreenStatus du projet : level et icon sont ceux du catalogue pour chip, jamais ceux du Player, et received_at est l’heure de réception du serveur. La dernière écriture l’emporte et remplace tout le statut.

Un rapport qui ne change ni chip, ni level, ni icon est sans effet : il conserve les observed_at et received_at stockés et n’ajoute rien. Un changement ajoute screen.status_changed, propre au projet, avec details {chip, level, icon}, jamais livré sur GET /screen/events. Les sessions publiques non jumelées et anonymes sont interdites.

Les cookies natifs sont rejetés ; le navigateur ne doit pas adopter les profils d’en-tête. Le crédit prépayé restant n’est pas un obstacle. Le statut est absent de GET /api/screens jusqu’au premier rapport accepté et il est effacé lors de la réinitialisation d’identité, du déjumelage et de l’archivage. ScreenPatch ne peut pas l’écrire. Un écran archivé répond 409 screen_archived.

Au maximum 12 rapports par minute par session jumelée (runtime-status) : un 429 signifie de réessayer au plus tôt après Retry-After. Un backend sans cette route répond 404 : continuer la lecture et arrêter de rapporter le statut pour cette session. Le statut n’est jamais une autorisation ni une admission. Les règles du Player se trouvent dans docs/player-compatibility.md §9.5.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
Écriture RuntimeStatus
ID d’opération
putRuntimeStatus

Champs du corps de la requête

ChampDescription
observed_at (obligatoire, chaîne)Horloge du Player au dernier changement de la puce, ou au démarrage de la session. format : « date-time »
chip (obligatoire, en ligne)

L’id de la condition screenrig.overlay/v1 que le Player affiche (conditions[].id dans packages/overlay/overlay.json), ou null lorsqu’il n’affiche aucune puce, comme sur une surface supprimée (fatal, starting, pairing). Obligatoire. Un id que le catalogue du backend ne répertorie pas est refusé.

Modèle de requête et réponses
shell · modèle de requête
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/status'

Réponses

StatutSensCorps et en-têtes
204Statut stocké ou inchangé.pas de corps; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
PUT/screen/screen-label

Mettre l’étiquette d’écran d’exécution

Renomme l’écran lié à la session d’exécution jumelée. C’est le même renommage que PATCH /api/screens/{id} name : le serveur retire les espaces au début et à la fin de screen_label et exige de 1 à 120 caractères sans caractères de contrôle, sinon invalid_request.

Le renommage enregistre les mêmes événements d’écran, et sur un écran assigné il change le screen_label du manifeste et émet screen.manifest_changed au Player. Le chemin et le corps ne nomment pas screen_id ; la session d’exécution jumelée le lie. Pas de If-Match ni Idempotency-Key ; la dernière écriture l’emporte. L’authentification est le cookie d’exécution ou ScreenRig-Session, comme GET /screen/chrome.

Les sessions anonymes et non appariées ne sont pas autorisées. Un écran archivé est screen_archived. Le crédit prépayé restant n’est pas un obstacle. Un Player qui reçoit un 404 traite la route comme non prise en charge et conserve le nom localement (docs/player-compatibility.md §2.5).

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
Écriture étiquette écran Runtime
ID d’opération
putRuntimeScreenLabel

Champs du corps de la requête

ChampDescription
screen_label (obligatoire, chaîne)minLength : 1
Modèle de requête et réponses
shell · modèle de requête
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/screen-label'

Réponses

StatutSensCorps et en-têtes
200Écran renommé. screen_label est le nom stocké.Étiquette écran Runtime (application/json) ; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/commands/{command_id}/result

Publier le résultat d’une commande d’exécution

Un Player jumelé rapporte comment une commande qui lui a été envoyée s’est terminée (docs/player-compatibility.md §6.5.1) : done ou failed, avec un jeton de cause statique et un court detail optionnel. La commande passe à done ou failed dans Screen.commands avec done_at, cause et detail, et le screen.command_result réservé au projet est ajouté.

Seule une commande sent de l’écran de la session accepte un résultat : un ID que l’écran ne liste pas, ou une commande non sent, donne 404 not_found et le Player abandonne le rapport. Une répétition exacte du résultat enregistré donne 202 et ne change rien ; un résultat différent pour une commande terminée donne 409 resource_conflict. Un résultat failed exige cause.

Le chemin et le corps ne nomment pas l’écran ; la session d’exécution jumelée le lie. L’authentification est le cookie d’exécution ou ScreenRig-Session. Les sessions anonymes et non jumelées sont unauthorized ; un écran archivé donne screen_archived. Le crédit prépayé restant n’est pas une condition.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
RuntimeCommandResultWrite
ID d’opération
postRuntimeCommandResult

Paramètres

NomEnvoyerRequis ?Description
command_idcheminobligatoire

Champs du corps de la requête

ChampDescription
state (obligatoire, chaîne)Autorisés : « done », « failed »
cause (optionnelle, chaîne)

Un jeton statique : obligatoire quand failed (clear_failed, restart_failed, update_check_failed, download_failed, install_failed, no_update_channel), facultatif quand done (cleared, restarted, up_to_date, updated). pattern: "^[a-z0-9_]{1,40}$"

detail (optionnel, chaîne)Une courte phrase sans caractères de contrôle ; jamais une URL avec identifiants, un jeton ni un chemin privé. maxLength: 200
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/commands/COMMAND_ID/result'

Réponses

StatutSensCorps et en-têtes
202Stocké, ou répétition exacte du résultat stocké.pas de corps; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
404

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/live/{live_id}/join

Rejoindre la session en direct

Un Player qui a reçu player.live_publish rejoint la session (docs/player-compatibility.md §6.10.2) : il obtient des ice_servers TURN à durée de vie courte, le bail, les limites vidéo qu’il peut diffuser et la période de signal de présence. Le live_id doit être la session en cours de l’écran, sinon 410 live_session_ended (arrêter de diffuser, continuer la lecture).

L’authentification est le cookie d’exécution appairé ou ScreenRig-Session.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
RuntimeLiveJoinRequest
ID d’opération
joinRuntimeLive

Paramètres

NomEnvoyerRequis ?Description
live_idcheminobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/live/LIVE_ID/join'

Réponses

StatutSensCorps et en-têtes
200La session vers laquelle le Player diffuse.RuntimeLiveJoin (application/json); en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
410

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/live/{live_id}/offer

Offre de la session en direct

The Player sends its gathered sendonly offer: exactly one video m-section, ICE gathering complete or two seconds old, no separate candidates ever. The backend opens a fresh media relay session for it, replacing any earlier publisher of the session, and returns the relay's answer, which the Player applies with setRemoteDescription.

Aucune section m vidéo, ou deux, donne invalid_request. Un échec du relais donne dependency_unavailable. 410 live_session_ended lorsque le live_id n’est pas la session en cours de l’écran.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
RuntimeLiveOffer
ID d’opération
offerRuntimeLive

Paramètres

NomEnvoyerRequis ?Description
live_idcheminobligatoire

Champs du corps de la requête

ChampDescription
sdp (obligatoire, chaîne)Une seule section m vidéo sendonly ; collecte ICE terminée ou datant de deux secondes.
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/live/LIVE_ID/offer'

Réponses

StatutSensCorps et en-têtes
200La réponse du relais.RuntimeLiveOffer (application/json); en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
410

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/live/{live_id}/heartbeat

Signal de présence de la session en direct

The Player reports its connection state and what its encoder sends every 20 seconds. The answer carries the lease; a lapsed lease or max_until ends the session here with 410 live_session_ended, and the Player stops publishing. The report is the Player's own word and feeds publisher.connected on the project API.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
RuntimeLiveHeartbeat
ID d’opération
heartbeatRuntimeLive

Paramètres

NomEnvoyerRequis ?Description
live_idcheminobligatoire

Champs du corps de la requête

ChampDescription
connection (obligatoire, chaîne)Autorisés : « new », « connecting », « connected », « disconnected », « failed », « closed »
video (facultatif, object)
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/live/LIVE_ID/heartbeat'

Réponses

StatutSensCorps et en-têtes
200La session est active ; lease_until et max_until en sont les limites.RuntimeLiveHeartbeatAnswer (application/json); en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
410

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/live/{live_id}/stopped

Session en direct arrêtée

The Player reports it stopped publishing. The reason is an open enum (stopped, lease_ended, superseded, consent_denied, consent_timeout, projection_stopped, capture_failed, encoder_unavailable, connection_failed, relay_refused); a reason this server does not know reads player_stopped. 204 always, also for a live_id that is not the screen's current session.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
RuntimeLiveStopped
ID d’opération
stoppedRuntimeLive

Paramètres

NomEnvoyerRequis ?Description
live_idcheminobligatoire

Champs du corps de la requête

ChampDescription
raison (obligatoire, chaîne)

stopped, lease_ended, superseded, consent_denied, consent_timeout, projection_stopped, capture_failed, encoder_unavailable, connection_failed or relay_refused. An open enum; an unknown reason reads player_stopped.

Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/live/LIVE_ID/stopped'

Réponses

StatutSensCorps et en-têtes
204Enregistré.pas de corps; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
410

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
GET/screen/playlists

Obtenir les listes de lecture d’écran d’exécution

Liste les listes de lecture que le menu des paramètres sur l’appareil du Player jumelé offre pour l’écran : les listes de lecture en direct du projet de l’écran qui ont une version approuvée, par ordre alphabétique sans tenir compte de la casse, puis par identifiant. Au maximum 500 sont retournées ; il y en a plus si le projet contient d’autres listes de lecture.

La session d’exécution jumelée lie le projet ; le chemin n’en nomme aucun. L’authentification est le cookie d’exécution ou ScreenRig-Session, comme GET /screen/chrome. Les sessions anonymes et non jumelées ne sont pas autorisées. Un écran archivé est screen_archived. Cache-Control est private, no-store.

Un Lecteur qui reçoit un 404 traite la route comme non prise en charge et la rapporte comme tout autre échec de chargement de liste (docs/player-compatibility.md §2.6).

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
aucun
ID d’opération
getRuntimeScreenPlaylists
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/playlists'

Réponses

StatutSensCorps et en-têtes
200Les listes de lecture assignables du projet.Listes de lecture écran Runtime (application/json) ; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
PUT/screen/playlist

Mettre la liste de lecture d’écran d’exécution

Assigne une liste de lecture à l’écran lié à la session runtime jumelée. C’est la même assignation que PATCH /api/screens/{id} playlist_id, faite par la personne à l’appareil : aucune revue n’est ouverte.

La liste de lecture doit appartenir au projet de l’écran et avoir une version approuvée (sinon playlist_not_approved) ; une liste de lecture qui n’existe pas dans le projet est invalid_request. L’affectation enregistre les mêmes événements d’écran et émet screen.manifest_changed au Lecteur.

Il définit la liste de lecture assignée à l'écran ; une prise de contrôle active ou une entrée de programmation de liste de lecture correspondante décide encore de ce qui est lu. Le chemin et le corps ne nomment pas screen_id ; la session d'exécution jumelée le lie. Pas de If-Match ni Idempotency-Key ; la dernière écriture l'emporte. L'auth est le cookie d'exécution ou ScreenRig-Session, comme GET /screen/chrome.

Les sessions anonymes et non appariées ne sont pas autorisées. Un écran archivé est screen_archived. Un Player qui reçoit un 404 traite la route comme non prise en charge et le signale comme toute autre erreur de changement de liste de lecture (docs/player-compatibility.md §2.6).

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
Écriture liste de lecture écran Runtime
ID d’opération
putRuntimeScreenPlaylist

Champs du corps de la requête

ChampDescription
playlist_id (obligatoire, chaîne)minLength : 1
Modèle de requête et réponses
shell · modèle de requête
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/playlist'

Réponses

StatutSensCorps et en-têtes
200Liste de lecture assignée. playlist_id est la liste de lecture assignée à l’écran.Liste de lecture écran Runtime (application/json) ; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
400

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/unpair

Dissocier Runtime

Dissociation uniquement par cookie. Archive un écran jumelé par cookie qui n’a pas d’enrôlement de clé publique de lecteur, avec archive_reason device_unpair. Les identifiants de l’appareil restent liés : un navigateur qui les détient encore crée une session archivée (verre sombre), et la désarchivation la reprend sans nouveau jumelage (docs/player-compatibility.md §5.1).

Un écran déjà archivé ou déjà disparu est un succès. Les écrans inscrits par identité renvoient screen_archive_required ; ces lecteurs ne se réinitialisent que via POST /screen/native/identity/reset.. Le chemin et le corps ne nomment pas screen_id ; la session d’exécution jumelée le lie. Pas de If-Match ni de Idempotency-Key. Le navigateur 204 expire les cookies d’exécution, d’appareil et d’hôte de jumelage.

Les appels natifs liés à l’identité ne renvoient jamais 204. Les sessions anonymes ou non jumelées sont interdites. Le crédit prépayé restant n’est pas un obstacle.

Authentification
pairedRuntimeCookie OU nativeSessionAuthorization
Corps de la requête
aucun
ID d’opération
unpairRuntime
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/unpair'

Réponses

StatutSensCorps et en-têtes
204Écran jumelé par cookie archivé avec ses identifiants conservés. Les cookies de jumelage du navigateur ont expiré.pas de corps; en-têtes : Cache-Control, RateLimit-Policy, RateLimit
401

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
403

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
409

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
429

Problème stable rate_limited sur un runtime ou une route de contenu face au lecteur, dans la forme du document runtime (RuntimeProblem). Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles.

Problème Runtime (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/manifests/{manifest_revision}/releases/{release_id}/launch

Lancer la version de l’application

Émet le ticket à usage unique pour une version d’application du manifeste actuel de l’écran. launch_url est la page d’index de l’hôte de la version avec le ticket d’abord, puis les params de l’application (les params de la primitive, remplis avec les faits de cet écran, encodés en pourcentage, au plus 4096 caractères au total), de sorte que l’application les lit depuis location.search.

Seuls le Player Web et les Players qui l’exécutent appellent cette route ; les Players Qt, Android, Apple et Windows chargent l’application depuis leur paquet local et ne reçoivent aucun param. L’hôte de la version les transmet à la page et ajoute son propre marqueur de politique.

Un écran auquel il manque une valeur que lit un param, ou dont les valeurs remplissent plus que la limite, n’a pas cette application dans son manifeste (diagnostic screen_fact_missing ou screen_fact_invalid), et un lancement pour sa version est refusé.

Les params ne sont pas liés au ticket : une application les traite comme des indications non fiables et lit l’identité de l’écran depuis context.screen_id.

Authentification
runtimeCookie OU nativeSessionAuthorization
Corps de la requête
aucun
ID d’opération
launchApplicationRelease

Paramètres

NomEnvoyerRequis ?Description
manifest_revisioncheminobligatoire
release_idcheminobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/manifests/MANIFEST_REVISION/releases/RELEASE_ID/launch'

Réponses

StatutSensCorps et en-têtes
201Billet de lancement à usage unique de 30 secondes pour hôte de publication exactReleaseLaunch (application/json) ; en-têtes : Referrer-Policy, RateLimit-Policy, RateLimit
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
POST/screen/manifests/{manifest_revision}/selectors/resolve

Résoudre tous les sélecteurs de médias dynamiques pour une boucle de liste de lecture

Utilise la liste de lecture assignée à l’écran authentifié et sa révision de manifeste. Retourne un instantané fixe dans l’ordre des fichiers ; les lecteurs conservent l’état du curseur et du mode aléatoire entre les boucles. Les téléversements et les modifications de balises ne réécrivent jamais ce manifeste. Les correspondances vides sont valides.

Les médias sélectionnés sont autorisés par l’octroi d’exécution de l’écran indépendamment de la définition immuable du manifeste.

Authentification
runtimeCookie OU nativeSessionAuthorization
Corps de la requête
aucun
ID d’opération
resolveRuntimeSelectors

Paramètres

NomEnvoyerRequis ?Description
manifest_revisioncheminobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/screen/manifests/MANIFEST_REVISION/selectors/resolve'

Réponses

StatutSensCorps et en-têtes
200Instantané de boucle résolu, incluant les métadonnées de l’élément et les échéances de sécurité media_end.Instantané sélecteur Runtime (application/json)
401Session d’exécution invalide ou expiréeProblème Runtime (application/problem+json)
403Capacité d’exécution refuséeProblème Runtime (application/problem+json)
503Projection du manifeste en attente ou instantané du sélecteur dégradé ; conserver la boucle actuelle et réessayerProblème Runtime (application/problem+json)
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)
GET/screen/card-data/{key}

Obtenir les données de la carte d’exécution

Retourne un document de données de carte ou de flux : la clé de données de carte ou de flux d’un primitif de carte dans le manifeste actuel de l’écran, ou la clé de la condition visibility.data d’une page. Une clé est lisible uniquement tant qu’une attribution désirée, active ou en grâce de transition de l’écran de la session la liste ; connaître une clé n’est jamais suffisant.

Les clés de flux commencent par feed: et lisent l’espace de noms du flux système (screenrig.weather/v1 et les autres schémas de flux), tout comme les clés de conditions météo qui commencent par feed.conditions.v1: (la condition {screen.weather} d’une page, renseignée dans le manifeste de chaque écran) ; toutes les autres clés lisent les données de la carte du projet de l’écran. Le corps est le document lui-même.

ETag est le sha256 de ses octets et If-None-Match répond 304; conservez le dernier bon document pour la lecture hors ligne et récupérez-le à nouveau sur screen.card_data_changed pour la clé. 404 signifie qu’aucun document n’est encore stocké; gardez la carte cachée.

Authentification
runtimeCookie OU nativeSessionAuthorization
Corps de la requête
aucun
ID d’opération
getRuntimeCardData

Paramètres

NomEnvoyerRequis ?Description
clécheminobligatoire
If-None-Matchen-têteoptionnel
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/card-data/KEY'

Réponses

StatutSensCorps et en-têtes
200Le documentobjet (application/json); en-têtes : ETag
304Non modifiépas de corps
par défaut

Réponse stable RFC 9457 à un problème sur un runtime, contenu ou route de sonde face au lecteur, dans la forme du document runtime (RuntimeProblem). Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique.

Problème Runtime (application/problem+json)