Referencia API

API de Reproducción e informes

Manifiesto, informes y eventos de tiempo de ejecución

Referencia HTTP. Generada a partir del contrato backend. Explore los endpoints abajo o descargue OpenAPI.

Este grupo tiene 24 operaciones, generadas a partir de api/openapi.yaml. Filtre por ruta, acción o autenticación. Cada endpoint indica sus entradas; despliéguelo para ver una plantilla de solicitud y los códigos de respuesta. Las plantillas necesitan sus propios valores y un cuerpo válido según el esquema.

Reemplace los marcadores en mayúsculas con sus valores. Para una solicitud JSON, guarde un cuerpo que coincida con el esquema en request.json. Los ejemplos de cookies usan un frasco de cookies local de una sesión autenticada.

Manifiesto, informes y eventos de tiempo de ejecución

POST/screen/browser-provisioning/exchanges

Aprovisionamiento de navegador Exchange

Intercambio solo de mismo origen para navegador. Vincula atómicamente el token de un solo uso a exchange_id y establece solo la cookie normal de dispositivo emparejado host-only HttpOnly Secure SameSite=Strict. Android y Qt nunca consumen esta concesión.

Autenticación
ninguno
Cuerpo de la solicitud
BrowserProvisioningExchange
ID de operación
exchangeBrowserProvisioning

Campos del cuerpo de la solicitud

CampoDescripción
provisioning_token (requerido, cadena)patrón: "^[A-Za-z0-9_-]{43}$"
exchange_id (requerido, cadena)patrón: "^xchg_[A-Za-z0-9_-]{43}$"
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/browser-provisioning/exchanges'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Cookie de dispositivo vinculado emitida sin cookie de tiempo de ejecución ni credencial en el cuerpo.BrowserProvisioningCompletion (application/json); encabezados: Cache-Control, Referrer-Policy, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
404

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
410

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
500

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
GET/screen/chrome

Obtener Chrome de ejecución

Stage-chrome para la sesión de ejecución actual. No forma parte del manifiesto de ejecución. La autenticación es la misma cookie de ejecución o ScreenRig-Session que GET /screen/manifest. Cache-Control es privado, no almacenar. banner siempre es nulo.

Autenticación
runtimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
ninguno
ID de operación
getRuntimeChrome
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/chrome'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Chrome de tiempo de ejecuciónRuntimeChrome (application/json); encabezados: Cache-Control
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
GET/screen/manifest

Obtener manifiesto de ejecución

La ruta única del manifiesto de tiempo de ejecución, para cada sesión. schemaVersion es 3. Manifiesto del reproductor resuelto; la proyección es a prueba de fallos, y las páginas y primitivas inválidas se omiten y listan en diagnósticos.

Las páginas de espacios publicitarios se incluyen solo para una sesión emparejada concedida adslot-v1; todas las demás sesiones, incluido un espectador anónimo de pantalla pública, reciben contenido de casa sin página de espacio publicitario. Las claves raíz permanecen en camelCase; las claves de página de espacio publicitario permanecen como id, type, adslot_id y visibilidad opcional en snake_case.

Regla de compatibilidad 4 — 200 con pages [] y diagnostics no vacío es una proyección degradada (el Player mantiene el último estado bueno conocido); 200 con pages [] y sin diagnostics es una asignación vacía intencional (docs/player-compatibility.md §1.4).

A una pantalla suspendida se le sirve pages [] sin diagnostics, con el miembro suspension y una revisión de manifiesto propia, tenga o no una lista de reproducción asignada (§6.9). Una pantalla archivada devuelve el problema screen_archived y no debe actualizar el último estado bueno conocido.

Autenticación
runtimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
ninguno
ID de operación
getRuntimeManifest

Parámetros

NombreEnviar¿Requerido?Descripción
stream_transportsconsultaopcional

Transportes de transmisión compatibles separados por comas (hls,udp-mpegts,rtsp). La omisión proyecta transmisiones a imágenes de respaldo. Solo negociación de renderizado, nunca autorización. Anuncie udp-mpegts solo cuando esté habilitado localmente.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/manifest'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Manifiesto del reproductor resuelto.RuntimeManifest (application/json)
304Manifiesto sin cambiossin cuerpo
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
GET/stream/events

Transmitir eventos en tiempo de ejecución

Autenticación
runtimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
ninguno
ID de operación
streamRuntimeEvents

Parámetros

NombreEnviar¿Requerido?Descripción
despuésconsultaopcional

Un cursor de una respuesta previa: ev1_ para eventos de proyecto (y los flujos de eventos). El registro del Player (source=log) pagina con cursores lg1_ o ev1_ según donde el servidor lo guarda; trátelos como opacos y devuelva el que una página retornó. Un cursor de otro tipo se rechaza con invalid_request.

Last-Event-IDencabezadoopcionalCursor duradero usado cuando after está ausente.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/stream/events'

Respuestas

EstadoSignificadoCuerpo y encabezados
200

