OpenAPI YAMLOpenAPI JSONproblemas YAMLVisão geral da API
Este grupo tem 3 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.
Importação de programação: planilhas de linhas de programação
Obter modelo de importação de programação
Responde com uma planilha com as colunas que uma importação de programação lê e três linhas de exemplo (um código de tela, uma pasta de telas e uma tag), em CSV ou, com format=xlsx, em uma pasta de trabalho XLSX.
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. |
| formato | consulta | opcional |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/schedule/imports/template'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A planilha de modelo. | string (text/csv), string (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) |
| 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) |
Pré-visualizar importação de programação
Lê uma planilha de linhas de programação contra o projeto e responde o que o commit faria, sem gravar nada.
Cada linha indica um alvo (uma tela por id, pelo valor de um campo da tela como um código de sala, ou por nome; folder:NAME; tag:NAME; vários separados por ; ou |), o conteúdo (um nome de arquivo de mídia, ou playlist:NAME ou o id de uma playlist), um início e um fim (uma data sozinha como fim encerra esse dia) e, opcionalmente, timezone, days (Mon-Fri), uma janela diária (daily_start, daily_end), priority de 0 a 100, um nome e números de display.
Os horários são lidos no relógio próprio de cada tela; uma coluna timezone os converte de outro fuso.
Cada linha é verificada e informa seus erros por coluna: tela, pasta ou tag desconhecida ou ambígua, arquivo ausente ou ambíguo, arquivo que não consegue preencher uma tela, horários inválidos ou invertidos, um fim no passado, nenhuma informação de horário, uma tela sem fuso horário ou sem playlist padrão, duas linhas vigentes ao mesmo tempo em uma tela com a mesma prioridade, e mais níveis do que uma tela comporta (32), ou mais campanhas do que sua organização comporta em todos os seus projetos (100; cada nível compartilhado é uma delas).
Linhas que coincidem em conteúdo, horários, prioridade e nome viram um nível: uma tela é uma entrada da programação própria dessa tela; várias telas, uma pasta ou uma tag são um nível compartilhado (uma campanha), que prevalece sobre os níveis próprios de uma tela.
A resposta lista os níveis com o que um commit faz em cada um (create, update, unchanged), os níveis que uma execução anterior da mesma importação criou e que a planilha não tem mais (removals), as pilhas das telas como ficariam (calendar) e uma fingerprint para enviar ao commit. A planilha é composta por linhas JSON, CSV ou XLSX, com no máximo 5.000 linhas.
Não disponível para um chamador limitado a telas (outside_screen_scope). A importação de programação faz parte do plano Enterprise; um projeto cujo plano não o inclui é recusado com feature_not_in_plan (402). O modelo está disponível em todos os planos.
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. |
| name | consulta | opcional | O nome da importação; importar de novo com o mesmo nome atualiza os níveis que ela criou (default import). Enviado com um corpo de arquivo. |
| fuso horário | consulta | opcional | O fuso IANA em que os horários são escritos quando uma linha não tem timezone. Sem um fuso, os horários são lidos no relógio próprio de cada tela. |
| origem | consulta | opcional | O nome do arquivo, registrado com a importação. |
| code_field | consulta | opcional | Ler um código de tela somente deste campo da tela (por exemplo code ou room_id); caso contrário, um código corresponde a qualquer campo. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| nome (opcional, string) | Identifica a importação; o mesmo nome atualiza os níveis que ela criou (default import). minLength: 1 maxLength: 80 |
| source (opcional, string) | O arquivo de onde vieram as linhas. maxLength: 200 |
| fuso horário (opcional, string) | O fuso IANA em que os horários são escritos quando uma linha não tem timezone. |
| code_field (opcional, string) | Ler um código de tela somente deste campo da tela. |
| fingerprint (opcional, string) | A fingerprint da prévia; exigida pelo commit. |
| rows (obrigatório, array) |
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://api.screenrig.ai/api/schedule/imports/preview'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A prévia. valid é false enquanto qualquer linha tiver um erro. | ScheduleImportPreview (application/json) |
| 402 | feature_not_in_plan — A importação de programação faz parte do plano Enterprise; o problema nomeia o recurso, o plano em que a conta está e required_plan. | Problema (application/problem+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) |
Confirmar importação de programação
Confirma uma importação já pré-visualizada: a mesma planilha e a fingerprint que a prévia respondeu. Cada nível é criado, atualizado ou removido, as programações das telas e os níveis compartilhados são gravados em uma única transação e o evento de importação schedule.imported é registrado: todas as linhas são aplicadas ou nenhuma é.
As playlists de um arquivo de que os arquivos da planilha precisam são criadas primeiro (elas não alteram nada em nenhuma tela). Uma planilha cujas linhas têm erros é recusada (schedule_import_invalid); um projeto que mudou desde a prévia, ou linhas que são lidas de outra forma, é recusado (schedule_import_stale), e o cliente pré-visualiza de novo.
Importar a mesma planilha de novo com o mesmo nome não altera nada; uma linha alterada atualiza seu nível e uma linha removida remove seu nível. Exige uma pessoa que possa aprovar no dashboard e, para um agente, uma credencial com acesso de escrita.
Um commit que atualizaria ou excluiria uma campanha reservada responde reserved_item (403) e não grava nada, a menos que seja feito por uma pessoa que pode aprovar.
Um commit que alcança uma tela protegida é recusado por inteiro com protected_target, inclusive quando a importação não tem níveis, mas remove entradas de importação de uma tela protegida ou exclui uma campanha de importação cujo público alcança uma.
Em um projeto com pastas de telas protegidas, um commit cuja prévia falha em um serviço, e não na planilha, responde dependency_unavailable e não grava nada: envie a mesma requisição de novo após uma breve espera. Um erro de validação de planilha, campanha ou tela responde como o commit responderia (invalid_request e os outros problemas acima).
Não disponível para um chamador limitado a telas. A importação de programação faz parte do plano Enterprise; um projeto cujo plano não o inclui é recusado com feature_not_in_plan (402). O modelo está disponível em todos os planos.
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. |
| 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. |
| fingerprint | consulta | opcional | A fingerprint da prévia, para um corpo CSV ou XLSX; um corpo JSON a traz como membro. |
| name | consulta | opcional | O nome da importação; importar de novo com o mesmo nome atualiza os níveis que ela criou (default import). Enviado com um corpo de arquivo. |
| fuso horário | consulta | opcional | O fuso IANA em que os horários são escritos quando uma linha não tem timezone. Sem um fuso, os horários são lidos no relógio próprio de cada tela. |
| origem | consulta | opcional | O nome do arquivo, registrado com a importação. |
| code_field | consulta | opcional | Ler um código de tela somente deste campo da tela (por exemplo code ou room_id); caso contrário, um código corresponde a qualquer campo. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| nome (opcional, string) | Identifica a importação; o mesmo nome atualiza os níveis que ela criou (default import). minLength: 1 maxLength: 80 |
| source (opcional, string) | O arquivo de onde vieram as linhas. maxLength: 200 |
| fuso horário (opcional, string) | O fuso IANA em que os horários são escritos quando uma linha não tem timezone. |
| code_field (opcional, string) | Ler um código de tela somente deste campo da tela. |
| fingerprint (opcional, string) | A fingerprint da prévia; exigida pelo commit. |
| rows (obrigatório, array) |
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://api.screenrig.ai/api/schedule/imports'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | O que o commit aplicou. | ScheduleImportCommitted (application/json) |
| 402 | feature_not_in_plan — A importação de programação faz parte do plano Enterprise; o problema nomeia o recurso, o plano em que a conta está e required_plan. | Problema (application/problem+json) |
| 403 | outside_screen_scope ou approver_required como em ScreenScopePlays, ou reserved_item - uma campanha reservada só é alterada, pausada, excluída ou deixa de ser reservada por uma pessoa que pode aprovar revisões, nunca por um agente ou cliente de serviço (docs/screen-scope.md). | Problema (application/problem+json) |
| 409 | protected_target - a alteração alcança uma tela em uma pasta de telas protegida e não tem forma de revisão (docs/screen-scope.md). Remova a proteção da pasta por meio de uma revisão, faça a alteração e proteja a pasta de novo. | Problema (application/problem+json) |
| 500 | dependency_unavailable - a verificação de pastas de telas protegidas não pôde ser executada; envie a mesma requisição de novo após uma breve espera. | 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) |