OpenAPI YAMLOpenAPI JSONproblemas YAMLVisão geral da API
Este grupo tem 2 operações, geradas a partir de api/openapi.yaml. Filtre por caminho, ação ou autenticação. Cada endpoint lista suas entradas; expanda-o para ver um modelo de solicitação e os códigos de resposta. Os modelos precisam de seus próprios valores e de um corpo válido conforme o esquema.
Substitua os espaços reservados em maiúsculas pelos seus valores. Para uma solicitação JSON, salve um corpo que corresponda ao esquema em request.json. Exemplos de cookies usam um jar local de cookies de uma sessão autenticada.
Eventos duráveis do projeto
Listar eventos
Lista eventos duráveis do projeto em ordem crescente por sequência.
Paginação é contígua: passe o next_cursor retornado como after para continuar exatamente onde a página parou. next_cursor é o cursor do último evento retornado enquanto eventos mais novos já existem, e nulo no fim do histórico. limit padrão é 50 e aceita 1-200; valor fora desse intervalo é recusado com invalid_request e um membro errors[] nomeando limit.
Paginação por offset não é suportada. source=log lista o log do Player em vez disso: os relatórios de condição enviados pelos Players (runtime.reported) em ordem crescente pelo tempo de recebimento, filtrados por screen_id e severidade em uma janela de até (por padrão as últimas 24 horas, no máximo 31 dias).
Seus cursores são opacos: lg1_ ou ev1_ conforme onde o servidor mantém o log do Player, então devolva o que uma página retornou; um cursor do outro tipo é recusado com invalid_request nomeando o campo. Registros do log do Player não têm sequência, não estão em GET /stream/project e não são entregues a webhooks.
Um registro é reconhecido quando a fila de log do Player o aceita e é mantido para a retenção de eventos do projeto. Uma consulta com o último cursor e a janela padrão segue o log. Registros de log do Player não estão na lista padrão (source=project). from e to são recusados com invalid_request a menos que source seja log.
A lista do projeto aceita screen_id, playlist_id e application_id para ler os eventos de uma tela, playlist ou aplicativo, todos limitados ao projeto da credencial (um id nomeia quais eventos ler, nunca de quem): screen_id mantém os eventos cujo recurso é essa tela; playlist_id os eventos cujo recurso é essa playlist mais os eventos que a nomeiam como details.playlist_id (uma tela que a usa); application_id os eventos cujo recurso é esse aplicativo mais os que têm esse id como application_id (seus lançamentos e entradas chave/valor).
Um valor que não é um id do seu tipo é recusado com invalid_request nomeando o campo; playlist_id e application_id são recusados com source=log, cujos registros pertencem só a uma tela.
Ambas as fontes usam resource_id, tipo e severidade (mínimo), combinados entre si, com os filtros de ID e paginação; um registro de log do Player é um registro runtime.reported cujo recurso é sua tela, então um resource_id que não seja essa tela ou um tipo que exclua runtime.reported retorna uma página vazia. before (ou order=desc) mostra os mais recentes primeiro: next_cursor é o cursor do item mais antigo retornado e passado de volta como before para continuar para itens mais antigos.
Sem from, uma página source=log mais recente primeiro alcança além das 24 horas padrão até o registro mais antigo que a retenção de eventos do projeto mantém, no máximo 31 dias abaixo da borda superior da página por requisição. Uma página source=log mais recente primeiro pode conter menos que o limite de registros, até nenhum, com um next_cursor; null ainda a encerra, no fim do log retido.
Um chamador limitado a telas (docs/screen-scope.md) lê um feed filtrado: eventos de telas dentro do seu escopo, das pastas de telas que ele pode ver (as suas próprias, as pastas acima e as de dentro; screen.moved somente quando o destino está dentro do seu escopo), de campanhas, playlists, mídia, aplicativos e cartões, e as revisões playlist_change.
Todo outro evento fica de fora, então uma página pode conter menos eventos que limit, até nenhum, com um next_cursor; continue paginando com ele. source=log precisa de um screen_id dentro do seu escopo. Eventos sobre o próprio projeto não são enviados.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| depois | consulta | opcional | Um cursor de uma resposta anterior: ev1_ para eventos de projeto (e os fluxos de eventos). O log do Player (source=log) pagina com cursores lg1_ ou ev1_ pelo local onde o servidor o mantém; trate-os como opacos e devolva o que uma página retornou. Um cursor de outro tipo é recusado com invalid_request. |
| before | consulta | opcional | Páginas mais recentes primeiro, estritamente mais antigas que este cursor: um next_cursor de uma página mais recente primeiro, ou qualquer cursor de item (ev1_ para eventos de projeto; para source=log o cursor opaco que seus itens carregam). Vazio ou ausente com order=desc começa no item mais recente. |
| ordem | consulta | opcional | asc páginas mais antigas primeiro com after; desc páginas mais novas primeiro com before. before implica desc; order=asc com before é recusado. |
| limite | consulta | opcional | Tamanho da página. Valor fora de 1-200 é recusado com invalid_request e um membro errors[] cujo campo é limit. |
| origem | consulta | opcional | projeto lista os eventos sequenciados do projeto. log lista o log do Player: relatórios de condição do Player (runtime.reported), em ordem crescente pelo tempo de recebimento. |
| resource_id | consulta | opcional | Só itens cujo resource.id é este id (uma tela, playlist, mídia, webhook, agente ou id de aplicativo). Com source=log é a tela do registro. |
| tipo | consulta | opcional | Um tipo de evento exato como playlist.updated, ou um prefixo de família terminando em ponto como playlist. para todo tipo playlist.*. |
| screen_id | consulta | opcional | Só os eventos desta tela: com source=project aqueles cujo recurso é a tela, com source=log seus registros de log do Player. Outro tipo de id é recusado com invalid_request. |
| playlist_id | consulta | opcional | Com source=project, apenas os eventos desta playlist: aqueles cujo recurso é a playlist e aqueles que a nomeiam como details.playlist_id. Recusado com source=log. |
| application_id | consulta | opcional | Com source=project, apenas os eventos deste aplicativo: aqueles cujo recurso é o aplicativo e aqueles cujo recurso o carrega como application_id (suas versões e entradas de chave/valor). Recusado com source=log. |
| gravidade | consulta | opcional | Gravidade mínima: info é todo item, warning mantém avisos e erros, error mantém erros. Ambas as fontes. |
| de | consulta | opcional | Com source=log, o início da janela (inclusivo). Padrão é 24 horas antes de to; uma página mais recente primeiro sem from alcança a retenção de eventos do projeto em vez disso. |
| até | consulta | opcional | Com source=log, o fim da janela (exclusivo). Padrão é agora. A janela tem no máximo 31 dias. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/events'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Eventos duráveis (source=project) ou registros de log do Player (source=log) | EventList (application/json) |
| 403 | outside_screen_scope - o chamador é limitado a telas e a tela, pasta de telas, seletor ou público que a requisição nomeia ou alcança está fora delas (docs/screen-scope.md). Um id fora do escopo e um id que não existe recebem a mesma resposta; errors[0].screen_scope traz o escopo do chamador, e a escrita é recusada por inteiro, nunca restringida. | Problema (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema (application/problem+json) |
Eventos do fluxo
Stream de escuta reproduzível do projeto. Os registros de log do player (runtime.reported) são lidos com GET /api/events?source=log e não estão neste stream. Abrir esta requisição custa 1 crédito, como a inscrição no stream de escuta. Os cabeçalhos de crédito são omitidos. Os eventos faturados seguintes custam 1 crédito cada; screen.*, runtime.*, alert_mute.* e application.event são isentos.
Heartbeats e o preâmbulo de retry nunca são cobrados. stream.cursor e stream.resync_required são faturados. A idempotência de débito é sse-event:<project_id>:<sequence>, então a reconexão e replay são gratuitos. Um evento faturado não pago não é gravado e o stream fecha.
Um stream aberto com uma sessão de dashboard não cobra nada (nem a abertura nem os seus eventos), como as requisições de API do dashboard; ele ainda ocupa um dos slots de stream do projeto. Um chamador limitado a telas (docs/screen-scope.md) recebe o mesmo feed filtrado que GET /api/events: nenhum frame é enviado para um evento descartado e stream.cursor continua avançando a posição.
O escopo é lido quando o stream abre, e a árvore de pastas de novo em um evento de movimentação ou de pasta; um escopo reduzido vale para um stream aberto quando ele se reconecta.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| ScreenRig-Project | cabeçalho | opcional | Obsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token. |
| depois | consulta | opcional | Um cursor de uma resposta anterior: ev1_ para eventos de projeto (e os fluxos de eventos). O log do Player (source=log) pagina com cursores lg1_ ou ev1_ pelo local onde o servidor o mantém; trate-os como opacos e devolva o que uma página retornou. Um cursor de outro tipo é recusado com invalid_request. |
| Last-Event-ID | cabeçalho | opcional | Cursor durável usado quando after está ausente. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/stream/project'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Stream SSE reproduzível. O cursor da consulta tem precedência sobre Last-Event-ID. Cursores inválidos, futuros ou pré-retentivos recebem stream.resync_required no cabeçalho atual e fecham. Sem cabeçalhos ScreenRig-Credits-*. | string (text/event-stream) |
| 402 | Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema (application/problem+json) |
| padrão | Resposta de problema estável RFC 9457. Um 421 server_draining tem Retry-After de 1 segundo, um 500 not_ready ou dependency_unavailable tem 5, e um 500 manifest_degraded tem 60, a menos que o handler defina valor mais específico. | Problema (application/problem+json) |