SSE duradero con alcance de pantalla. El cursor de consulta tiene prioridad sobre Last-Event-ID; cada evento lleva un id cursor adecuado para reconexión. Servido por el sidecar de flujo desde Valkey (stream-valkey/v1); el flujo no lleva cuadros stream.cursor, y un cursor avanza solo con eventos entregados.

Los cursores inválidos, futuros o pre-retención reciben stream.resync_required en la cabeza actual y se cierran. screen.toast y screen.screenshot_requested son eventos de audiencia en tiempo de ejecución; scan nunca entrega detalles pasados de details.expires_at.

Los bytes de la imagen de la captura de pantalla nunca están en este flujo. screen.archived y screen.unarchived son eventos de audiencia en tiempo de ejecución; no borran credenciales. screen.deleted es un evento de audiencia en tiempo de ejecución entregado cuando la identidad firmada restablecida marca la pantalla. Ningún evento en tiempo de ejecución autoriza borrar la identidad local.

Solo un reinicio firmado exitoso iniciado por una acción local confirmada del player permite la rotación de identidad local. project.suspended y project.resumed son indicios de audiencia en tiempo de ejecución cuando los impactos prepagados restantes llegan a cero o se vuelven positivos.

La audiencia de tiempo de ejecución es una lista blanca (docs/player-compatibility.md §7.1): screen.content_changed, screen.manifest_changed, screen.toast, screen.screenshot_requested, screen.archived, screen.unarchived, screen.deleted, screen.device_credential_revoked, project.suspended, project.resumed, player.reload, que llega a cada sesión de tiempo de ejecución, los comandos por pantalla player.reboot y player.display (docs/player-compatibility.md §6.5), player.play_page (§6.3.1) y player.identify (§6.3.2), nunca entregados después de details.expires_at, y screen.card_data_changed (resource {type: card_data, key}, details {revision} o {deleted: true}), dirigido solo a las pantallas cuyo contenido actual lee esos datos de tarjeta o esa clave de feed.

Ningún otro tipo se publica en la transmisión. Los reproductores ignoran tipos de eventos desconocidos, incluido el tipo de mensaje predeterminado, y nombres de campos desconocidos, y avanzan el cursor desde cada id.

La transmisión se abre con su propio reintento, calculado por conexión entre 3000 y 15000 ms para que las transmisiones caídas juntas no se reconecten juntas; un host en drenaje envía a cada transmisión su propio reintento entre 1000 y 30000 ms.

El marco de problema en banda (evento: problem) no tiene id; sus datos son {code, detail, action?}, donde action está presente cuando el registro define uno, y el flujo se cierra (payment_required establece retry: 60000). El marco fleet player.reload no tiene id y nunca mueve el cursor. Ningún marco lleva más de 64 KiB de datos.

cadena (text/event-stream); encabezados: X-Accel-Buffering
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/reports

Crear informe de ejecución

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
inline
ID de operación
createRuntimeReport
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/reports'

Respuestas

EstadoSignificadoCuerpo y encabezados
202

Aceptado tras persistencia duradera. Un lote de telemetría se acepta o rechaza como unidad. Devuelve 202 solo después de que sus observaciones en bruto son duraderas y luego su marca de agua de flujo se ha movido; devuelve stream_id, sequence, accepted (conteo de informes) y duplicate.

Un lote que cambia el estado más reciente de salud u observación o el espacio de fallo de página, o agrega eventos del proyecto, confirma su marca de agua con ese estado en una escritura de pantalla, y agrega sus eventos en la misma transacción.

Un lote que no cambia ninguno de ellos, como un lote constante de reproducciones e informes de condición, mueve solo su marca de agua, mantenida en Valkey durante 25 horas; mientras Valkey no está disponible o se queda sin memoria, la escritura de pantalla la mantiene en su lugar.

Un lote rechazado (repetición conflictiva, capacidad de flujo completa, autoridad retirada) no almacena nada, excepto un nuevo flujo que pierde el último lugar del flujo de la pantalla ante un nuevo flujo concurrente, que se rechaza después de almacenar sus observaciones en bruto.

Un lote que no fue reconocido debido a un error de servidor o una conexión perdida puede haber almacenado algunas de sus observaciones sin procesar; reproducir los mismos bytes almacena cada observación faltante una vez, nunca almacena una dos veces, y luego reconoce. Una reproducción de un lote reconocido devuelve 202 con duplicado verdadero y no cambia nada.

Una marca de agua mantenida en Valkey puede perderse o retrasarse en un failover, nunca avanzar, por lo que una secuencia más allá de la marca de agua del flujo se acepta como la siguiente del flujo sin rechazo por hueco, y una repetición cuya marca de agua se perdió se acepta de nuevo con duplicate false; sus reproducciones aún se almacenan una vez y los registros del Player se colapsan en sus identidades.

Los informes individuales conservan su respuesta existente.

