OpenAPI YAMLOpenAPI JSONproblemas YAMLVisão geral da API
Este grupo tem 16 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.
Playlists
Listar playlists V2
Lista de playlists versionadas que pode expor páginas de adslot. A lista v1 recusa uma página que contém um documento com anúncios com version_required em vez de filtrá-la.
Páginas como listPlaylists, mais recentes primeiro, no máximo 200 por página e menos quando uma página contém 8 MiB de playlists armazenadas. next_cursor é a posição da última linha retornada enquanto houver mais linhas; passe-o como after, com os mesmos filtros, para a próxima página. next_cursor é nulo na última página. library=true lista, em vez disso, as playlists da Biblioteca da organização (somente leitura; programe-as ou crie a partir dos modelos delas).
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. |
| library | consulta | opcional | true lista o projeto Biblioteca da organização em vez deste projeto: os itens dele são somente leitura aqui e trazem library true. Uma organização sem Biblioteca, ou o próprio projeto Biblioteca, não lista nada com true. |
| depois | consulta | opcional | next_cursor da página anterior da mesma lista, com os mesmos filtros. Omitido começa na linha mais recente. Um valor que não seja esse cursor é invalid_request. |
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/playlists'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Playlists com a união da página de adslot. | PlaylistV2List (application/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) |
Criar playlist V2
Entrada de criação para a união de páginas de adslot. No máximo 16 páginas de adslot, pelo menos uma página comum sem visibilidade, e o reuso de uma definição de slot em páginas diferentes permanecem verificações do servidor. Resolução de referência e DNS continuam verificações do servidor.
Uma sessão do dashboard (o editor de páginas) cria a playlist no ar, nunca como proposta, atribuída à pessoa, e exige o proprietário do projeto ou um membro que possa aprovar (caso contrário, approver_required); mídia que ela nomeia e que aguarda revisão é media_pending_review (409), onde a escrita no ar de um agente a aprova.
Uma gravação que contém uma página iframe que o Player web não consegue enquadrar é salva mesmo assim; a resposta traz avisos (PlaylistWarning) e o registro do projeto recebe um evento playlist.iframe_framing_refused por página.
Uma escrita cujo src de iframe, fallback_src ou params de aplicativo leem um token de tela ({screen.field.NAME} e os outros dos esquemas de primitiva) que uma tela que mostra a playlist não tem também responde com um aviso screen_fact_missing nomeando as primeiras 20 telas assim; os manifestos dessas telas deixam essa primitiva de fora.
Um src ou fallback_src de iframe que seja um link do Google Apresentações, Docs ou Planilhas (compartilhar, publicar na web ou incorporar) ou um link de incorporação do Microsoft 365 OneDrive ou SharePoint é armazenado reconstruído para a tela, onde as apresentações repetem e avançam com o delayms do link limitado à duração da página, e Docs, Planilhas, Word e Excel recarregam a cada 5 minutos.
Um código de incorporação <iframe> colado em src ou fallback_src é lido pelo seu src. Um arquivo que pede login aos espectadores é recusado com document_not_shared (400), cujo errors[0].field é esse src ou fallback_src e cujo detalhe nomeia a configuração de compartilhamento a mudar.
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. |
| Screenrig-Review-Note | cabeçalho | opcional | Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request). Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url. Uma repetição com Idempotency-Key responde com o mesmo corpo. | ReviewPending (application/json) |
| 201 | Playlist com suas páginas de adslot. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — Declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido. Um formato de 2 ou mais displays (um video wall) faz parte do Plus; um formato de região e uma playlist sem formato estão em todos os planos. O problema nomeia o recurso, o plano do projeto e required_plan. | 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) |
Obter Playlist V2
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. |
| id | caminho | obrigatório |
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/playlists/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Playlist com suas páginas de adslot. | PlaylistV2 (application/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) |
Atualizar playlist V2
Atualização versionada aceitando a união da página adslot. If-Match carrega a revisão da playlist.
Uma sessão do dashboard (o editor de páginas) substitui a playlist no ar, nunca como proposta, atribuída à pessoa; exige o proprietário do projeto ou um membro que possa aprovar (caso contrário, approver_required) e If-Match (invalid_request quando ausente); uma playlist sem aprovação de pessoa ainda é playlist_not_approved (409), como em patchPlaylistStructure, e mídia que uma página nomeia e que aguarda revisão é media_pending_review (409).
Uma gravação que contém uma página iframe que o Player web não consegue enquadrar é salva mesmo assim; a resposta traz avisos (PlaylistWarning) e o registro do projeto recebe um evento playlist.iframe_framing_refused por página.
Uma escrita cujo src de iframe, fallback_src ou params de aplicativo leem um token de tela ({screen.field.NAME} e os outros dos esquemas de primitiva) que uma tela que mostra a playlist não tem também responde com um aviso screen_fact_missing nomeando as primeiras 20 telas assim; os manifestos dessas telas deixam essa primitiva de fora.
Um src ou fallback_src de iframe que seja um link do Google Apresentações, Docs ou Planilhas (compartilhar, publicar na web ou incorporar) ou um link de incorporação do Microsoft 365 OneDrive ou SharePoint é armazenado reconstruído para a tela, onde as apresentações repetem e avançam com o delayms do link limitado à duração da página, e Docs, Planilhas, Word e Excel recarregam a cada 5 minutos.
Um código de incorporação <iframe> colado em src ou fallback_src é lido pelo seu src. Um arquivo que pede login aos espectadores é recusado com document_not_shared (400), cujo errors[0].field é esse src ou fallback_src e cujo detalhe nomeia a configuração de compartilhamento a mudar.
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. |
| Screenrig-Review-Note | cabeçalho | opcional | Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request). Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| nome (obrigatório, string) | minLength: 1 maxLength: 120 |
| campos (opcional, PlaylistTemplateFields) | Declarar campos torna a playlist um modelo. Cada marcador lido por uma página deve nomear um campo declarado do tipo certo e cada campo deve ser lido; uma playlist sem campos não lê marcadores. Um modelo nunca é exibido em uma tela (playlist_is_template). Um PUT sem fields os mantém; null ou um array vazio os remove. |
| pages (obrigatório, array) | As páginas de uma playlist podem resolver no máximo 1024 referências de mídia no total. Um seletor by:ids conta seu comprimento; uma definição by:all, by:tag ou by:folder reserva 32 referências independentemente do tamanho do catálogo. O instantâneo real do loop é limitado a 1024 referências de mídia no total. Acima de qualquer orçamento é 422 inválido no caminho pages. |
| audio (opcional, PlaylistAudioWrite) | Trilha sonora opcional da playlist: mídia de áudio pronta ordenada (MP3) que toca continuamente enquanto as páginas mudam (docs/playlist-audio.md). Mudanças de página nunca param ou reiniciam. PUT substitui toda a playlist, então omitir áudio remove a trilha sonora. |
| formato (opcional, PlaylistFormat) | Para o que uma playlist é criada: um videowall (PlaylistWallFormat) ou uma região (PlaylistRegionFormat), nunca ambos. Uma playlist sem formato é uma playlist comum que se vincula a qualquer tela como a página. |
Modelo e respostas da solicitação
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url. Uma repetição com Idempotency-Key responde com o mesmo corpo. | ReviewPending (application/json) |
| 200 | Playlist atualizada. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — Declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido. Definir um formato de video wall (2 ou mais displays) diferente do da própria playlist faz parte do Plus. O problema nomeia o recurso, o plano do projeto e required_plan. | 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) |
Patch Playlist
Altera apenas os campos de nível superior enviados: name, pages, audio, format ou fields. Os campos omitidos são preservados do mesmo instantâneo da transação. pages, audio e format enviados substituem o valor completo; audio null remove a trilha sonora e format null remove o formato. Elementos de arrays aninhados não são mesclados.
Uma edição apenas de nome de uma playlist aprovada não revalida nem resolve novamente seu conteúdo inalterado, incluindo formatos de página armazenados mais antigos. Conteúdo fornecido e relações de áudio/sinal de página são validados. If-Match protege opcionalmente a revisão; patches idênticos são operações sem efeito e tentativas idempotentes repetem a resposta original.
O acesso Propose e a política de revisão funcionam como em PUT, incluindo os avisos para um valor pages enviado com uma página iframe que o Player web não consegue enquadrar. PUT continua substituindo o documento inteiro.
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. |
| Screenrig-Review-Note | cabeçalho | opcional | Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request). Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| nome (opcional, string) | minLength: 1 maxLength: 120 |
| pages (opcional, array) | |
| fields (opcional, inline) | |
| audio (opcional, inline) | |
| formato (opcional, inline) |
Modelo e respostas da solicitação
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url. Uma repetição com Idempotency-Key responde com o mesmo corpo. | ReviewPending (application/json) |
| 200 | Playlist atualizada; ETag carrega sua revisão. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — Declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido. Definir um formato de video wall (2 ou mais displays) diferente do da própria playlist faz parte do Plus. O problema nomeia o recurso, o plano do projeto e required_plan. | 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) |
Excluir playlist V2
Marca como excluída uma playlist pertencente ao projeto autenticado. Recusado com resource_conflict (409) enquanto alguma tela, inclusive arquivada ou pendente, a usar como padrão, em sua programação ou como substituição temporária, enquanto uma pasta de telas a usar como padrão ou enquanto uma campanha a reproduzir.
A sessão do dashboard pode também excluir; cria e substitui playlists com createPlaylistV2 e updatePlaylistV2 e altera sua estrutura via patchPlaylistStructure.
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. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Modelo e respostas da solicitação
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | Playlist tombstoned. | sem corpo |
| 409 | 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) |
Patch Playlist Structure
Uma pessoa conectada altera a estrutura de uma playlist e nunca o que suas páginas mostram: seu nome, a ordem das páginas, quais páginas permanecem e o avanço e visibilidade de cada página mantida. pages é a nova ordem completa; uma página armazenada que ela omite é removida, e um id que a playlist não possui, ou um repetido, é invalid_request em pages[i].id.
A tela mantida tem canvas, transição, audio_cue, primitivas e comentários sempre os armazenados: o corpo não tem membro para eles, e qualquer outro membro é recusado.
As páginas mantidas passam pela mesma resolução e validação que qualquer playlist armazenada, então um item de mídia excluído desde então é recusado (resource_conflict) e a playlist ainda mantém uma página comum sem visibilidade, no máximo 16 páginas de slots de anúncio e seus sinais audio_end. advance substitui o avanço da página (uma página de slot de anúncio não tem); visibility substitui a visibilidade da página quando um objeto, remove quando nulo e mantém quando omitido.
Uma alteração que mantém a playlist como armazenada é uma operação sem efeito. If-Match carrega a revisão da playlist e é obrigatório (invalid_request quando ausente, revision_conflict quando desatualizado). A gravação é aplicada imediatamente em todas as telas que exibem a playlist e é atribuída à pessoa em playlist.updated; nunca é uma proposta, portanto a resposta nunca é 202.
Uma playlist que nenhuma pessoa aprovou ainda (approved_revision 0) é recusada com playlist_not_approved (409): decida primeiro sua revisão. Um nome que outra playlist do projeto usa é resource_conflict. Somente a sessão do dashboard; agentes alteram playlists com patchPlaylist, e uma pessoa altera o que as páginas mostram com updatePlaylistV2.
A resposta traz avisos (PlaylistWarning) como em qualquer escrita, entre eles screen_fact_missing quando uma tela que mostra a playlist não tem um valor que o src de um iframe ou os params de aplicativo de suas páginas leem. O corpo tem no máximo 64 KiB.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| id | caminho | obrigatório | |
| If-Match | cabeçalho | obrigatório | A revisão atual da playlist, citada ou simples (o ETag da última leitura). Uma revisão obsoleta é revision_conflict com current_revision. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| nome (opcional, string) | minLength: 1 maxLength: 120 |
| pages (opcional, array) | Cada página que permanece, na ordem de reprodução. Um id que a playlist não possui, ou um listado duas vezes, é invalid_request em pages[i].id. O resultado ainda deve satisfazer as regras da playlist: pelo menos uma página comum sem visibilidade, no máximo 16 páginas de slot de anúncio, uma página audio_end mantém seu audio_cue. |
Modelo e respostas da solicitação
curl --request PATCH --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/structure'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A playlist como armazenada agora; ETag carrega sua revisão. | PlaylistV2 (application/json); cabeçalhos: ETag |
| 402 | feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido. | Problema (application/problem+json) |
| 409 | playlist_not_approved — a playlist não tem versão aprovada; resource_conflict — o nome está em uso, ou um item de mídia ou um nome de página mantido não está mais disponível. | Problema (application/problem+json) |
| 412 | revision_conflict — If-Match está desatualizado; a current_revision do erro contém a revisão atual. | 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) |
Listar revisões da playlist
The playlist's revisions, newest first: each revision a write stored (a create, a replace, a patch, a structure change, an applied review, a promote) with its name, its page count, the kind of change and who made it.
History begins with the revision a playlist held when revision history was first recorded: until its next write the list holds that revision alone, with change baseline. Revisions are kept for as long as the playlist is. At most 50 per page; next_cursor while more remain, null on the last page.
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. |
| id | caminho | obrigatório | |
| depois | consulta | opcional | next_cursor da página anterior da mesma lista, com os mesmos filtros. Omitido começa na linha mais recente. Um valor que não seja esse cursor é invalid_request. |
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/playlists/RESOURCE_ID/revisions'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | As revisões da playlist, da mais recente para a mais antiga. | PlaylistRevisionList (application/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) |
Obter revisão da playlist
One revision of the playlist and the playlist as it stood at that revision: its name, pages, soundtrack and format, with revision set to this one. A revision the playlist never had, or one from before its history began, is not_found.
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. |
| id | caminho | obrigatório | |
| revisão | caminho | obrigatório | Uma revisão da playlist, como listPlaylistRevisions as numera. |
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/playlists/RESOURCE_ID/revisions/REVISION'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A revisão e a playlist nessa revisão. | PlaylistRevisionDetail (application/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) |
Promover revisão da playlist
Makes an earlier revision current again by copying it forward: its pages, soundtrack and format become a new revision, the current one plus one, whose change is promoted and restored_from names the revision copied. The playlist keeps its current name, earlier revisions stay as they were, and every screen that shows the playlist updates as for any other write.
If-Match is required and names the current revision (invalid_request when absent, revision_conflict when stale). The pages are resolved again as a structure change resolves them: a selector matches today's media, and media or a web app the revision named that is gone or not ready refuses the promote with the problem a write would get.
Uma revisão cujo conteúdo é o conteúdo atual não muda nada e responde com a playlist atual. Exige uma credencial que publique ao vivo (proibido para uma cujas gravações são propostas para revisão) ou uma sessão de painel do proprietário do projeto ou de um membro que possa aprovar (approver_required); uma playlist que nenhuma pessoa aprovou ainda é playlist_not_approved (409).
Como em qualquer escrita, a resposta traz avisos (PlaylistWarning), entre eles screen_fact_missing quando uma tela que mostra a playlist não tem um valor que o src de um iframe ou os params de aplicativo das páginas promovidas leem.
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. |
| id | caminho | obrigatório | |
| revisão | caminho | obrigatório | Uma revisão da playlist, como listPlaylistRevisions as numera. |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/revisions/REVISION/promote'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A playlist com a revisão copiada como atual; ETag traz a revisão dela. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido. | 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) |
Atualizar valores de playlist
Define, ou com null limpa, os valores de campo de uma playlist criada a partir de um modelo e recria as suas páginas a partir da revisão atual do modelo: os valores são verificados como na criação e as mudanças de marca feitas no modelo desde então chegam a esta cópia. Não envie valores para apenas atualizar a cópia.
Classe de revisão como qualquer gravação de playlist: o proprietário ou um membro que possa aprovar (sessão do painel) e uma credencial Manage gravam ao vivo, um uploader só para as suas playlists e pastas, e Propose transforma a alteração em uma revisão (202). Uma playlist que não foi criada a partir de um modelo é invalid_request. If-Match é opcional.
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. |
| Screenrig-Review-Note | cabeçalho | opcional | Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request). Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| valores (obrigatório, objeto) | Nome do campo para valor; null limpa um campo opcional. Os campos não citados mantêm o valor. |
Modelo e respostas da solicitação
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/values'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url. Uma repetição com Idempotency-Key responde com o mesmo corpo. | ReviewPending (application/json) |
| 200 | A playlist atualizada; ETag carrega sua revisão. | PlaylistV2 (application/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) |
Listar instâncias de playlist
As playlists criadas a partir de um modelo (no máximo 1000, por nome), cada uma com a revisão do modelo de que as suas páginas foram criadas e se o modelo tem uma mais recente.
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. |
| id | caminho | obrigatório |
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/playlists/RESOURCE_ID/instances'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | As instâncias. | PlaylistInstanceList (application/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) |
Expandir modelo de playlist
As páginas que uma playlist criada a partir do modelo com estes valores teria, verificadas por todas as regras. Apenas calcula; nada é armazenado.
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. |
| id | caminho | obrigatório |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| valores (opcional, objeto) |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/expand'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | As páginas. | PlaylistExpanded (application/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) |
Adicionar página de playlist
Adiciona uma página a uma playlist aprovada sem enviar as outras: no fim, ou antes da página indicada por before.
As páginas que a playlist já contém são mantidas como armazenadas e verificadas novamente com a nova em uma só passada, de modo que as regras entre páginas (1 a 100 páginas, uma página comum sem visibilidade, 16 páginas de espaço publicitário, 1024 referências de mídia) enxergam o resultado: uma regra violada resulta em invalid_request com field (page.id quando o id já está em uso, before quando não nomeia nenhuma página).
A validade de página da playlist é a visibilidade própria da página (from, until, windows, data), no fuso horário de cada tela, com until exclusivo.
Classe de revisão: em Propor, a alteração se torna uma revisão (202); uma alteração de página posterior da mesma playlist pelo mesmo proponente estende essa revisão pendente enquanto ela se baseia na revisão ao vivo, de modo que alterações sucessivas não se substituem, e a aprovação aplica todas ou nenhuma (review_stale quando a playlist avançou); a revisão pendente de uma alteração de página de outro proponente não é estendida nem substituída, e a alteração aguarda com resource_conflict (409).
Com Gerenciar, ou a partir de uma sessão do dashboard do proprietário ou de um membro que possa aprovar (caso contrário, approver_required), vai ao ar. If-Match é opcional: quando presente, deve ser a revisão ao vivo. Uma playlist que nenhuma pessoa aprovou ainda é playlist_not_approved (409).
Um uploader (docs/uploaders.md) adiciona apenas uma página de mídia de suas pastas a uma de suas playlists (caso contrário, outside_upload_scope); um membro uploader em Propor é o proponente da revisão (kind person).
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. |
| Screenrig-Review-Note | cabeçalho | opcional | Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request). Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo. |
| id | caminho | obrigatório | |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| page (obrigatório, PlaylistPageWriteV2) | |
| before (opcional, string) | A página antes da qual ela entra; se omitida, é adicionada ao final. pattern: "^[A-Za-z][A-Za-z0-9_-]{0,63}$" |
Modelo e respostas da solicitação
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/pages'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url. Uma repetição com Idempotency-Key responde com o mesmo corpo. | ReviewPending (application/json) |
| 200 | A playlist atualizada; ETag carrega sua revisão. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido. | 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) |
Substituir página de playlist
Substitui uma página de uma playlist aprovada, no mesmo lugar, sem enviar as outras. O corpo é a página e seu id é page_id. Uma página desconhecida é not_found.
Todo o resto é como em addPlaylistPage: validado com as páginas mantidas em uma só passada, classe de revisão (202 em Propor, encadeada a uma revisão pendente de alteração de página), no ar com Gerenciar ou por uma pessoa que aprova, If-Match opcional, playlist_not_approved para uma playlist que nenhuma pessoa aprovou.
Um uploader substitui apenas uma página de mídia de suas pastas por outra página de mídia de suas pastas; em Propor, também pode substituir as páginas que aguardam em sua própria revisão.
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. |
| id | caminho | obrigatório | |
| page_id | caminho | obrigatório | ID da página da playlist. |
| Screenrig-Review-Note | cabeçalho | opcional | Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request). Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo. |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Modelo e respostas da solicitação
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/pages/PAGE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url. Uma repetição com Idempotency-Key responde com o mesmo corpo. | ReviewPending (application/json) |
| 200 | A playlist atualizada; ETag carrega sua revisão. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido. | 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) |
Remover página de playlist
Remove uma página de uma playlist aprovada. A playlist mantém de 1 a 100 páginas e uma página comum sem visibilidade (caso contrário, invalid_request). Uma página desconhecida é not_found. Todo o resto é como em replacePlaylistPage. Um uploader remove apenas uma página de mídia de suas pastas.
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. |
| id | caminho | obrigatório | |
| page_id | caminho | obrigatório | ID da página da playlist. |
| Screenrig-Review-Note | cabeçalho | opcional | Nota opcional do proponente em uma escrita de classe revisão, enviada como UTF-8 codificado em porcentagem (o que encodeURIComponent do JavaScript escreve). O servidor decodifica a porcentagem (uma escape inválida é 400 invalid_request); a nota decodificada é texto simples, no máximo 280 caracteres após o corte, sem caracteres de controle (caso contrário 400 invalid_request). Armazenado na revisão quando a gravação se torna uma; ignorado quando aplica ao vivo. |
| If-Match | cabeçalho | opcional | Revisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict. |
| Idempotency-Key | cabeçalho | opcional | Omitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente. |
Modelo e respostas da solicitação
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/pages/PAGE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 202 | A escrita virou uma revisão e aguarda a aprovação de uma pessoa (docs/reviews.md), sob acesso Propor, ou em qualquer nível de acesso quando alcança uma tela em uma pasta de telas protegida, em que um segundo aprovador a decide (docs/screen-scope.md). Uma pessoa aprova, rejeita ou pede alterações no dashboard em review.url. Uma repetição com Idempotency-Key responde com o mesmo corpo. | ReviewPending (application/json) |
| 200 | A playlist atualizada; ETag carrega sua revisão. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — declarar campos, bloquear uma primitiva ou alterar uma playlist que declara campos é o recurso de modelos de playlist, e o plano do projeto não o inclui; required_plan nomeia o plano que o inclui. Criar uma playlist a partir de um modelo é sempre permitido. | 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) |