OpenAPI YAMLOpenAPI JSONproblemas YAMLResumen de la API
Este grupo tiene 2 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.
Eventos duraderos del proyecto
Listar eventos
Lista eventos duraderos del proyecto en orden ascendente por secuencia.
La paginación es contigua: pase el next_cursor devuelto como after para continuar exactamente donde la página se detuvo. next_cursor es el cursor del último evento devuelto mientras ya existen eventos más nuevos, y null al final del historial. limit por defecto es 50 y acepta 1-200; un valor fuera de ese rango se rechaza con invalid_request y un miembro errors[] nombrando limit.
No se admite paginación por desplazamiento. source=log lista el registro del Player en su lugar: los informes de condición que envían los Players (runtime.reported) en orden ascendente por hora de recepción, filtrados por screen_id y severidad en una ventana desde hasta (por defecto las últimas 24 horas, máximo 31 días).
Sus cursores son opacos: lg1_ o ev1_ según dónde el servidor guarda el registro del Player, así que devuelva el que una página retornó; un cursor del otro tipo se rechaza con invalid_request nombrando el campo. Los registros del Player no tienen secuencia, no están en GET /stream/project y no se entregan a webhooks.
Un registro se reconoce cuando la cola del log del Player lo acepta y se mantiene para la retención de eventos del proyecto. Una consulta con el último cursor y la ventana predeterminada sigue al log. Los registros del log del Player no están en la lista predeterminada (source=project). from y to se rechazan con invalid_request a menos que source sea log.
La lista de proyectos toma screen_id, playlist_id y application_id para leer los eventos de una pantalla, lista de reproducción o aplicación, todos con alcance al proyecto de la credencial (un id indica qué eventos leer, nunca de quién): screen_id mantiene los eventos cuyo recurso es esa pantalla; playlist_id los eventos cuyo recurso es esa lista de reproducción más los eventos que la nombran como details.playlist_id (una pantalla que la toma); application_id los eventos cuyo recurso es esa aplicación más los que llevan esa aplicación como application_id (sus versiones y entradas clave/valor).
Un valor que no es un id de su tipo se rechaza con invalid_request nombrando el campo; playlist_id y application_id se rechazan con source=log, cuyos registros pertenecen solo a una pantalla.
Ambas fuentes toman resource_id, tipo y severidad (como mínimo), combinados entre sí, con los filtros de id y con paginación; un registro de log de Player es un registro runtime.reported cuyo recurso es su pantalla, por lo que un resource_id que no sea esa pantalla o un tipo que excluya runtime.reported responde con una página vacía. Las páginas before (o order=desc) muestran primero las más nuevas: next_cursor es entonces el cursor del ítem más antiguo devuelto y se pasa de nuevo como before para continuar hacia ítems más antiguos.
Sin from, una página newest-first source=log alcanza más allá de las 24 horas predeterminadas hasta el registro más antiguo que la retención de eventos del proyecto conserva, como máximo 31 días por debajo del límite superior de la página por solicitud. Una página newest-first source=log puede contener menos registros que el límite, incluso ninguno, con un next_cursor; null aún la termina, al final del registro retenido.
Un llamador limitado a pantallas (docs/screen-scope.md) lee un feed filtrado: eventos de pantallas dentro de su alcance, de las carpetas de pantallas que puede ver (las suyas, las que están encima y las que están dentro; screen.moved solo cuando el destino está dentro de su alcance), de campañas, listas de reproducción, medios, aplicaciones y tarjetas, y revisiones playlist_change.
Se omite cualquier otro evento, así que una página puede contener menos eventos que limit, incluso ninguno, con un next_cursor; siga paginando con él. source=log necesita un screen_id dentro de su alcance. No se envían los eventos sobre el propio proyecto.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| después | consulta | opcional | 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. |
| before | consulta | opcional | Páginas más nuevas primero, estrictamente más antiguas que este cursor: un next_cursor de una página más nueva primero, o cualquier cursor de elemento (ev1_ para eventos de proyecto; para source=log el cursor opaco que llevan sus elementos). Vacío o ausente con order=desc comienza en el elemento más nuevo. |
| orden | consulta | opcional | asc páginas más antiguas primero con after; desc páginas más nuevas primero con before. before implica desc; order=asc con before es rechazado. |
| límite | consulta | opcional | Tamaño de página. Un valor fuera de 1-200 se rechaza con invalid_request y un miembro errors[] cuyo campo es limit. |
| origen | consulta | opcional | el proyecto lista los eventos secuenciados del proyecto. el registro lista el registro del Player: informes de condición del Player (runtime.reported), en orden ascendente por hora de recepción. |
| resource_id | consulta | opcional | Solo elementos cuyo resource.id es este id (una pantalla, lista de reproducción, multimedia, webhook, agente o id de aplicación). Con source=log es la pantalla del registro. |
| tipo | consulta | opcional | Un tipo de evento exacto como playlist.updated, o un prefijo de familia que termina en punto como playlist. para cada tipo playlist.*. |
| screen_id | consulta | opcional | Solo los eventos de esta pantalla: con source=project aquellos cuyo recurso es la pantalla, con source=log sus registros Player. Otro tipo de id es rechazado con invalid_request. |
| playlist_id | consulta | opcional | Con source=project, solo los eventos de esta lista de reproducción: aquellos cuyo recurso es la lista de reproducción y aquellos que la nombran como details.playlist_id. Rechazado con source=log. |
| application_id | consulta | opcional | Con source=project, solo los eventos de esta aplicación: aquellos cuyo recurso es la aplicación y aquellos cuyo recurso la lleva como application_id (sus lanzamientos y entradas clave/valor). Rechazado con source=log. |
| gravedad | consulta | opcional | Severidad mínima: info incluye todos los ítems, warning mantiene advertencias y errores, error mantiene errores. Ambas fuentes. |
| desde | consulta | opcional | Con source=log, el inicio de la ventana (inclusivo). Por defecto es 24 horas antes de to; una página newest-first sin from retrocede hasta la retención de eventos del proyecto. |
| a | consulta | opcional | Con source=log, el fin de la ventana (exclusivo). Por defecto es ahora. La ventana es como máximo de 31 días. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/events'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Eventos duraderos (source=project) o registros de log del Player (source=log) | EventList (application/json) |
| 403 | outside_screen_scope - el llamador está limitado a pantallas y la pantalla, carpeta de pantallas, selector o audiencia que nombra o alcanza la solicitud está fuera de ellas (docs/screen-scope.md). Un id fuera del alcance y un id que no existe reciben la misma respuesta; errors[0].screen_scope lleva el alcance del llamador, y la escritura se rechaza por completo, nunca se acota. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. 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. | Problema (application/problem+json) |
Transmitir eventos
Flujo de escucha del proyecto reproducible. Los registros del log del reproductor (runtime.reported) se leen con GET /api/events?source=log y no están en este flujo. Abrir esta solicitud cuesta 1 crédito como la suscripción de escucha. Se omiten los encabezados de crédito. Los eventos facturados posteriores cuestan 1 crédito cada uno; screen.*, runtime.*, alert_mute.* y application.event están exentos.
Los latidos y el preámbulo de reintento nunca se cobran. stream.cursor y stream.resync_required se facturan. La idempotencia de débito es sse-event:<project_id>:<sequence>, por lo que la reconexión y repetición es gratuita. Un evento facturado no pagado no se escribe y el stream se cierra.
Una transmisión abierta con una sesión del panel no factura nada (ni la apertura ni sus eventos), igual que las solicitudes API del panel; aun así ocupa una de las plazas de transmisión del proyecto. Un llamador limitado a pantallas (docs/screen-scope.md) recibe el mismo feed filtrado que GET /api/events: no se envía ningún frame por un evento descartado y stream.cursor sigue moviendo la posición.
El alcance se lee cuando se abre la transmisión, y el árbol de carpetas otra vez ante un movimiento o un evento de carpeta; un alcance reducido se aplica a una transmisión abierta cuando se reconecta.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| después | consulta | opcional | 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-ID | encabezado | opcional | Cursor duradero usado cuando after está ausente. |
Plantilla y respuestas de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/stream/project'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Transmisión SSE reproducible. El cursor de consulta tiene prioridad sobre Last-Event-ID. Los cursores inválidos, futuros o previos a la retención reciben stream.resync_required en la cabeza actual y cierran. Sin encabezados ScreenRig-Credits-*. | cadena (text/event-stream) |
| 402 | Respuesta estable RFC 9457 a problemas. 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. | Problema (application/problem+json) |
| predeterminado | Respuesta estable RFC 9457 a problemas. 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. | Problema (application/problem+json) |