Un informe de condición en tiempo de ejecución (cualquier otro código de informe, como player.page_skipped) se registra en el log del Player (GET /api/events?source=log), no en los eventos del proyecto, y se reconoce cuando la cola del log del Player lo acepta; no está en el flujo de eventos ni se entrega a webhooks. manifest.activated se confirma antes de esta respuesta y es idempotente para la revisión activa actual. playback.media_started, playback.video_started heredado y playback.application_started agregan de forma duradera una observación autenticada de pantalla (GET /api/playback/plays) antes de esta respuesta; las identidades de ítem, página y manifiesto reportadas no requieren membresía de contenido actual ni autorizan acceso al contenido.

Los conteos diarios, metadatos opcionales y last_used_at de recursos propiedad del proyecto se actualizan por lotes recuperables y pueden retrasarse respecto a la observación en bruto.

Las respuestas ordinarias de inicio de reproducción omiten encabezados opcionales de saldo de créditos. playback.page_failed reemplaza el último espacio de fallo de página de la pantalla y añade un evento duradero solo de proyecto en la misma transacción sin cambiar la revisión de pantalla o manifiesto. manifest.upgrade almacena el único espacio de actualización de manifiesto de última victoria de la pantalla detrás de sus cercas de revisión y añade un evento duradero solo de proyecto en la misma transacción solo cuando cambia el estado derivado; se acepta un informe preactivación obsoleto, superado o posterior a la activación sin cambio, y ningún informe promueve una concesión. application.event añade un evento duradero de proyecto antes de esta respuesta.

sin cuerpo; encabezados: RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
PUT/screen/screenshot

Poner captura de pantalla de ejecución

Sube el WebP fijo pendiente actual para la pantalla de la sesión. La ruta no nombra screen_id; la sesión de tiempo de ejecución emparejada lo vincula. El encabezado ScreenRig-Capture-Id debe ser el capture_id pendiente actual. Content-Type es exactamente image/webp. El cuerpo es WebP sin procesar, no vacío, con un máximo de 2097152 bytes.

El servidor valida la magia RIFF/WEBP, decodifica un fotograma fijo y almacena los bytes subidos sin cambios. WebP animado es invalid_request. capture_id faltante, desconocido, caducado o no actual es resource_conflict. Las sesiones no emparejadas están prohibidas. El crédito prepago restante no es una barrera y estos bytes no se cuentan en used_bytes.

Se reemplaza un espacio por pantalla. screen.screenshot_ready detalla nombre capture_id, bytes, ancho, alto y sha256; nunca incluyen píxeles ni clave de objeto.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
string
ID de operación
putRuntimeScreenshot

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-Capture-Idencabezadorequerido
ScreenRig-Capture-Failureencabezadoopcional

Reportar captura no disponible con un cuerpo vacío. Los Players envían unsupported_surface o capture_failed. Cualquier otro valor no vacío se registra como capture_failed, nunca se rechaza (docs/player-compatibility.md §1.1). Solo la captura pendiente actual puede fallar.

No se almacenan píxeles ni imágenes parciales; screen.screenshot_failed contiene esta razón y el estado se vuelve no disponible.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'ScreenRig-Capture-Id: VALUE' --header 'Content-Type: image/webp' --data-binary '@request.bin' 'https://play.screenrig.ai/screen/screenshot'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Imagen fija WebP almacenada como la ranura actual.sin cuerpo; encabezados: Cache-Control
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/adslots/resolve

Resolver espacios publicitarios

Resuelve hasta 16 ocurrencias de página verificadas por el servidor. Un candidato nuevo con posible llenado se valora atómicamente, se verifica el presupuesto y se reserva contra la barrera de precios de la campaña. Un candidato nuevo sin posible llenado devuelve vacío sin crear una decisión o reserva.

Ninguna campaña elegible o asequible es un resultado vacío exitoso sin contenido ni débito; nunca es un desafío de pago. Los resultados vacíos pueden incluir una pista de no llenado con reloj de servidor que dura como máximo 60 segundos y termina en un límite de elegibilidad conocido anterior.

Las pistas se aplican a la misma pantalla, manifiesto, página, espacio y contexto de elegibilidad; nunca autorizan la reproducción. Una renovación de arrendamiento reutiliza la misma reserva y no avanza la rotación, y se niega mientras la campaña requiera reaceptación del precio.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeAdslotResolveRequest
ID de operación
resolveAdslots

Campos del cuerpo de la solicitud

CampoDescripción
manifest_revision (requerido, cadena)
candidatos (requerido, arreglo)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/adslots/resolve'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Por resultados llenos o vacíos por candidato en orden de solicitud.RuntimeAdslotResolveResponse (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400invalid_request - tamaño del lote, claves duplicadas o ventana de pronóstico inválida.RuntimeProblem (application/problem+json)
409resource_conflict: un candidato se reutilizó con un hash de solicitud diferente.RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/adslots/events

Reportar eventos de espacio publicitario

