OpenAPI YAMLOpenAPI JSONproblèmes YAMLVue d’ensemble de l’API
Ce groupe compte 12 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.
Jumelage et sessions du lecteur
Démarrer session jumelage
Crée une session de jumelage globale de flotte expirante et définit le cookie de jumelage temporaire HttpOnly Secure SameSite=Strict. Une origine non fiable ou une requête navigateur intersite est rejetée avec forbidden avant la création de la limite de débit ou de l’état de jumelage.
Modèle de requête et réponses
curl --request POST 'https://play.screenrig.ai/screen/pairing-sessions'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Code de jumelage exact de six caractères et expiration. | PairingSession (application/json) ; en-têtes : Cache-Control, RateLimit-Policy, RateLimit |
| 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) |
| 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) |
Événements de jumelage en flux
Modèle de requête et réponses
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/stream/pairing-events'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | SSE de jumelage temporaire authentifié. Les données terminales pairing.claimed sont PairingClaimedEvent et contiennent uniquement un nonce de complétion non secret. | chaîne (text/event-stream); en-têtes : Cache-Control, X-Accel-Buffering |
| 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) |
| 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) |
Compléter la session de jumelage
Champs du corps de la requête
| Champ | Description |
|---|---|
| completion_nonce (obligatoire, chaîne) | modèle : "^[A-Za-z0-9_-]{43}$" |
Modèle de requête et réponses
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/pairing-sessions/complete'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Cookie de l’appareil jumelé émis ; le lecteur crée ensuite la session d’exécution jumelée ordinaire. | PairingCompletion (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) |
| 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) |
| 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) |
Créer une session d’exécution anonyme
Champs du corps de la requête
| Champ | Description |
|---|---|
| public_id (requis, chaîne) | |
| lecture (optionnelle, PlaybackHandshake) | Poignée de lecture optionnelle qu’un Player déclare à mint. C’est un indice qui sélectionne un comportement, jamais une autorisation : les membres inconnus et les entrées du mauvais type sont ignorés, et une valeur qui n’est pas un objet ne négocie rien. La réponse mint renvoie l’intersection prise en charge comme PlaybackGrant. adslot-v1 est accordé uniquement aux sessions jumelées. |
| lecteur (optionnel, PlayerIdentity) | Auto-identification du lecteur, envoyée uniquement sur les trois itinéraires mint (docs/player-compatibility.md §3.1). C’est un indice et jamais une autorisation, et ce n’est pas couvert par la preuve native. Elle est lue avec tolérance : les membres inconnus sont ignorés, un membre optionnel invalide est supprimé seul, et un lecteur qui n’est pas un objet ou n’a pas de type valide ne déclare rien. Ce n'est jamais un 400. Un mint jumelé le stocke sur l'écran pour l'histogramme de la flotte d'opérateurs. |
Modèle de requête et réponses
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/sessions'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Cookie de session d’exécution en lecture seule | Session Runtime (application/json) ; en-têtes : RateLimit-Policy, RateLimit |
| 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) |
| 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) |
Créer une session d’exécution de l’appareil
Champs du corps de la requête
| Champ | Description |
|---|---|
| public_id (optionnel, chaîne) | minLength : 1 |
| lecture (optionnelle, PlaybackHandshake) | Poignée de lecture optionnelle qu’un Player déclare à mint. C’est un indice qui sélectionne un comportement, jamais une autorisation : les membres inconnus et les entrées du mauvais type sont ignorés, et une valeur qui n’est pas un objet ne négocie rien. La réponse mint renvoie l’intersection prise en charge comme PlaybackGrant. adslot-v1 est accordé uniquement aux sessions jumelées. |
| lecteur (optionnel, PlayerIdentity) | Auto-identification du lecteur, envoyée uniquement sur les trois itinéraires mint (docs/player-compatibility.md §3.1). C’est un indice et jamais une autorisation, et ce n’est pas couvert par la preuve native. Elle est lue avec tolérance : les membres inconnus sont ignorés, un membre optionnel invalide est supprimé seul, et un lecteur qui n’est pas un objet ou n’a pas de type valide ne déclare rien. Ce n'est jamais un 400. Un mint jumelé le stocke sur l'écran pour l'histogramme de la flotte d'opérateurs. |
Modèle de requête et réponses
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/device-sessions'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Session d’exécution jumelée | Session Runtime (application/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) |
Démarrer session jumelage native
Crée une session de jumelage native uniquement à partir d’une clé publique Ed25519 du lecteur. Le jumelage natif non revendiqué dure soixante-douze heures. Une revendication réussie réserve un écran et stocke une livraison chiffrée durable indépendamment de l’expiration du localisateur. Elle ne lie pas la clé publique à un projet avant la signature de l’achèvement pour ce justificatif de jumelage exact et nonce.
Les cookies, les identifiants de requête, les origines intersites et l’Authorization sont rejetés. Une relecture exacte Idempotency-Key précède toute nouvelle admission d’abus. La réponse ne définit jamais de cookie. Une clé publique déjà liée ou explicitement retirée renvoie enrollment_bound.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| Idempotency-Key | en-tête | obligatoire |
Champs du corps de la requête
| Champ | Description |
|---|---|
| kid (obligatoire, chaîne) | modèle : "^[A-Za-z0-9_-]{43}$" |
| public_key (requise, PlayerPublicKey) | |
| signature (obligatoire, chaîne) | minLength : 80 maxLength : 4096 |
| hôte (facultatif, RuntimeHostHint) | L’indication facultative d’hôte natif au démarrage du jumelage, à la fin du jumelage, et à la création de session d’identité. Elle nomme un appareil et n’est jamais une autorisation. Il est lu avec tolérance (docs/player-compatibility.md §1.1.1) : les membres inconnus sont ignorés, un champ mal formé ou une entrée de capacités est supprimé, au maximum 32 capacités sont conservées, et une valeur qui n'est pas un objet ou une plateforme hors du motif supprime tout l'indice. Aucun de ces cas ne refuse la requête. Un Lecteur envoie toujours uniquement les valeurs de plateforme enregistrées et les membres ci-dessous, car un backend pré-contrat refuse tout autre. |
| fleet_link (optionnel, chaîne) | Secret de lien de flotte facultatif tiré du fragment d'URL du Player (#fleet=). Un lien valide, activé et non expiré réclame aussitôt cette session de jumelage pour son projet, ou récupère l'écran précédent de l'appareil; le fleet_link de la réponse indique lequel. Comme host, il est lu avec tolérance : une valeur mal formée ou inconnue ne refuse jamais le démarrage. pattern: "^srfl_[A-Za-z0-9_-]{43}$" |
Modèle de requête et réponses
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/pairing-sessions'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Code de jumelage natif plus justificatif temporaire ScreenRig-Pairing ; pas de Set-Cookie. | NativePairingSession (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) |
| 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 |
| 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) |
Événements de jumelage natif en flux
Jumelage natif uniquement SSE authentifié par exactement un en-tête d’autorisation ScreenRig-Pairing. Les cookies et justificatifs de requête sont rejetés. L’événement terminal contient uniquement le nonce d’achèvement non secret.
Modèle de requête et réponses
curl --request GET --header 'Authorization: ScreenRig-Pairing PAIRING' 'https://play.screenrig.ai/stream/native/pairing-events'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | SSE de jumelage natif authentifié dont les données terminales sont PairingClaimedEvent. | chaîne (text/event-stream); en-têtes : Cache-Control, X-Accel-Buffering |
| 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) |
| 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) |
Compléter la session de jumelage native
Complète le jumelage natif avec un nonce de complétion et un JWS EdDSA compact (op=pairing.complete) dont request_hash lie la preuve d’association exacte et le nonce de complétion. Aucun cookie n’est accepté ni défini. Aucune preuve d’identité ScreenRig-Device n’est émise. Le lecteur crée ensuite ScreenRig-Session à partir d’une preuve de possession.
Champs du corps de la requête
| Champ | Description |
|---|---|
| kid (optionnel, chaîne) | modèle : "^[A-Za-z0-9_-]{43}$" |
| completion_nonce (obligatoire, chaîne) | modèle : "^[A-Za-z0-9_-]{43}$" |
| public_key (requise, PlayerPublicKey) | |
| signature (obligatoire, chaîne) | JWS EdDSA compact avec op=pairing.complete et request_hash liant la preuve d’association exacte et le nonce de complétion. minLength : 80 maxLength : 4096 |
| hôte (facultatif, RuntimeHostHint) | L’indication facultative d’hôte natif au démarrage du jumelage, à la fin du jumelage, et à la création de session d’identité. Elle nomme un appareil et n’est jamais une autorisation. Il est lu avec tolérance (docs/player-compatibility.md §1.1.1) : les membres inconnus sont ignorés, un champ mal formé ou une entrée de capacités est supprimé, au maximum 32 capacités sont conservées, et une valeur qui n'est pas un objet ou une plateforme hors du motif supprime tout l'indice. Aucun de ces cas ne refuse la requête. Un Lecteur envoie toujours uniquement les valeurs de plateforme enregistrées et les membres ci-dessous, car un backend pré-contrat refuse tout autre. |
Modèle de requête et réponses
curl --request POST --header 'Authorization: ScreenRig-Pairing PAIRING' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/pairing-sessions/complete'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Achèvement du jumelage natif ; pas de Set-Cookie et pas de justificatif d’appareil. | NativePairingCompletion (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) |
| 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 |
| 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) |
Créer un défi d’identité native
Émet un nonce à courte durée lié à l'empreinte de clé publique d'un seul lecteur. Les cookies, les identifiants de requête et l'Authorization sont rejetés.
Champs du corps de la requête
| Champ | Description |
|---|---|
| kid (obligatoire, chaîne) | Empreinte JWK SHA-256 RFC 7638. motif : "^[A-Za-z0-9_-]{43}$" |
| public_key (optionnelle, PlayerPublicKey) | |
| op (obligatoire, chaîne) | Autorisé : « pairing.start », « pairing.complete », « session.mint », « identity.reset » |
| request_hash (obligatoire, chaîne) | modèle : "^[0-9a-f]{64}$" |
Modèle de requête et réponses
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/challenges'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Challenge nonce pour une preuve JWS compacte EdDSA ; pas de Set-Cookie. | NativeIdentityChallenge (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) |
| 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) |
| 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) |
Créer une session d’exécution d’identité native
Vérifie un JWS compact EdDSA (op=session.mint) contre la clé publique enregistrée et retourne une ScreenRig-Session signée de sept jours. Les lecteurs jumelés renouvellent après un jour avec un décalage via ce même mint signé ; le renouvellement remplace l’identifiant sans fermer un flux d’exécution existant. Les métadonnées de renouvellement sont optionnelles pour les lecteurs et ne nécessitent pas de mise à jour du lecteur.
Les cookies ne sont ni acceptés ni définis. Une relecture exacte Idempotency-Key précède toute nouvelle admission d’abus. Un écran archivé crée toujours une session pour que le lecteur puisse afficher le verre archivé. La création de session exige la liaison durable exacte projet-écran établie par l’achèvement signé ; les offres de revendication en attente n’ont aucune autorité de session.
La relecture exacte vérifie à nouveau ce jumelage et rejette les identités retirées.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| Idempotency-Key | en-tête | obligatoire |
Champs du corps de la requête
| Champ | Description |
|---|---|
| kid (obligatoire, chaîne) | modèle : "^[A-Za-z0-9_-]{43}$" |
| public_key (requise, PlayerPublicKey) | |
| signature (obligatoire, chaîne) | JWS EdDSA compact avec op=session.mint. minLength : 80 maxLength : 4096 |
| hôte (facultatif, RuntimeHostHint) | L’indication facultative d’hôte natif au démarrage du jumelage, à la fin du jumelage, et à la création de session d’identité. Elle nomme un appareil et n’est jamais une autorisation. Il est lu avec tolérance (docs/player-compatibility.md §1.1.1) : les membres inconnus sont ignorés, un champ mal formé ou une entrée de capacités est supprimé, au maximum 32 capacités sont conservées, et une valeur qui n'est pas un objet ou une plateforme hors du motif supprime tout l'indice. Aucun de ces cas ne refuse la requête. Un Lecteur envoie toujours uniquement les valeurs de plateforme enregistrées et les membres ci-dessous, car un backend pré-contrat refuse tout autre. |
| lecture (optionnelle, PlaybackHandshake) | Poignée de lecture optionnelle qu’un Player déclare à mint. C’est un indice qui sélectionne un comportement, jamais une autorisation : les membres inconnus et les entrées du mauvais type sont ignorés, et une valeur qui n’est pas un objet ne négocie rien. La réponse mint renvoie l’intersection prise en charge comme PlaybackGrant. adslot-v1 est accordé uniquement aux sessions jumelées. |
| lecteur (optionnel, PlayerIdentity) | Auto-identification du lecteur, envoyée uniquement sur les trois itinéraires mint (docs/player-compatibility.md §3.1). C’est un indice et jamais une autorisation, et ce n’est pas couvert par la preuve native. Elle est lue avec tolérance : les membres inconnus sont ignorés, un membre optionnel invalide est supprimé seul, et un lecteur qui n’est pas un objet ou n’a pas de type valide ne déclare rien. Ce n'est jamais un 400. Un mint jumelé le stocke sur l'écran pour l'histogramme de la flotte d'opérateurs. |
Modèle de requête et réponses
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/sessions'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Session d’exécution native jumelée ; pas de Set-Cookie. | NativeRuntimeSession (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) |
| 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 |
| 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) |
Créer une session d’exécution de lien d’écran
Émet une ScreenRig-Session de sept jours à partir du secret du lien d’écran dans l’adresse du lecteur (la valeur srsl_ après #screen= dans https://play.<domain>/player/#screen=…), pour un navigateur qui ne conserve rien. Le lecteur envoie le secret à chaque chargement et de nouveau pour renouveler ; il ne détient aucune clé ni aucun jumelage.
La revendication de clé d’appareil de la session porte l’identifiant du lien, de sorte que remplacer ou supprimer le lien y met fin aussitôt à l’API et en périphérie. Les témoins (cookies) ne sont ni acceptés ni définis. La relecture exacte d’une Idempotency-Key précède toute nouvelle admission anti-abus. Un écran archivé émet quand même une session pour que le lecteur puisse afficher l’état archivé.
Un lien remplacé, supprimé ou inconnu répond screen_link_invalid (401, action clear_lkg). Un champ host présent remplace l’indice d’hôte enregistré ; player remplace le player enregistré.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| Idempotency-Key | en-tête | obligatoire |
Champs du corps de la requête
| Champ | Description |
|---|---|
| screen_link (obligatoire, chaîne) | modèle : "^srsl_[A-Za-z0-9_-]{43}$" |
| hôte (facultatif, RuntimeHostHint) | L’indication facultative d’hôte natif au démarrage du jumelage, à la fin du jumelage, et à la création de session d’identité. Elle nomme un appareil et n’est jamais une autorisation. Il est lu avec tolérance (docs/player-compatibility.md §1.1.1) : les membres inconnus sont ignorés, un champ mal formé ou une entrée de capacités est supprimé, au maximum 32 capacités sont conservées, et une valeur qui n'est pas un objet ou une plateforme hors du motif supprime tout l'indice. Aucun de ces cas ne refuse la requête. Un Lecteur envoie toujours uniquement les valeurs de plateforme enregistrées et les membres ci-dessous, car un backend pré-contrat refuse tout autre. |
| lecture (optionnelle, PlaybackHandshake) | Poignée de lecture optionnelle qu’un Player déclare à mint. C’est un indice qui sélectionne un comportement, jamais une autorisation : les membres inconnus et les entrées du mauvais type sont ignorés, et une valeur qui n’est pas un objet ne négocie rien. La réponse mint renvoie l’intersection prise en charge comme PlaybackGrant. adslot-v1 est accordé uniquement aux sessions jumelées. |
| lecteur (optionnel, PlayerIdentity) | Auto-identification du lecteur, envoyée uniquement sur les trois itinéraires mint (docs/player-compatibility.md §3.1). C’est un indice et jamais une autorisation, et ce n’est pas couvert par la preuve native. Elle est lue avec tolérance : les membres inconnus sont ignorés, un membre optionnel invalide est supprimé seul, et un lecteur qui n’est pas un objet ou n’a pas de type valide ne déclare rien. Ce n'est jamais un 400. Un mint jumelé le stocke sur l'écran pour l'histogramme de la flotte d'opérateurs. |
Modèle de requête et réponses
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/link-sessions'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Session d’exécution native jumelée ; pas de Set-Cookie. | NativeRuntimeSession (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 |
| 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) |
Réinitialiser l’identité native
La réinitialisation sur le lecteur, invoquée uniquement par une action explicite confirmée de l’opérateur sur l’appareil. Un jumelage raté, une création de session ou un accès réseau ne déclenchent jamais automatiquement cette opération ni ne suppriment la clé locale du lecteur. Le point de terminaison vérifie un JWS compact EdDSA (op=identity.reset).
L’écran lié à cette clé est archivé avec archive_reason device_reset (déjà archivé : inchangé), et la clé reste liée à lui : un appareil qui détient encore la clé crée une session archivée (verre sombre) et reprend à la désarchivation sans nouveau jumelage, et la clé ne peut pas démarrer un nouveau jumelage (enrollment_bound).
Les offres de revendication native en attente pour la clé sont retirées. Une clé qui n’a jamais lié un écran, ou une clé déjà retirée par récupération d’écran, devient terminale : elle ne peut plus jumeler ni créer de sessions, et réinitialiser une clé retirée ne touche jamais l’écran que son successeur possède.
Si le projet inscrit a été supprimé, la réinitialisation signée rend la clé orpheline terminale sans archiver un autre écran, donc l’appareil peut se jumeler à nouveau. Après une réponse perdue, le lecteur conserve sa clé locale et peut réessayer avec un nouveau défi et une nouvelle preuve signée.
Une erreur réseau seule ne confirme pas une réinitialisation ni n’autorise l’effacement de cette clé (docs/player-compatibility.md §5.1). Pas de porteur de projet. Les cookies ne sont ni acceptés ni définis.
Champs du corps de la requête
| Champ | Description |
|---|---|
| kid (obligatoire, chaîne) | modèle : "^[A-Za-z0-9_-]{43}$" |
| public_key (requise, PlayerPublicKey) | |
| signature (obligatoire, chaîne) | JWS EdDSA compact. minLength : 80 maxLength : 4096 |
Modèle de requête et réponses
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/reset'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 204 | Réinitialisation enregistrée : un écran lié à un projet actif archivé avec la clé conservée ; une clé non liée, supprimée ou retirée rend le terminal ; ou une clé inconnue répond par une opération idempotente sans rien archiver. Une nouvelle tentative authentifiée de l’un de ces cas réussit aussi. Pas de Set-Cookie. | 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) |
| 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) |
| 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) |