OpenAPI YAMLOpenAPI JSONproblemas YAMLVisão geral da API
Este grupo tem 12 operações, geradas a partir de api/openapi.yaml. Filtre por caminho, ação ou autenticação. Cada endpoint lista suas entradas; expanda-o para ver um modelo de solicitação e os códigos de resposta. Os modelos precisam de seus próprios valores e de um corpo válido conforme o esquema.
Substitua os espaços reservados em maiúsculas pelos seus valores. Para uma solicitação JSON, salve um corpo que corresponda ao esquema em request.json. Exemplos de cookies usam um jar local de cookies de uma sessão autenticada.
Pareamento e sessões do Player
Iniciar sessão de pareamento
Cria uma sessão de pareamento expirada global para frota e define o cookie de pareamento temporário HttpOnly Secure SameSite=Strict. Uma origem não confiável ou requisição de navegador cross-site é rejeitada com forbidden antes do limite de taxa ou estado de pareamento ser criado.
Modelo e respostas da solicitação
curl --request POST 'https://play.screenrig.ai/screen/pairing-sessions'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Código de pareamento de seis caracteres exato e validade. | PairingSession (application/json); cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 403 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Eventos de pareamento do fluxo
Modelo e respostas da solicitação
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/stream/pairing-events'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | SSE de pareamento temporário autenticado. O dado terminal pairing.claimed é PairingClaimedEvent e contém apenas um nonce de conclusão não secreto. | string (text/event-stream); cabeçalhos: Cache-Control, X-Accel-Buffering |
| 401 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Concluir sessão de pareamento
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| completion_nonce (obrigatório, string) | padrão: "^[A-Za-z0-9_-]{43}$" |
Modelo e respostas da solicitação
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'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Cookie do dispositivo emparelhado emitido; o Player cria em seguida a sessão de runtime emparelhada comum. | PairingCompletion (application/json); cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 401 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 403 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 404 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Criar sessão de tempo de execução anônima
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| public_id (obrigatório, string) | |
| reprodução (opcional, PlaybackHandshake) | Handshake opcional de reprodução que um Player declara no mint. É uma dica que seleciona comportamento, nunca autorização: membros desconhecidos e entradas do tipo errado são ignorados, e um valor que não é objeto não negocia nada. A resposta mint ecoa a interseção suportada como PlaybackGrant. adslot-v1 é concedido apenas a sessões pareadas. |
| player (opcional, PlayerIdentity) | Autoidentificação do Player, enviada apenas nas três rotas mint (docs/player-compatibility.md §3.1). É uma dica e nunca uma autorização, e não está coberta pela prova nativa. É lida com tolerância: membros desconhecidos são ignorados, um membro opcional inválido é descartado sozinho, e um player que não é um objeto ou não tem tipo válido não declara nada. Nunca é um 400. Um mint pareado o armazena na tela para o histograma da frota do operador. |
Modelo e respostas da solicitação
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/sessions'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Cookie de sessão de tempo de execução somente leitura | Sessão Runtime (application/json); cabeçalhos: RateLimit-Policy, RateLimit |
| 404 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Criar sessão de tempo de execução do dispositivo
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| public_id (opcional, string) | minLength: 1 |
| reprodução (opcional, PlaybackHandshake) | Handshake opcional de reprodução que um Player declara no mint. É uma dica que seleciona comportamento, nunca autorização: membros desconhecidos e entradas do tipo errado são ignorados, e um valor que não é objeto não negocia nada. A resposta mint ecoa a interseção suportada como PlaybackGrant. adslot-v1 é concedido apenas a sessões pareadas. |
| player (opcional, PlayerIdentity) | Autoidentificação do Player, enviada apenas nas três rotas mint (docs/player-compatibility.md §3.1). É uma dica e nunca uma autorização, e não está coberta pela prova nativa. É lida com tolerância: membros desconhecidos são ignorados, um membro opcional inválido é descartado sozinho, e um player que não é um objeto ou não tem tipo válido não declara nada. Nunca é um 400. Um mint pareado o armazena na tela para o histograma da frota do operador. |
Modelo e respostas da solicitação
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'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Sessão de runtime emparelhada | Sessão Runtime (application/json) |
| 409 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Iniciar sessão de pareamento nativa
Cria uma sessão de pareamento apenas nativa a partir de uma chave pública Ed25519 do player. O pareamento nativo não reivindicado dura setenta e duas horas. Uma reivindicação bem-sucedida reserva uma tela e armazena entrega criptografada durável independentemente da expiração do localizador. Não vincula a chave pública a um projeto até a conclusão assinada para essa credencial e nonce de pareamento exatos.
Cookies, credenciais de consulta, origens cross-site e Autorização são rejeitados. Reprodução exata de Idempotency-Key precede nova admissão de abuso. A resposta nunca define um cookie. Uma chave pública já vinculada ou explicitamente aposentada retorna enrollment_bound.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| Idempotency-Key | cabeçalho | obrigatório |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| kid (obrigatório, string) | padrão: "^[A-Za-z0-9_-]{43}$" |
| public_key (obrigatório, PlayerPublicKey) | |
| assinatura (obrigatório, string) | minLength: 80 maxLength: 4096 |
| host (opcional, RuntimeHostHint) | A dica opcional do host nativo no início do pareamento, conclusão do pareamento e criação da sessão de identidade. Nomeia um dispositivo e nunca é autorização. É lido com tolerância (docs/player-compatibility.md §1.1.1): membros desconhecidos são ignorados, um campo malformado ou entrada de capacidades é descartado, no máximo 32 capacidades são mantidas, e um valor que não é objeto ou uma plataforma fora do padrão descarta toda a dica. Nenhum desses recusa a solicitação. Um Player ainda envia apenas os valores de plataforma registrados e os membros abaixo, porque um backend pré-contrato recusa qualquer outra coisa. |
| fleet_link (opcional, string) | Segredo opcional do link de frota, vindo do fragmento da URL do player (#fleet=). Um link válido, ativo e não expirado vincula esta sessão de pareamento ao seu projeto de imediato ou recupera a tela anterior do dispositivo; o fleet_link da resposta informa qual dos dois. Como host, é lido com tolerância: um valor malformado ou desconhecido nunca recusa o início. pattern: "^srfl_[A-Za-z0-9_-]{43}$" |
Modelo e respostas da solicitação
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/pairing-sessions'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Código de pareamento nativo mais credencial temporária ScreenRig-Pairing; sem Set-Cookie. | NativePairingSession (application/json); cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 403 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 409 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Eventos nativos de pareamento do fluxo
Pareamento exclusivo nativo SSE autenticado por exatamente um cabeçalho ScreenRig-Pairing Authorization. Cookies e credenciais na query são rejeitados. O evento terminal contém apenas o nonce de conclusão não secreto.
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: ScreenRig-Pairing PAIRING' 'https://play.screenrig.ai/stream/native/pairing-events'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | SSE de pareamento nativo autenticado cujo dado terminal é PairingClaimedEvent. | string (text/event-stream); cabeçalhos: Cache-Control, X-Accel-Buffering |
| 401 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 403 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 404 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Concluir sessão de pareamento nativo
Conclui pareamento nativo com um nonce de conclusão e um JWS compacto EdDSA (op=pairing.complete) cujo request_hash vincula a credencial exata de pareamento e nonce de conclusão. Nenhum cookie é aceito ou definido. Nenhuma credencial ScreenRig-Device é emitida. O player então emite ScreenRig-Session a partir de uma prova de posse.
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| kid (opcional, string) | padrão: "^[A-Za-z0-9_-]{43}$" |
| completion_nonce (obrigatório, string) | padrão: "^[A-Za-z0-9_-]{43}$" |
| public_key (obrigatório, PlayerPublicKey) | |
| assinatura (obrigatório, string) | JWS EdDSA compacto com op=pairing.complete e request_hash vinculando a credencial exata de pareamento e nonce de conclusão. minLength: 80 maxLength: 4096 |
| host (opcional, RuntimeHostHint) | A dica opcional do host nativo no início do pareamento, conclusão do pareamento e criação da sessão de identidade. Nomeia um dispositivo e nunca é autorização. É lido com tolerância (docs/player-compatibility.md §1.1.1): membros desconhecidos são ignorados, um campo malformado ou entrada de capacidades é descartado, no máximo 32 capacidades são mantidas, e um valor que não é objeto ou uma plataforma fora do padrão descarta toda a dica. Nenhum desses recusa a solicitação. Um Player ainda envia apenas os valores de plataforma registrados e os membros abaixo, porque um backend pré-contrato recusa qualquer outra coisa. |
Modelo e respostas da solicitação
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'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Conclusão do pareamento nativo; sem Set-Cookie e sem credencial do dispositivo. | NativePairingCompletion (application/json); cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 401 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 403 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 404 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 409 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Criar desafio de identidade nativa
Emite um nonce de curta duração vinculado à impressão digital da chave pública de um player. Cookies, credenciais na query e Authorization são rejeitados.
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| kid (obrigatório, string) | Impressão digital JWK SHA-256 RFC 7638. padrão: "^[A-Za-z0-9_-]{43}$" |
| public_key (opcional, PlayerPublicKey) | |
| op (obrigatório, string) | Permitido: "pairing.start", "pairing.complete", "session.mint", "identity.reset" |
| request_hash (obrigatório, string) | padrão: "^[0-9a-f]{64}$" |
Modelo e respostas da solicitação
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/challenges'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Nonce de desafio para uma prova JWS compacta EdDSA; sem Set-Cookie. | NativeIdentityChallenge (application/json); cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 404 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Criar sessão de tempo de execução de identidade nativa
Verifica um JWS compacto EdDSA (op=session.mint) contra a chave pública cadastrada e retorna um ScreenRig-Session assinado de sete dias. Players pareados renovam após um dia com jitter usando este mesmo mint assinado; a renovação substitui a credencial sem fechar uma transmissão em execução. Metadados da renovação são opcionais para leitores e não exigem atualização do Player.
Cookies não são aceitos nem definidos. Reprodução exata de Idempotency-Key precede nova admissão de abuso. Uma tela arquivada ainda gera uma sessão para que o player possa mostrar o vidro arquivado. A geração de sessão requer a vinculação exata e durável de projeto e tela estabelecida pela conclusão assinada; ofertas de reivindicação pendentes não têm autoridade de sessão.
Reprodução exata revalida essa vinculação e rejeita identidades aposentadas.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| Idempotency-Key | cabeçalho | obrigatório |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| kid (obrigatório, string) | padrão: "^[A-Za-z0-9_-]{43}$" |
| public_key (obrigatório, PlayerPublicKey) | |
| assinatura (obrigatório, string) | JWS EdDSA compacto com op=session.mint. minLength: 80 maxLength: 4096 |
| host (opcional, RuntimeHostHint) | A dica opcional do host nativo no início do pareamento, conclusão do pareamento e criação da sessão de identidade. Nomeia um dispositivo e nunca é autorização. É lido com tolerância (docs/player-compatibility.md §1.1.1): membros desconhecidos são ignorados, um campo malformado ou entrada de capacidades é descartado, no máximo 32 capacidades são mantidas, e um valor que não é objeto ou uma plataforma fora do padrão descarta toda a dica. Nenhum desses recusa a solicitação. Um Player ainda envia apenas os valores de plataforma registrados e os membros abaixo, porque um backend pré-contrato recusa qualquer outra coisa. |
| reprodução (opcional, PlaybackHandshake) | Handshake opcional de reprodução que um Player declara no mint. É uma dica que seleciona comportamento, nunca autorização: membros desconhecidos e entradas do tipo errado são ignorados, e um valor que não é objeto não negocia nada. A resposta mint ecoa a interseção suportada como PlaybackGrant. adslot-v1 é concedido apenas a sessões pareadas. |
| player (opcional, PlayerIdentity) | Autoidentificação do Player, enviada apenas nas três rotas mint (docs/player-compatibility.md §3.1). É uma dica e nunca uma autorização, e não está coberta pela prova nativa. É lida com tolerância: membros desconhecidos são ignorados, um membro opcional inválido é descartado sozinho, e um player que não é um objeto ou não tem tipo válido não declara nada. Nunca é um 400. Um mint pareado o armazena na tela para o histograma da frota do operador. |
Modelo e respostas da solicitação
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/sessions'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Sessão nativa emparelhada; sem Set-Cookie. | NativeRuntimeSession (application/json); cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 401 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 403 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 404 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 409 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Criar sessão de execução do link da tela
Emite uma ScreenRig-Session de sete dias a partir do segredo do link da tela no endereço do Player (o valor srsl_ depois de #screen= em https://play.<domain>/player/#screen=…), para um navegador que não guarda armazenamento. O Player envia o segredo a cada carregamento e de novo para renovar; ele não guarda chave nem pareamento.
A claim de chave de dispositivo da sessão carrega o id do link, de modo que substituir ou excluir o link a encerra imediatamente na API e na borda. Cookies não são aceitos nem definidos. A repetição exata de uma Idempotency-Key precede qualquer nova admissão antiabuso. Uma tela arquivada ainda emite uma sessão para que o Player possa exibir o estado de arquivada.
Um link substituído, excluído ou desconhecido resulta em screen_link_invalid (401, ação clear_lkg). Um host presente substitui a dica de host armazenada; player substitui o player armazenado.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| Idempotency-Key | cabeçalho | obrigatório |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| screen_link (obrigatório, string) | padrão: "^srsl_[A-Za-z0-9_-]{43}$" |
| host (opcional, RuntimeHostHint) | A dica opcional do host nativo no início do pareamento, conclusão do pareamento e criação da sessão de identidade. Nomeia um dispositivo e nunca é autorização. É lido com tolerância (docs/player-compatibility.md §1.1.1): membros desconhecidos são ignorados, um campo malformado ou entrada de capacidades é descartado, no máximo 32 capacidades são mantidas, e um valor que não é objeto ou uma plataforma fora do padrão descarta toda a dica. Nenhum desses recusa a solicitação. Um Player ainda envia apenas os valores de plataforma registrados e os membros abaixo, porque um backend pré-contrato recusa qualquer outra coisa. |
| reprodução (opcional, PlaybackHandshake) | Handshake opcional de reprodução que um Player declara no mint. É uma dica que seleciona comportamento, nunca autorização: membros desconhecidos e entradas do tipo errado são ignorados, e um valor que não é objeto não negocia nada. A resposta mint ecoa a interseção suportada como PlaybackGrant. adslot-v1 é concedido apenas a sessões pareadas. |
| player (opcional, PlayerIdentity) | Autoidentificação do Player, enviada apenas nas três rotas mint (docs/player-compatibility.md §3.1). É uma dica e nunca uma autorização, e não está coberta pela prova nativa. É lida com tolerância: membros desconhecidos são ignorados, um membro opcional inválido é descartado sozinho, e um player que não é um objeto ou não tem tipo válido não declara nada. Nunca é um 400. Um mint pareado o armazena na tela para o histograma da frota do operador. |
Modelo e respostas da solicitação
curl --request POST --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/link-sessions'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Sessão nativa emparelhada; sem Set-Cookie. | NativeRuntimeSession (application/json); cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 401 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 403 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 409 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
Redefinir identidade nativa
O reset no player, invocado somente por ação explícita confirmada do operador no dispositivo. Falha no pareamento, criação de sessão ou acesso à rede nunca invocam automaticamente esta operação ou limpam a chave local do Player. O endpoint verifica um JWS compacto EdDSA (op=identity.reset).
A tela vinculada a esta chave está arquivada com archive_reason device_reset (já arquivada: inalterada), e a chave permanece vinculada a ela: um dispositivo que ainda possui a chave cria uma sessão arquivada (vidro escuro) e retoma na desarquivação sem novo pareamento, e a chave não pode iniciar um novo pareamento (enrollment_bound).
Ofertas de reivindicação nativa pendentes para a chave são retiradas. Uma chave que nunca vinculou uma tela, ou uma chave já aposentada pela recuperação de tela, torna-se terminal: não pode emparelhar ou criar sessões novamente, e redefinir uma chave aposentada nunca afeta a tela que seu sucessor possui.
Se o projeto inscrito foi excluído, o reset assinado torna a chave órfã terminal sem arquivar outra tela, para que o dispositivo possa parear novamente. Após uma resposta perdida, o Player mantém sua chave local e pode tentar novamente com um novo desafio e prova assinada fresca.
Um erro de rede sozinho não confirma um reset nem autoriza limpar essa chave (docs/player-compatibility.md §5.1). Nenhum portador de projeto. Cookies não são aceitos nem definidos.
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| kid (obrigatório, string) | padrão: "^[A-Za-z0-9_-]{43}$" |
| public_key (obrigatório, PlayerPublicKey) | |
| assinatura (obrigatório, string) | JWS EdDSA compacto. minLength: 80 maxLength: 4096 |
Modelo e respostas da solicitação
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/native/identity/reset'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | Redefinição registrada: uma tela vinculada a projeto ativo arquivada com a chave mantida; uma chave de projeto excluído, desvinculada ou aposentada tornou o terminal; ou uma chave desconhecida respondeu como uma operação idempotente que não arquiva nada. Uma nova tentativa autenticada de qualquer um destes também tem sucesso. Sem Set-Cookie. | sem corpo; cabeçalhos: Cache-Control, RateLimit-Policy, RateLimit |
| 400 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 401 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 404 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| 429 | Problema estável rate_limited em runtime ou rota de conteúdo voltada ao Player, no formato de documento runtime (RuntimeProblem). Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais. | Problema Runtime (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit |
| 500 | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457 em runtime, conteúdo ou rota de probe voltada ao Player, no formato de documento runtime (RuntimeProblem). Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema Runtime (application/problem+json) |