Evidencia de reproducción autenticada. Los eventos se deduplican por pantalla e ID de evento. Una finalización válida consume su reserva retenida una vez al precio y tarifa reservados, acredita al vendedor bruto y debita la tarifa de servicio en una sola transacción. Un evento terminal no reproducción confirmado libera la retención una vez.

La finalización recibida después de la liberación no es facturable y nunca debita créditos nuevos. La finalización antes del inicio se mantiene pendiente de conciliación.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeAdslotEventBatch
ID de operación
reportAdslotEvents

Campos del cuerpo de la solicitud

CampoDescripción
eventos (requerido, arreglo)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/adslots/events'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Por resultados de eventos.RuntimeAdslotEventResponse (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
PUT/screen/observation

Poner observación de ejecución

Informa la superficie de reproducción que el reproductor emparejado usó para el último resolveLayout. La ruta no nombra screen_id; la sesión de tiempo de ejecución emparejada lo vincula. El cuerpo es JSON ScreenObservation: observed_at más una a doce superficies; un Player que maneja un muro de video informa una por salida, id = el nombre de la salida.

Los números son píxeles independientes del dispositivo y la relación de píxeles del dispositivo junto a esa superficie de diseño, no el tamaño del autor del lienzo ni el tamaño codificado de la captura de pantalla. Solo se verifican en rango y nunca se prueban como hardware o autorización. La última escritura gana y reemplaza todo el arreglo de superficies.

Una tupla de superficies idéntica (id, ancho, alto, pixel_ratio, presentación, rotación) no emite screen.surface_changed; un observed_at posterior en la misma tupla se ignora. Las sesiones públicas no emparejadas y anónimas están prohibidas. Las cookies nativas son rechazadas; el navegador no debe adoptar perfiles de encabezado. El crédito prepago restante no es una barrera.

La observación está ausente en GET /api/screens hasta el primer informe aceptado. ScreenPatch no puede escribirla. Una pantalla archivada responde con 409 screen_archived. Máximo 12 informes por minuto por sesión emparejada (runtime-observation): un 429 significa reintentar no antes de Retry-After.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeObservationWrite
ID de operación
putRuntimeObservation

Campos del cuerpo de la solicitud

CampoDescripción
observed_at (requerido, cadena)formato: "date-time"
superficies (requerido, arreglo)De una a doce superficies; un Player que controla un muro de video informa una por salida, id = el nombre de la salida.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/observation'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Observación almacenada como el arreglo actual de superficies.sin cuerpo; encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
PUT/screen/health

Poner estado de ejecución

Informa sobre la salud del dispositivo para la pantalla de la sesión emparejada. Envíe uno al inicio de la sesión y cada quince minutos, y uno inmediato cuando cambie la conexión o la energía del monitor.

Cada miembro es opcional y el cuerpo se lee con tolerancia (docs/player-compatibility.md §1.1): los miembros desconocidos se ignoran, un valor fuera de rango se descarta, y un display.power o network.kind desconocido se lee como desconocido; solo un miembro con tipo JSON incorrecto es 400 (un número fuera del rango float64 está fuera de rango: ese miembro se descarta).

El valor almacenado es el ScreenHealth saneado más server reported_at, reemplazando el informe anterior. Como máximo un informe por pantalla por minuto (runtime-health): un 429 significa descartar este informe y enviar el siguiente según el programa, nunca reintentar antes de Retry-After (al menos 1 segundo).

Un error 400 o de servidor no consume el minuto; todas las sesiones de una pantalla lo comparten. Requiere una sesión emparejada con health.write (una sesión emparejada creada antes de que existiera health.write es admitida por runtime.report); las sesiones no emparejadas y anónimas están prohibidas y una pantalla archivada responde 409 screen_archived.

Un informe de una sesión más antigua que la generación actual de acceso al contenido de la pantalla es rechazado con 401. Archivar y recuperar pantalla limpia Screen.health. Un backend sin esta ruta responde 404: continuar reproduciendo y dejar de reportar salud para esa sesión. Las transiciones agregan screen.health_changed solo para el proyecto (nunca en GET /screen/events).

La salud nunca es autorización.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeHealthWrite
ID de operación
putRuntimeHealth

Campos del cuerpo de la solicitud

CampoDescripción
uptime_s (opcional, entero)Segundos desde que el dispositivo (SO) arrancó. mínimo: 0
app_uptime_s (opcional, entero)Segundos desde que el proceso Player comenzó. mínimo: 0
memory (opcional, objeto)
cpu (opcional, objeto)
temperature_c (opcional, número)Temperatura del SoC o panel en grados Celsius. mínimo: -50 máximo: 150
display (opcional, objeto)
red (opcional, objeto)
battery (opcional, objeto)La batería del dispositivo. Envíela solo cuando el dispositivo tenga una (BatteryManager de Android con EXTRA_PRESENT). Un cambio de fuente (enchufado o desenchufado) se informa de inmediato, como un cambio de monitor.
crashes_24h (opcional, entero)Fallos del Player en las últimas 24 horas continuas. mínimo: 0 máximo: 1000000
renderer_restarts_24h (opcional, entero)Reinicios de renderer o vista web en las últimas 24 horas móviles. mínimo: 0 máximo: 1000000
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/health'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Informe de salud almacenado.sin cuerpo; encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
PUT/screen/storage

