OpenAPI YAMLOpenAPI JSONproblemas YAMLVisão geral da API
Este grupo tem 7 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.
Revisões de alterações do agente
Listar avaliações
As revisões do projeto (docs/reviews.md): alterações de playlist e de tela propostas sob acesso Propor, as escritas de campanha, pasta de telas e movimentação que alcançam uma tela protegida (tipo protected_change, docs/screen-scope.md) e, para uma rede de anúncios, os criativos enviados pelos compradores (tipo ad_creative).
Mais recentes primeiro, no máximo limit (padrão 50, no máximo 100) por página; passe next_cursor de volta como cursor com os mesmos filtros. state pending (padrão), decided (todos os outros estados) ou all; kind restringe a um tipo.
Uma sessão de dashboard lê todos os tipos; um token bearer lê os tipos que as suas capacidades cobrem (playlists para playlist_change, screens para screen_change e protected_change, advertising para ad_creative), e um tipo que ele não pode ler é uma página vazia. pending_count conta as revisões pendentes de todos os tipos que o chamador vê.
Um chamador limitado a telas vê apenas as revisões screen_change e protected_change cujo alcance inteiro está dentro do seu escopo (uma revisão que seleciona telas por tag nunca está) e as revisões playlist_change; as revisões ad_creative ficam ocultas para ele, e pending_count conta o que ele vê.
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. |
| estado | consulta | opcional | |
| kind | consulta | opcional | |
| limite | consulta | opcional | |
| cursor | consulta | opcional |
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/reviews'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma página de avaliações. | ReviewList (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 avaliação
Uma revisão. Uma alteração de playlist adiciona preview: a playlist ao vivo e a proposta no formato armazenado (pages com resolved_media); live é null para uma criação. Um bearer que não pode ler o tipo da revisão (veja listReviews) recebe not_found, assim como um chamador limitado a telas para uma revisão cujo alcance não está dentro do seu escopo.
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/reviews/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A revisão. | Revisão (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) |
Localizar revisão
O projeto ao qual uma revisão pertence, para o link do e-mail: uma pessoa conectada que é membro desse projeto obtém seu id e nome e muda para ele (PUT /api/session/project) antes de ler a revisão. Qualquer outro recebe not_found. Funciona para qualquer projeto selecionado na sessão.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| id | caminho | obrigatório |
Modelo e respostas da solicitação
curl --request GET --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/reviews/RESOURCE_ID/locate'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | O projeto da revisão. | ReviewLocation (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) |
Aprovar revisão
Aprova uma revisão pendente como pessoa que pode aprovar (proprietário do projeto ou membro com can_approve; senão approver_required). A flag é lida novamente dentro da transação da decisão, então uma pessoa cuja aprovação foi desativada no meio não decide nada (approver_required). Sessões shadow da equipe não podem decidir.
Uma atualização de playlist é aplicada com a revisão base como If-Match; quando a playlist ativa avança, a revisão fica obsoleta e a chamada responde review_stale.
Uma criação ou atualização cuja tag, pasta ou todos os seletores agora tocariam mídia que não resolviam quando proposta, que a revisão não nomeia e que a versão ao vivo ainda não toca, também se torna desatualizada (review_stale).
Uma mudança de tela reproduz sua solicitação armazenada (uma tag é resolvida agora): a chamada aplica telas por alguns segundos e o restante continua em segundo plano enquanto screen_change.result.applying é verdadeiro.
Uma mudança de tela aguardando uma revisão pendente da playlist responde review_blocked nomeando-a; uma cuja playlist não tem versão aprovada responde playlist_not_approved. include_dependents também aprova, em ordem, as mudanças de tela aguardando essa revisão da playlist. Eventos da mudança aplicada carregam a pessoa como ator e o agente proponente como agente.
A resposta traz avisos (PlaylistWarning): screen_fact_missing quando a mudança aprovada coloca páginas cujo src de iframe ou params de aplicativo leem um token de tela em telas que não o têm. Uma revisão decidida é review_not_pending; repetir a mesma decisão devolve a mesma resposta.
Uma revisão marcada como protegida (uma protected_change, ou uma screen_change que alcançou uma tela protegida) é decidida por um aprovador diferente do proponente e da pessoa responsável pelo agente proponente: caso contrário, second_approver_required (403), e também quando o proponente não pode ser rastreado até uma pessoa (docs/screen-scope.md).
Um aprovador limitado a telas decide apenas uma revisão cujo alcance inteiro está dentro do escopo (outside_screen_scope, 403). Uma protected_change é aplicada por esta requisição, como a pessoa que aprova, na versão em que foi proposta; uma campanha ou pasta que mudou ou foi removida desde então, ou telas que mudaram desde então, tornam a revisão desatualizada (review_stale, 409).
Um dependente que não pode ser aprovado informa os mesmos códigos em dependents[].problem.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| id | caminho | obrigatório | |
| 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 |
|---|---|
| include_dependents (opcional, booleano) | Também aprove, na ordem, as alterações da tela aguardando essa revisão da playlist. |
Modelo e respostas da solicitação
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/reviews/RESOURCE_ID/approve'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A revisão aprovada e os resultados dos dependentes. | ReviewDecisionResult (application/json) |
| 403 | approver_required, second_approver_required ou outside_screen_scope. | Problema (application/problem+json) |
| 409 | review_not_pending, review_stale, review_blocked ou playlist_not_approved. | 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) |
Rejeitar revisão
Rejeita uma revisão pendente com um motivo que o proponente lê. Somente aprovador, como approveReview; um aprovador limitado a telas decide apenas uma revisão dentro do seu escopo (outside_screen_scope), e nenhuma pessoa limitada a telas decide uma revisão de criativo de anúncio. Nada muda na tela; uma criação de playlist rejeitada continua não aprovada.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| id | caminho | obrigatório | |
| 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 |
|---|---|
| motivo (obrigatório, string) | minLength: 1 maxLength: 500 |
Modelo e respostas da solicitação
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/reviews/RESOURCE_ID/reject'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A revisão rejeitada. | ReviewDecisionResult (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) |
Solicitar revisão de alterações
Pede ao proponente alterações com uma nota que ele lê; o proponente propõe novamente. Somente aprovador, como approveReview. Para um criativo de anúncio, o comprador lê a nota no criativo. Um aprovador com escopo é limitado como em rejectReview.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| id | caminho | obrigatório | |
| 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 |
|---|---|
| nota (obrigatório, string) | minLength: 1 maxLength: 500 |
Modelo e respostas da solicitação
curl --request POST --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/reviews/RESOURCE_ID/request-changes'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A revisão, estado changes_requested. | ReviewDecisionResult (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) |
Retirar revisão
Retira uma revisão pendente de playlist, tela ou protected_change. Um bearer retira apenas o que o seu próprio agente ou cliente de serviço propôs (forbidden caso contrário); uma pessoa retira como aprovador ou como a pessoa responsável pelo proponente; uma pessoa limitada a telas retira apenas uma revisão dentro do seu escopo (outside_screen_scope).
Uma criação de playlist retirada continua não aprovada.
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 | |
| 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/reviews/RESOURCE_ID/withdraw'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A revisão retirada. | ReviewDecisionResult (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) |