Referência da API

API de Importação de programação

Importação de programação: planilhas de linhas de programação

Referência HTTP. Gerada a partir do contrato backend. Navegue pelos endpoints abaixo ou baixe o OpenAPI.

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

GET/api/schedule/imports/template

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.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
nenhum
ID da operação
getScheduleImportTemplate

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
formatoconsultaopcional
Modelo e respostas da solicitação
shell · modelo de requisiçã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

StatusSignificadoCorpo e cabeçalhos
200A 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)
POST/api/schedule/imports/preview

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.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
ScheduleImportRequest
ID da operação
previewScheduleImport

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto por uma versão. Deve ser consistente com as concessões de projetos JWT; adiciona cabeçalhos Deprecation e Warning. Sem troca de token.
nameconsultaopcionalO 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árioconsultaopcionalO 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.
origemconsultaopcionalO nome do arquivo, registrado com a importação.
code_fieldconsultaopcionalLer 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

CampoDescriçã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
shell · modelo de requisiçã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

StatusSignificadoCorpo e cabeçalhos
200A prévia. valid é false enquanto qualquer linha tiver um erro.ScheduleImportPreview (application/json)
402feature_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)
POST/api/schedule/imports

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.

Autenticação
projectBearer OU dashboardSession
Corpo da solicitação
ScheduleImportRequest
ID da operação
commitScheduleImport

Parâmetros

NomeEnviarObrigatório?Descrição
ScreenRig-ProjectcabeçalhoopcionalObsoleto 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-KeycabeçalhoopcionalOmitir para uma operação nova. Forneça e reutilize uma chave para deduplicar tentativas; o CLI gerencia as chaves automaticamente.
fingerprintconsultaopcionalA fingerprint da prévia, para um corpo CSV ou XLSX; um corpo JSON a traz como membro.
nameconsultaopcionalO 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árioconsultaopcionalO 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.
origemconsultaopcionalO nome do arquivo, registrado com a importação.
code_fieldconsultaopcionalLer 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

CampoDescriçã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
shell · modelo de requisiçã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

StatusSignificadoCorpo e cabeçalhos
200O que o commit aplicou.ScheduleImportCommitted (application/json)
402feature_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)
500dependency_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)