Poner almacenamiento de ejecución

Informa sobre el almacenamiento nativo del reproductor, el plan de almacenamiento del reproductor y la contabilidad de bytes transferidos. La ruta no nombra screen_id; la sesión de tiempo de ejecución emparejada lo vincula. Las sesiones no emparejadas y anónimas están prohibidas. Se rechazan las cookies nativas; el navegador no debe adoptar perfiles de encabezado. Se ignoran miembros desconocidos (docs/player-compatibility.md §1.1).

El valor almacenado es el ScreenStorage del proyecto saneado más server received_at, no el cuerpo sin procesar. manifest_revision debe ser la revisión deseada o activa de la pantalla, o la respuesta es 409 resource_conflict y no se almacena nada. Los ids de página excluidos deben existir en esa revisión.

Una clase de ajuste idéntica no emite screen.storage_shortfall ni screen.storage_shortfall_cleared. Esos eventos son solo para el proyecto y no se entregan en GET /screen/events. El almacenamiento nunca es autorización ni admisión. ScreenPatch no puede escribirlo. Un informe con más de 24 horas desde received_at está obsoleto para los consumidores.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeStorageWrite
ID de operación
putRuntimeStorage

Campos del cuerpo de la solicitud

CampoDescripción
observed_at (requerido, cadena)formato: "date-time"
volumen (requerido, ScreenStorageVolume)
cache (requerido, ScreenStorageCache)
durabilidad (requerido, cadena)Permitido: "durable", "purgeable"
plan (requerido, ScreenStoragePlan)
transfer_24h (requerido, ScreenStorageTransfer)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/storage'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Informe de almacenamiento guardado.sin cuerpo; encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409resource_conflict: manifest_revision no es la revisión deseada o activa de la pantalla. El informe no se almacena.RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
PUT/screen/status

Poner estado de tiempo de ejecución

Informa la ficha de estado que el Player emparejado muestra en pantalla: la condición de screenrig.overlay/v1 que gana su rango, o null cuando no se muestra ninguna ficha. La ruta no nombra screen_id; la sesión de tiempo de ejecución emparejada lo vincula.

El cuerpo es JSON RuntimeStatusWrite {observed_at, chip}; se ignoran miembros desconocidos (docs/player-compatibility.md §1.1). chip debe ser el id de una condición del catálogo del backend (packages/overlay/overlay.json, el archivo que los Players incorporan); el aviso de actualización y los mensajes de inicio no son fichas.

Si falta chip, el valor es de otro tipo o el id no figura en el catálogo, la respuesta es 400 invalid_request con errors[0].field chip, y no se guarda nada. El valor almacenado es ScreenStatus del proyecto: level e icon son los del catálogo para chip, nunca los del Player, y received_at es la hora de recepción del servidor. La última escritura gana y reemplaza todo el estado.

Un informe que no cambia chip, level ni icon es una operación nula: conserva los observed_at y received_at almacenados y no agrega nada. Un cambio agrega screen.status_changed solo para el proyecto, con details {chip, level, icon}, nunca entregado en GET /screen/events. Las sesiones públicas no emparejadas y anónimas están prohibidas.

Las cookies nativas son rechazadas; el navegador no debe adoptar perfiles de encabezado. El crédito prepago restante no es una barrera. El estado está ausente en GET /api/screens hasta el primer informe aceptado y se borra al restablecer la identidad, desvincular y archivar. ScreenPatch no puede escribirlo. Una pantalla archivada responde con 409 screen_archived.

Máximo 12 informes por minuto por sesión emparejada (runtime-status): un 429 significa reintentar no antes de Retry-After. Un backend sin esta ruta responde 404: continuar reproduciendo y dejar de reportar el estado de esa sesión. El estado nunca es autorización ni admisión. Las reglas del Player están en docs/player-compatibility.md §9.5.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeStatusWrite
ID de operación
putRuntimeStatus

Campos del cuerpo de la solicitud

CampoDescripción
observed_at (requerido, cadena)Reloj del Player cuando el chip cambió por última vez o cuando inició la sesión. formato: "date-time"
chip (requerido, en línea)

El id de la condición de screenrig.overlay/v1 que muestra el Player (conditions[].id en packages/overlay/overlay.json), o null cuando no muestra ninguna ficha, como en una superficie suprimida (fatal, starting, pairing). Requerido. Se rechaza un id que el catálogo del backend no lista.

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/status'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Estado almacenado o sin cambios.sin cuerpo; encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
PUT/screen/screen-label

Poner etiqueta de pantalla de ejecución

