OpenAPI YAMLOpenAPI JSONproblemi YAMLPanoramica dell’API
Questo gruppo ha 12 operazioni, generate da api/openapi.yaml. Filtra per percorso, azione o autenticazione. Ogni endpoint elenca i suoi input; espandilo per vedere un modello di richiesta e i codici di risposta. I modelli richiedono i tuoi valori e un corpo valido secondo lo schema.
Sostituisci i segnaposto maiuscoli con i tuoi valori. Per una richiesta JSON, salva un corpo che corrisponde allo schema in request.json. Gli esempi di cookie usano un cookie jar locale da una sessione autenticata.
Associazione e sessioni del lettore
Avvia sessione associazione
Crea una sessione di associazione globale flotta in scadenza e imposta il cookie di associazione temporaneo HttpOnly Secure SameSite=Strict. Un Origin non attendibile o una richiesta browser cross-site sono rifiutati con forbidden prima che vengano creati limiti di frequenza o stato di associazione.
Modello richiesta e risposte
curl --request POST 'https://play.screenrig.ai/screen/pairing-sessions'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 201 | Codice di associazione esatto di sei caratteri e scadenza. | PairingSession (application/json); intestazioni: Cache-Control, RateLimit-Policy, RateLimit |
| 403 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Eventi pairing flusso
Modello richiesta e risposte
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/stream/pairing-events'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | SSE di associazione temporanea autenticata. Il dato terminale pairing.claimed è PairingClaimedEvent e contiene solo un nonce di completamento non segreto. | stringa (text/event-stream); intestazioni: Cache-Control, X-Accel-Buffering |
| 401 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Completa sessione di associazione
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| completion_nonce (obbligatorio, stringa) | pattern: "^[A-Za-z0-9_-]{43}$" |
Modello richiesta e risposte
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'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Cookie dispositivo associato emesso; il lettore crea quindi la normale sessione runtime associata. | PairingCompletion (application/json); intestazioni: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 401 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 403 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 404 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Crea sessione runtime anonima
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| public_id (obbligatorio, stringa) | |
| riproduzione (opzionale, PlaybackHandshake) | Handshake di riproduzione opzionale che un Player dichiara al mint. È un suggerimento che seleziona il comportamento, mai l’autorizzazione: membri sconosciuti e voci di tipo errato sono ignorati, e un valore non oggetto non negozia nulla. La risposta mint riecheggia l’intersezione supportata come PlaybackGrant. adslot-v1 è concesso solo a sessioni associate. |
| lettore (opzionale, PlayerIdentity) | Autoidentificazione del lettore, inviata solo sulle tre rotte mint (docs/player-compatibility.md §3.1). È un suggerimento e mai un’autorizzazione, e non è coperta dalla prova nativa. Viene letta con tolleranza: i membri sconosciuti sono ignorati, un membro opzionale non valido viene scartato da solo, e un lettore che non è un oggetto o non ha un tipo valido non dichiara nulla. Non è mai un 400. Un mint associato lo memorizza sullo schermo per l’istogramma della flotta operatore. |
Modello richiesta e risposte
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/sessions'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 201 | Cookie di sessione runtime in sola lettura | RuntimeSession (application/json); intestazioni: RateLimit-Policy, RateLimit |
| 404 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Crea sessione runtime dispositivo
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| public_id (opzionale, stringa) | minLength: 1 |
| riproduzione (opzionale, PlaybackHandshake) | Handshake di riproduzione opzionale che un Player dichiara al mint. È un suggerimento che seleziona il comportamento, mai l’autorizzazione: membri sconosciuti e voci di tipo errato sono ignorati, e un valore non oggetto non negozia nulla. La risposta mint riecheggia l’intersezione supportata come PlaybackGrant. adslot-v1 è concesso solo a sessioni associate. |
| lettore (opzionale, PlayerIdentity) | Autoidentificazione del lettore, inviata solo sulle tre rotte mint (docs/player-compatibility.md §3.1). È un suggerimento e mai un’autorizzazione, e non è coperta dalla prova nativa. Viene letta con tolleranza: i membri sconosciuti sono ignorati, un membro opzionale non valido viene scartato da solo, e un lettore che non è un oggetto o non ha un tipo valido non dichiara nulla. Non è mai un 400. Un mint associato lo memorizza sullo schermo per l’istogramma della flotta operatore. |
Modello richiesta e risposte
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'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 201 | Sessione runtime associata | RuntimeSession (application/json) |
| 409 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Avvia sessione associazione nativa
Crea una sessione di associazione nativa solo da una chiave pubblica Ed25519 del lettore. L’associazione nativa non reclamata dura settantadue ore. Una rivendicazione riuscita riserva uno schermo e memorizza una consegna crittografata durevole indipendentemente dalla scadenza del localizzatore. Non vincola la chiave pubblica a un progetto fino al completamento firmato per quella specifica credenziale di associazione e nonce.
Cookie, credenziali query, origini cross-site e Autorizzazione sono rifiutati. La ripetizione esatta di Idempotency-Key precede la nuova ammissione di abuso. La risposta non imposta mai un cookie. Una chiave pubblica già vincolata o esplicitamente ritirata restituisce enrollment_bound.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| Idempotency-Key | intestazione | obbligatorio |
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| kid (obbligatorio, stringa) | pattern: "^[A-Za-z0-9_-]{43}$" |
| public_key (obbligatorio, PlayerPublicKey) | |
| firma (obbligatoria, stringa) | minLength: 80 maxLength: 4096 |
| host (opzionale, RuntimeHostHint) | L’indicazione opzionale del dispositivo nativo all’avvio dell’associazione, al completamento dell’associazione e alla creazione della sessione di identità. Nomina un dispositivo e non è mai autorizzazione. Viene letto con tolleranza (docs/player-compatibility.md §1.1.1): membri sconosciuti sono ignorati, un campo o voce capabilities malformati sono scartati, si mantengono al massimo 32 capabilities, e un valore che non è un oggetto o una piattaforma fuori dal pattern scarta l’intero hint. Nessuno di questi rifiuta la richiesta. Un Player invia ancora solo i valori piattaforma registrati e i membri sotto, perché un backend pre-contratto rifiuta altro. |
| fleet_link (opzionale, stringa) | Segreto facoltativo del link di flotta, preso dal frammento dell'URL del Player (#fleet=). Un link valido, attivo e non scaduto assegna subito questa sessione di associazione al proprio progetto, oppure recupera lo schermo precedente del dispositivo; il fleet_link della risposta indica quale dei due. Come host, viene letto in modo tollerante: un valore malformato o sconosciuto non fa mai rifiutare l'avvio. pattern: "^srfl_[A-Za-z0-9_-]{43}$" |
Modello richiesta e risposte
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/pairing-sessions'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 201 | Codice di associazione nativo più credenziale temporanea ScreenRig-Pairing; nessun Set-Cookie. | NativePairingSession (application/json); header: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 403 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 409 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Eventi pairing nativo flusso
Associazione solo nativa SSE autenticata da esattamente un header ScreenRig-Pairing Authorization. Cookie e credenziali query sono rifiutati. L’evento terminale contiene solo il nonce di completamento non segreto.
Modello richiesta e risposte
curl --request GET --header 'Authorization: ScreenRig-Pairing PAIRING' 'https://play.screenrig.ai/stream/native/pairing-events'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | SSE di associazione nativa autenticata il cui dato terminale è PairingClaimedEvent. | stringa (text/event-stream); intestazioni: Cache-Control, X-Accel-Buffering |
| 401 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 403 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 404 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Completa sessione di associazione nativa
Completa associazione nativa con nonce di completamento e JWS EdDSA compatto (op=pairing.complete) il cui request_hash lega esattamente la credenziale di associazione e il nonce di completamento. Nessun cookie è accettato o impostato. Nessuna credenziale ScreenRig-Device è emessa. Il lettore successivamente crea ScreenRig-Session da una prova di possesso.
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| kid (opzionale, stringa) | pattern: "^[A-Za-z0-9_-]{43}$" |
| completion_nonce (obbligatorio, stringa) | pattern: "^[A-Za-z0-9_-]{43}$" |
| public_key (obbligatorio, PlayerPublicKey) | |
| firma (obbligatoria, stringa) | JWS EdDSA compatto con op=pairing.complete e request_hash che lega esattamente la credenziale di associazione e il nonce di completamento. minLength: 80 maxLength: 4096 |
| host (opzionale, RuntimeHostHint) | L’indicazione opzionale del dispositivo nativo all’avvio dell’associazione, al completamento dell’associazione e alla creazione della sessione di identità. Nomina un dispositivo e non è mai autorizzazione. Viene letto con tolleranza (docs/player-compatibility.md §1.1.1): membri sconosciuti sono ignorati, un campo o voce capabilities malformati sono scartati, si mantengono al massimo 32 capabilities, e un valore che non è un oggetto o una piattaforma fuori dal pattern scarta l’intero hint. Nessuno di questi rifiuta la richiesta. Un Player invia ancora solo i valori piattaforma registrati e i membri sotto, perché un backend pre-contratto rifiuta altro. |
Modello richiesta e risposte
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'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Completamento associazione nativo; nessun Set-Cookie e nessuna credenziale dispositivo. | NativePairingCompletion (application/json); header: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 401 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 403 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 404 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 409 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Crea sfida identità nativa
Emette un nonce a breve durata vincolato all’impronta della chiave pubblica di un lettore. Cookie, credenziali query e Authorization sono rifiutati.
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| kid (obbligatorio, stringa) | Impronta JWK SHA-256 RFC 7638. pattern: "^[A-Za-z0-9_-]{43}$" |
| public_key (opzionale, PlayerPublicKey) | |
| op (obbligatorio, stringa) | Consentito: "pairing.start", "pairing.complete", "session.mint", "identity.reset" |
| request_hash (obbligatorio, stringa) | pattern: "^[0-9a-f]{64}$" |
Modello richiesta e risposte
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/challenges'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 201 | Challenge nonce per una prova compatta EdDSA JWS; nessun Set-Cookie. | NativeIdentityChallenge (application/json); header: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 404 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Crea sessione runtime identità nativa
Verifica un JWS EdDSA compatto (op=session.mint) contro la chiave pubblica registrata e restituisce una ScreenRig-Session firmata di sette giorni. I lettori associati si rinnovano dopo un giorno con jitter tramite questa stessa mint firmata; il rinnovo sostituisce la credenziale senza chiudere uno stream runtime esistente. I metadati di rinnovo sono opzionali per i lettori e non richiedono aggiornamento del lettore.
I cookie non sono né accettati né impostati. La ripetizione esatta di Idempotency-Key precede la nuova ammissione di abuso. Uno schermo archiviato crea ancora una sessione così il player può mostrare il vetro archiviato. La creazione di sessione richiede il legame esatto e duraturo progetto-schermo stabilito dal completamento firmato; le offerte di reclamo in sospeso non hanno autorità di sessione.
La riproduzione esatta ricontrolla quell’associazione e rifiuta identità ritirate.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| Idempotency-Key | intestazione | obbligatorio |
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| kid (obbligatorio, stringa) | pattern: "^[A-Za-z0-9_-]{43}$" |
| public_key (obbligatorio, PlayerPublicKey) | |
| firma (obbligatoria, stringa) | JWS EdDSA compatto con op=session.mint. minLength: 80 maxLength: 4096 |
| host (opzionale, RuntimeHostHint) | L’indicazione opzionale del dispositivo nativo all’avvio dell’associazione, al completamento dell’associazione e alla creazione della sessione di identità. Nomina un dispositivo e non è mai autorizzazione. Viene letto con tolleranza (docs/player-compatibility.md §1.1.1): membri sconosciuti sono ignorati, un campo o voce capabilities malformati sono scartati, si mantengono al massimo 32 capabilities, e un valore che non è un oggetto o una piattaforma fuori dal pattern scarta l’intero hint. Nessuno di questi rifiuta la richiesta. Un Player invia ancora solo i valori piattaforma registrati e i membri sotto, perché un backend pre-contratto rifiuta altro. |
| riproduzione (opzionale, PlaybackHandshake) | Handshake di riproduzione opzionale che un Player dichiara al mint. È un suggerimento che seleziona il comportamento, mai l’autorizzazione: membri sconosciuti e voci di tipo errato sono ignorati, e un valore non oggetto non negozia nulla. La risposta mint riecheggia l’intersezione supportata come PlaybackGrant. adslot-v1 è concesso solo a sessioni associate. |
| lettore (opzionale, PlayerIdentity) | Autoidentificazione del lettore, inviata solo sulle tre rotte mint (docs/player-compatibility.md §3.1). È un suggerimento e mai un’autorizzazione, e non è coperta dalla prova nativa. Viene letta con tolleranza: i membri sconosciuti sono ignorati, un membro opzionale non valido viene scartato da solo, e un lettore che non è un oggetto o non ha un tipo valido non dichiara nulla. Non è mai un 400. Un mint associato lo memorizza sullo schermo per l’istogramma della flotta operatore. |
Modello richiesta e risposte
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/sessions'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 201 | Sessione runtime nativa associata; nessun Set-Cookie. | NativeRuntimeSession (application/json); header: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 401 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 403 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 404 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 409 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Crea sessione di runtime del link dello schermo
Emette una ScreenRig-Session di sette giorni dal segreto del link dello schermo nell’indirizzo del Player (il valore srsl_ dopo #screen= in https://play.<domain>/player/#screen=…), per un browser che non conserva dati. Il Player invia il segreto a ogni caricamento e di nuovo per rinnovare; non conserva alcuna chiave né associazione.
Il claim della chiave dispositivo della sessione porta l’id del link, così sostituire o eliminare il link la termina subito all’API e all’edge. I cookie non sono né accettati né impostati. La ripetizione esatta di una Idempotency-Key precede ogni nuova ammissione antiabuso. Uno schermo archiviato emette comunque una sessione, così il Player può mostrare lo stato archiviato.
Un link sostituito, eliminato o sconosciuto dà screen_link_invalid (401, azione clear_lkg). Un host presente sostituisce il suggerimento host memorizzato; player sostituisce il player memorizzato.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| Idempotency-Key | intestazione | obbligatorio |
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| screen_link (obbligatorio, stringa) | pattern: "^srsl_[A-Za-z0-9_-]{43}$" |
| host (opzionale, RuntimeHostHint) | L’indicazione opzionale del dispositivo nativo all’avvio dell’associazione, al completamento dell’associazione e alla creazione della sessione di identità. Nomina un dispositivo e non è mai autorizzazione. Viene letto con tolleranza (docs/player-compatibility.md §1.1.1): membri sconosciuti sono ignorati, un campo o voce capabilities malformati sono scartati, si mantengono al massimo 32 capabilities, e un valore che non è un oggetto o una piattaforma fuori dal pattern scarta l’intero hint. Nessuno di questi rifiuta la richiesta. Un Player invia ancora solo i valori piattaforma registrati e i membri sotto, perché un backend pre-contratto rifiuta altro. |
| riproduzione (opzionale, PlaybackHandshake) | Handshake di riproduzione opzionale che un Player dichiara al mint. È un suggerimento che seleziona il comportamento, mai l’autorizzazione: membri sconosciuti e voci di tipo errato sono ignorati, e un valore non oggetto non negozia nulla. La risposta mint riecheggia l’intersezione supportata come PlaybackGrant. adslot-v1 è concesso solo a sessioni associate. |
| lettore (opzionale, PlayerIdentity) | Autoidentificazione del lettore, inviata solo sulle tre rotte mint (docs/player-compatibility.md §3.1). È un suggerimento e mai un’autorizzazione, e non è coperta dalla prova nativa. Viene letta con tolleranza: i membri sconosciuti sono ignorati, un membro opzionale non valido viene scartato da solo, e un lettore che non è un oggetto o non ha un tipo valido non dichiara nulla. Non è mai un 400. Un mint associato lo memorizza sullo schermo per l’istogramma della flotta operatore. |
Modello richiesta e risposte
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/link-sessions'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 201 | Sessione runtime nativa associata; nessun Set-Cookie. | NativeRuntimeSession (application/json); header: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 401 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 403 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 409 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
Reimposta identità nativa
Il reset sul lettore, invocato solo da un’azione esplicita e confermata dell’operatore sul dispositivo. Associazioni fallite, creazione sessione o accesso rete non invocano mai automaticamente questa operazione né cancellano la chiave locale del lettore. L’endpoint verifica un JWS EdDSA compatto (op=identity.reset).
Lo schermo associato a questa chiave è archiviato con archive_reason device_reset (già archiviato: invariato), e la chiave resta associata a esso: un dispositivo che ancora possiede la chiave crea una sessione archiviata (dark glass) e riprende su unarchive senza nuovo pairing, e la chiave non può avviare un nuovo pairing (enrollment_bound).
Le offerte di richiesta native in sospeso per la chiave sono ritirate. Una chiave che non ha mai associato uno schermo, o una chiave già ritirata dal recupero schermo, diventa terminale invece: non può più associare o generare sessioni, e il reset di una chiave ritirata non tocca mai lo schermo del suo successore.
Se il progetto iscritto è stato eliminato, il reset firmato rende la chiave orfana terminale senza archiviare un altro schermo, così il dispositivo può associarsi di nuovo. Dopo una risposta persa, il Player mantiene la sua chiave locale e può riprovare con una nuova sfida e una nuova prova firmata.
Un errore di rete da solo non conferma un reset né autorizza la cancellazione di quella chiave (docs/player-compatibility.md §5.1). Nessun bearer di progetto. I cookie non sono né accettati né impostati.
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| kid (obbligatorio, stringa) | pattern: "^[A-Za-z0-9_-]{43}$" |
| public_key (obbligatorio, PlayerPublicKey) | |
| firma (obbligatoria, stringa) | JWS EdDSA compatto. minLength: 80 maxLength: 4096 |
Modello richiesta e risposte
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/reset'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 204 | Reset registrato: uno schermo legato a progetto live archiviato con la chiave mantenuta; una chiave progetto eliminato, non legata o ritirata ha reso terminale; o una chiave sconosciuta ha risposto come no-op idempotente che non archivia nulla. Un retry autenticato di uno di questi ha successo. Nessun Set-Cookie. | nessun corpo; intestazioni: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 401 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 404 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| 429 | Problema rate_limited stabile su runtime o percorso contenuto rivolto al Player, nella forma documento runtime (RuntimeProblem). Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali. | RuntimeProblem (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |
| predefinito | Risposta problema stabile RFC 9457 su runtime, contenuto o percorso probe rivolto al Player, nella forma documento runtime (RuntimeProblem). Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore. | RuntimeProblem (application/problem+json) |