Renombra la pantalla vinculada a la sesión de ejecución emparejada. Es el mismo cambio que PATCH /api/screens/{id} name: el servidor quita los espacios al inicio y al final de screen_label y requiere de 1 a 120 caracteres sin caracteres de control, de lo contrario invalid_request.

El cambio de nombre registra los mismos eventos de pantalla y, en una pantalla asignada, cambia la etiqueta screen_label del manifiesto y emite screen.manifest_changed al Player. La ruta y el cuerpo no nombran screen_id; la sesión de tiempo de ejecución emparejada lo vincula. No hay If-Match ni Idempotency-Key; gana la última escritura. La autenticación es la cookie de tiempo de ejecución o ScreenRig-Session, como GET /screen/chrome.

Las sesiones anónimas y no emparejadas no están autorizadas. Una pantalla archivada es screen_archived. El crédito prepago restante no es una barrera. Un Player que recibe 404 trata la ruta como no soportada y mantiene el nombre localmente (docs/player-compatibility.md §2.5).

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeScreenLabelWrite
ID de operación
putRuntimeScreenLabel

Campos del cuerpo de la solicitud

CampoDescripción
screen_label (requerido, cadena)minLength: 1
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/screen-label'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Pantalla renombrada. screen_label es el nombre almacenado.RuntimeScreenLabel (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/commands/{command_id}/result

Publicar resultado de comando de tiempo de ejecución

Un Player emparejado informa cómo terminó un comando que se le envió (docs/player-compatibility.md §6.5.1): done o failed, con un token de causa estático y un detalle breve opcional. El comando pasa a done o failed en Screen.commands con done_at, cause y detail, y se añade screen.command_result, solo del proyecto.

Solo un comando sent de la pantalla de la sesión admite un resultado: un id que la pantalla no lista, o uno que no está sent, es 404 not_found y el Player descarta el informe. Una repetición exacta del resultado registrado es 202 y no cambia nada; un resultado distinto para un comando terminado es 409 resource_conflict. Un resultado failed requiere cause.

La ruta y el cuerpo no nombran la pantalla; la sesión de tiempo de ejecución emparejada la vincula. La autenticación es la cookie de tiempo de ejecución o ScreenRig-Session. Las sesiones anónimas y no emparejadas son unauthorized; una pantalla archivada es screen_archived. El crédito prepagado restante no es una barrera.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeCommandResultWrite
ID de operación
postRuntimeCommandResult

Parámetros

NombreEnviar¿Requerido?Descripción
command_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
state (requerido, cadena)Permitidos: "done", "failed"
cause (opcional, cadena)

Un token estático: obligatorio con failed (clear_failed, restart_failed, update_check_failed, download_failed, install_failed, no_update_channel), opcional con done (cleared, restarted, up_to_date, updated). pattern: "^[a-z0-9_]{1,40}$"

detail (opcional, cadena)Una frase corta sin caracteres de control; nunca una URL con credenciales, un token ni una ruta privada. maxLength: 200
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/commands/COMMAND_ID/result'

Respuestas

EstadoSignificadoCuerpo y encabezados
202Almacenado, o una repetición exacta del resultado almacenado.sin cuerpo; encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
404

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/live/{live_id}/join

Unirse a la sesión en vivo

Un Player que recibió player.live_publish se une a la sesión (docs/player-compatibility.md §6.10.2): obtiene ice_servers TURN de corta duración, el arrendamiento, los límites de vídeo que puede publicar y el período del latido. El live_id debe ser la sesión actual de la pantalla; si no, 410 live_session_ended (dejar de publicar y seguir reproduciendo).

La autenticación es la cookie de ejecución emparejada o ScreenRig-Session.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeLiveJoinRequest
ID de operación
joinRuntimeLive

Parámetros

NombreEnviar¿Requerido?Descripción
live_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/live/LIVE_ID/join'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La sesión en la que publica el Player.RuntimeLiveJoin (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
410

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/live/{live_id}/offer

Oferta de la sesión en vivo

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

Ninguna sección m de vídeo, o dos, es invalid_request. Un fallo del relé es dependency_unavailable. 410 live_session_ended cuando el live_id no es la sesión actual de la pantalla.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeLiveOffer
ID de operación
offerRuntimeLive

Parámetros

NombreEnviar¿Requerido?Descripción
live_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
sdp (requerido, cadena)Una sola sección m de vídeo sendonly; recopilación ICE completa o de dos segundos.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/live/LIVE_ID/offer'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La respuesta del relé.RuntimeLiveOffer (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
410

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/live/{live_id}/heartbeat

Latido de la sesión en vivo

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

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeLiveHeartbeat
ID de operación
heartbeatRuntimeLive

Parámetros

NombreEnviar¿Requerido?Descripción
live_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
connection (requerido, cadena)Permitidos: "new", "connecting", "connected", "disconnected", "failed", "closed"
video (opcional, object)
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/live/LIVE_ID/heartbeat'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La sesión está en vivo; lease_until y max_until son sus límites.RuntimeLiveHeartbeatAnswer (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
410

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/live/{live_id}/stopped

Sesión en vivo detenida

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

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeLiveStopped
ID de operación
stoppedRuntimeLive

Parámetros

NombreEnviar¿Requerido?Descripción
live_idrutarequerido

Campos del cuerpo de la solicitud

CampoDescripción
razón (requerida, cadena)

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

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/live/LIVE_ID/stopped'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Registrado.sin cuerpo; encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
410

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
GET/screen/playlists

Obtener listas de reproducción de pantalla de ejecución

Enumera las listas de reproducción que el menú de configuración en el dispositivo del Player vinculado ofrece para la pantalla: las listas de reproducción activas del proyecto de la pantalla que tienen una versión aprobada, ordenadas alfabéticamente por nombre sin distinguir mayúsculas, luego por id. Se devuelven como máximo 500; hay más si el proyecto tiene más listas de reproducción.

La sesión de tiempo de ejecución emparejada vincula el proyecto; la ruta no nombra ninguno. La autenticación es la cookie de tiempo de ejecución o ScreenRig-Session, como GET /screen/chrome. Las sesiones anónimas y no emparejadas no están autorizadas. Una pantalla archivada es screen_archived. Cache-Control es private, no-store.

Un Player que recibe 404 trata la ruta como no compatible y la reporta como cualquier otra falla al cargar la lista (docs/player-compatibility.md §2.6).

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
ninguno
ID de operación
getRuntimeScreenPlaylists
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/playlists'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Las listas de reproducción asignables del proyecto.RuntimeScreenPlaylists (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
PUT/screen/playlist

Poner lista de reproducción de pantalla de ejecución

Asigna una lista de reproducción a la pantalla vinculada a la sesión de tiempo de ejecución emparejada. Es la misma asignación que PATCH /api/screens/{id} playlist_id, hecha por la persona en el dispositivo: no se abre revisión.

La lista de reproducción debe pertenecer al proyecto de la pantalla y tener una versión aprobada (de lo contrario playlist_not_approved); una lista de reproducción que no existe en el proyecto es invalid_request. La asignación registra los mismos eventos de pantalla y emite screen.manifest_changed al Player.

Establece la playlist asignada a la pantalla; una toma activa o una entrada de programación de playlist coincidente aún decide qué se reproduce. Path y body no nombran screen_id; la sesión runtime emparejada lo vincula. Sin If-Match ni Idempotency-Key; gana la última escritura. Auth es la cookie runtime o ScreenRig-Session, como GET /screen/chrome.

Las sesiones anónimas y no emparejadas no están autorizadas. Una pantalla archivada es screen_archived. Un Player que recibe 404 trata la ruta como no soportada y la reporta como cualquier otro fallo al cambiar la playlist (docs/player-compatibility.md §2.6).

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
RuntimeScreenPlaylistWrite
ID de operación
putRuntimeScreenPlaylist

Campos del cuerpo de la solicitud

CampoDescripción
playlist_id (requerido, cadena)minLength: 1
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request PUT --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://play.screenrig.ai/screen/playlist'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Lista de reproducción asignada. playlist_id es la lista de reproducción asignada a la pantalla.RuntimeScreenPlaylist (application/json); encabezados: Cache-Control, RateLimit-Policy, RateLimit
400

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/unpair

Desemparejar Runtime

Desvinculación solo con cookie. Archiva una pantalla vinculada por cookie que no tiene inscripción de clave pública del player, con archive_reason device_unpair. La credencial del dispositivo permanece vinculada: un navegador que aún la posee crea una sesión archivada (pantalla oscura), y desarchivar la reanuda sin necesidad de volver a vincular (docs/player-compatibility.md §5.1).

Una pantalla que ya está archivada, o ya no existe, es éxito. Las pantallas inscritas por identidad devuelven screen_archive_required; esos players solo se reinician vía POST /screen/native/identity/reset. La ruta y el cuerpo no nombran screen_id; la sesión de tiempo de ejecución emparejada lo vincula. Sin If-Match ni Idempotency-Key. El navegador 204 expira las cookies de runtime, dispositivo y host de emparejamiento.

Las llamadas nativas vinculadas a identidad nunca devuelven 204. Las sesiones anónimas o no vinculadas están prohibidas. El crédito prepago restante no es una barrera.

Autenticación
pairedRuntimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
ninguno
ID de operación
unpairRuntime
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/unpair'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Pantalla vinculada a cookie archivada con su credencial mantenida. Cookies de vinculación de navegador expiradas.sin cuerpo; encabezados: Cache-Control, RateLimit-Policy, RateLimit
401

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
403

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
409

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
429

Problema estable rate_limited en una ruta de ejecución o contenido orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Reintente solo después del intervalo Retry-After autorizado. Las denegaciones de ventana fija también incluyen la política RateLimit-Policy y los miembros RateLimit aplicables; las denegaciones por concurrencia y presupuesto de bytes omiten esas divulgaciones opcionales.

RuntimeProblem (application/problem+json); encabezados: Retry-After, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/manifests/{manifest_revision}/releases/{release_id}/launch

Lanzar versión de aplicación

Emite el ticket de un solo uso para una versión de aplicación del manifiesto actual de la pantalla. launch_url es la página de índice del host de la versión con ticket primero y luego los params de la aplicación (los params de la primitiva, rellenados con los datos de esta pantalla, codificados en porcentaje, con un máximo de 4096 caracteres en conjunto), de modo que la aplicación los lee desde location.search.

Solo el Player web y los Players que lo ejecutan llaman a esta ruta; los Players Qt, Android, Apple y Windows cargan la aplicación desde su paquete local y no reciben params. El host de la versión los pasa a la página y añade su propio marcador de política.

Una pantalla a la que le falta un valor que lee un parámetro, o cuyos valores forman más del límite, no tiene esa aplicación en su manifiesto (diagnóstico screen_fact_missing o screen_fact_invalid), y se rechaza un lanzamiento para su versión.

Los params no están vinculados al ticket: una aplicación los trata como indicaciones no confiables y lee la identidad de la pantalla desde context.screen_id.

Autenticación
runtimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
ninguno
ID de operación
launchApplicationRelease

Parámetros

NombreEnviar¿Requerido?Descripción
manifest_revisionrutarequerido
release_idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/manifests/MANIFEST_REVISION/releases/RELEASE_ID/launch'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Ticket de lanzamiento de host de lanzamiento exacto de un solo uso de 30 segundosReleaseLaunch (application/json); encabezados: Referrer-Policy, RateLimit-Policy, RateLimit
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
POST/screen/manifests/{manifest_revision}/selectors/resolve

Resolver todos los selectores dinámicos de medios para un ciclo de lista de reproducción.

Utiliza la lista de reproducción asignada a la pantalla autenticada y su revisión de manifiesto. Devuelve una instantánea fija en orden de nombre de archivo; los Players mantienen el estado del cursor y la reproducción aleatoria entre ciclos. Las cargas y cambios de etiquetas nunca reescriben este manifiesto. Las coincidencias vacías son válidas.

Los medios seleccionados están autorizados por la concesión de tiempo de ejecución de la pantalla independientemente de la definición inmutable del manifiesto.

Autenticación
runtimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
ninguno
ID de operación
resolveRuntimeSelectors

Parámetros

NombreEnviar¿Requerido?Descripción
manifest_revisionrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/screen/manifests/MANIFEST_REVISION/selectors/resolve'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Instantánea del ciclo resuelto, incluyendo metadatos del ítem y plazos de seguridad media_end.RuntimeSelectorSnapshot (application/json)
401Sesión de tiempo de ejecución inválida o expiradaRuntimeProblem (application/problem+json)
403Capacidad de tiempo de ejecución denegadaRuntimeProblem (application/problem+json)
503Proyección de manifiesto pendiente o instantánea del selector degradada; mantenga el ciclo actual y reintenteRuntimeProblem (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)
GET/screen/card-data/{key}

Obtener datos de tarjeta de ejecución

Devuelve un documento de datos de tarjeta o de feed: la clave de datos de tarjeta o feed de un primitivo de tarjeta en el manifiesto actual de la pantalla, o la clave de la condición visibility.data de una página. Una clave solo es legible mientras una concesión deseada, activa o de gracia de transición de la pantalla de la sesión la lista; conocer una clave nunca es suficiente.

Las claves de feed comienzan con feed: y leen el espacio de nombres del feed del sistema (screenrig.weather/v1 y otros esquemas de feed), igual que las claves de condiciones del clima que comienzan con feed.conditions.v1: (la condición {screen.weather} de una página, completada en el manifiesto de cada pantalla); cada otra clave lee los datos de la tarjeta del proyecto de la pantalla. El cuerpo es el documento en sí.

ETag es el sha256 de sus bytes y If-None-Match responde 304; mantenga el último documento válido para reproducción sin conexión y vuelva a obtenerlo en screen.card_data_changed para la clave. 404 significa que no hay documento almacenado aún; mantenga la tarjeta oculta.

Autenticación
runtimeCookie O nativeSessionAuthorization
Cuerpo de la solicitud
ninguno
ID de operación
getRuntimeCardData

Parámetros

NombreEnviar¿Requerido?Descripción
keyrutarequerido
If-None-Matchencabezadoopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://play.screenrig.ai/screen/card-data/KEY'

Respuestas

EstadoSignificadoCuerpo y encabezados
200El documentoobjeto (application/json); encabezados: ETag
304No modificadosin cuerpo
predeterminado

Respuesta estable RFC 9457 a problemas en una ruta de ejecución, contenido o sonda orientada al reproductor, en la forma del documento de ejecución (RuntimeProblem). Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

RuntimeProblem (application/problem+json)