Referência da API

API de Fontes de dados

Fontes de dados: endereços que mantêm um cartão atualizado

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

Este grupo tem 10 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.

Fontes de dados: endereços que mantêm um cartão atualizado

GET/api/source-presets

Listar predefinições de fonte

Lista as predefinições de fonte: configurações prontas e testadas da fonte de dados json (docs/sources.md, Presets). Cada uma diz quais cartões preenche, os campos que uma pessoa preenche (com ajuda, um padrão e um exemplo), os segredos de que precisa e como obter cada um, com que frequência atualiza e por quanto tempo um cartão mantém seus últimos dados, e os dados de quem ela lê e sob quais termos.

Crie uma fonte a partir de uma com POST /api/sources e preset, settings e secrets, e visualize-a com POST /api/sources/test.

Autenticação
projectBearer
Corpo da solicitação
nenhum
ID da operação
listSourcePresets
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/source-presets'

Respostas

StatusSignificadoCorpo e cabeçalhos
200As predefinições de fonte, por categoria e título.SourcePresetList (application/json); cabeçalhos: Cache-Control
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)
GET/api/source-presets/{name}

Obter predefinição de fonte

Uma predefinição de fonte, como a lista a mostra.

Autenticação
projectBearer
Corpo da solicitação
nenhum
ID da operação
getSourcePreset

Parâmetros

NomeEnviarObrigatório?Descrição
namecaminhoobrigatórioO nome de uma predefinição de fonte, como GET /api/source-presets a lista.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/source-presets/NAME'

Respostas

StatusSignificadoCorpo e cabeçalhos
200Uma predefinição de fonte.SourcePreset (application/json); cabeçalhos: Cache-Control
404not_found.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)
GET/api/sources

Listar fontes de dados

Lista as fontes de dados do projeto, as mais recentes primeiro, no máximo 200 por página. Uma fonte de dados mantém atualizadas as propriedades dinâmicas de um cartão a partir de um endereço externo, em um agendamento (docs/sources.md). Cada fonte mostra o status: a última tentativa, o último sucesso, a última alteração gravada, a próxima execução, a contagem de falhas e o último erro.

Os segredos nunca são devolvidos; cada um aparece como definido com uma dica mascarada. next_cursor é passado como after para a próxima página, null quando não há mais.

Autenticação
projectBearer
Corpo da solicitação
nenhum
ID da operação
listSources

Parâmetros

NomeEnviarObrigatório?Descrição
depoisconsultaopcional
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/sources'

Respostas

StatusSignificadoCorpo e cabeçalhos
200As fontes de dados do projeto.SourceList (application/json); cabeçalhos: Cache-Control
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/sources

Criar fonte de dados

Cria uma fonte de dados que grava as propriedades dinâmicas de um cartão a partir de um endereço externo. kind escolhe o adaptador (ics lê um endereço iCalendar ou webcal://); config guarda as configurações do tipo e secrets as credenciais dele, armazenadas criptografadas e mostradas apenas como uma dica mascarada.

Ou nomeie uma predefinição (GET /api/source-presets) e informe os settings e secrets dela em vez de kind e config: a fonte é uma fonte json cuja configuração a predefinição monta, devolvida com seu preset e settings, e o intervalo de atualização e o período de expiração assumem por padrão os da predefinição. Uma predefinição preenche apenas os cartões que lista (source_target_unsupported).

A fonte roda em segundos e depois a cada refresh_seconds. Uma execução com falha nunca grava: o cartão mantém o último documento válido e o status da fonte mostra o erro. Uma fonte preenche um cartão (source_target_taken), o cartão deve ser um que o tipo possa preencher (source_target_unsupported) e uma organização tem no máximo 200 fontes (source_limit_reached).

Use primeiro POST /api/sources/test para ver o documento que a fonte gravaria. Acrescenta source.created. Uma nova tentativa idêntica com a mesma Idempotency-Key retorna esta mesma resposta por vinte e quatro horas.

Autenticação
projectBearer
Corpo da solicitação
SourceCreate
ID da operação
createSource

Parâmetros

NomeEnviarObrigatório?Descrição
Idempotency-KeycabeçalhoopcionalOmitir 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

CampoDescrição
nome (obrigatório, string)minLength: 1 maxLength: 80
kind (opcional, SourceKind)

De onde vêm os dados. ics lê endereços iCalendar e webcal:// (os outros tipos estão descritos em /docs/sources). Um tipo que não está disponível responde invalid_request em kind. Permitido: "ics", "sheets", "csv", "json", "microsoft365", "google_calendar", "square", "shopify", "momentus", "toast"

target (obrigatório, SourceTarget)
preset (opcional, string)

Uma predefinição de fonte (GET /api/source-presets) a partir da qual criar a fonte, em vez de kind e config: o tipo é o da predefinição, e a configuração é montada a partir de settings. kind e config são obrigatórios sem ela, e recusados com ela, a menos que kind seja o da própria predefinição. pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$"

settings (opcional, object)Os valores dos campos da predefinição, por nome de campo (um texto, uma opção de uma escolha ou uma lista de objetos). Os campos obrigatórios são exigidos conforme a predefinição, com um caminho de campo como settings.channel.
config (opcional, object)

As configurações do tipo (/docs/sources). Para ics: calendars (1 a 60, cada um com uma key), days, time_zone, private_title, include, exclude. include e exclude (cada um com 1 a 20 palavras-chave de 1 a 100 caracteres, comparadas com os títulos dos eventos) também são configurações de microsoft365, google_calendar e momentus.

Para csv e json: url, method (GET ou POST), body ou graphql, headers, auth (none, bearer, header, basic, oauth2, token_request), time_zone, pagination e, para json, format (auto, json, csv, xml).

secrets (opcional, object)

Credenciais por nome, armazenadas seladas. Para ics: calendar_url.<key>, o endereço do calendário (webcal://, https:// ou http://), um por calendário. Para csv e json: token, password, client_secret, header.<Name> (um cabeçalho de requisição) e query.<name> (um parâmetro de consulta), e os segredos que um corpo token_request lê como {{secrets.<name>}}.

Para uma predefinição: os nomes que a lista de secrets dela dá.

refresh_seconds (opcional, integer)Segundos entre sincronizações; o padrão e o piso do tipo valem quando omitido ou menor (ics: 300, no mínimo 60; momentus: 60, no mínimo 30). mínimo: 30 máximo: 86400
stale_after_seconds (opcional, SourceStaleAfter)

Por quanto tempo o card mantém os últimos dados bons da fonte quando ela não consegue atualizar, em segundos.

A fonte grava os documentos para que expirem tanto tempo depois da última atualização boa: se ela continuar falhando, eles ficam em branco em todas as telas (inclusive as offline) e as páginas cuja visibilidade depende dos dados recorrem às páginas seguintes; uma fonte que não falha renova o prazo a cada atualização.

Pelo menos o dobro de refresh_seconds. null mantém os últimos dados bons até a fonte atualizar de novo (o padrão de todos os tipos, exceto momentus, cujo padrão é 1800 quando o membro é omitido na criação). Uma fonte com falha que passa do período fica desatualizada (status.stale) e acrescenta source.stale.

habilitado (opcional, boolean)padrão: true
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/sources'

Respostas

StatusSignificadoCorpo e cabeçalhos
201Criada.Source (application/json); cabeçalhos: Location, ETag, Cache-Control
400invalid_request com erros de campo (config.calendars[0].key, secrets.calendar_url.lobby, settings.channel para uma predefinição), ou source_secret_required quando falta um segredo de que o tipo ou a predefinição precisa.Problema (application/problem+json)
402

feature_not_in_plan — uma fonte de salas do Square, Shopify, Microsoft 365 ou Google Workspace exige fontes conectadas (Plus) e uma fonte Momentus exige a fonte Momentus (Enterprise); o problema nomeia o recurso e required_plan. Calendários por endereço, Google Planilhas e fontes CSV e JSON estão em todos os planos.

Problema (application/problem+json)
409source_target_taken (o cartão já tem uma fonte; source_id a nomeia), source_limit_reached ou idempotency_mismatch.Problema (application/problem+json)
422source_target_unsupported; supported_cards lista os tipos de cartão que o tipo pode preencher.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/sources/test

Testar fonte de dados

Faz uma prévia de uma fonte de dados sem salvar nem gravar nada: busca o endereço, formata a resposta para o cartão de destino e valida o documento com o cartão; depois retorna o documento, se o cartão o aceita (valid, com validation_error nomeando o caminho quando não aceita) e os avisos e contagens da execução.

Passe source_id para testar uma fonte salva com os demais membros como substituições (settings substituem os de uma fonte criada a partir de uma predefinição); caso contrário, target e ou kind e config, ou preset, settings e secrets são obrigatórios. Um segredo que uma fonte salva mantém é usado como armazenado, a menos que a substituição mude para onde ele aponta (source_secret_required).

Uma falha de busca ou de formatação é source_test_failed com o source_error fixo. No máximo 30 pré-visualizações por minuto por organização.

Autenticação
projectBearer
Corpo da solicitação
SourceTestRequest
ID da operação
testSource

Campos do corpo da solicitação

CampoDescrição
source_id (opcional, string)Uma fonte salva para testar; os demais membros a substituem.
kind (opcional, SourceKind)

De onde vêm os dados. ics lê endereços iCalendar e webcal:// (os outros tipos estão descritos em /docs/sources). Um tipo que não está disponível responde invalid_request em kind. Permitido: "ics", "sheets", "csv", "json", "microsoft365", "google_calendar", "square", "shopify", "momentus", "toast"

target (opcional, SourceTarget)
config (opcional, object)
preset (opcional, string)Uma predefinição de fonte para testar uma fonte que ainda não foi salva; seus settings e secrets substituem kind e config. pattern: "^[a-z][a-z0-9]*(-[a-z0-9]+)*$"
settings (opcional, object)As configurações de uma predefinição; com source_id, elas substituem as da fonte salva.
secrets (opcional, object)
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/sources/test'

Respostas

StatusSignificadoCorpo e cabeçalhos
200A prévia.SourceTestResult (application/json); cabeçalhos: Cache-Control
400invalid_request ou source_secret_required.Problema (application/problem+json)
402

feature_not_in_plan — uma fonte de salas do Square, Shopify, Microsoft 365 ou Google Workspace exige fontes conectadas (Plus) e uma fonte Momentus exige a fonte Momentus (Enterprise); o problema nomeia o recurso e required_plan. Calendários por endereço, Google Planilhas e fontes CSV e JSON estão em todos os planos.

Problema (application/problem+json)
404A fonte salva nomeada por source_id não foi encontrada.Problema (application/problem+json)
422source_test_failed (source_error contém code, message e upstream_status) ou source_target_unsupported.Problema (application/problem+json)
429

Problema estável rate_limited. Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais.

Problema (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit
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)
GET/api/sources/{source_id}

Obter fonte de dados

Uma fonte de dados com o status dela. ETag é a revisão, para If-Match na próxima alteração.

Autenticação
projectBearer
Corpo da solicitação
nenhum
ID da operação
getSource

Parâmetros

NomeEnviarObrigatório?Descrição
source_idcaminhoobrigatórioO id de uma das fontes de dados do projeto.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/sources/SOURCE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
200Uma fonte de dados.Source (application/json); cabeçalhos: ETag, Cache-Control
404not_found.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/api/sources/{source_id}

Atualizar fonte de dados

Altera uma fonte de dados. config substitui toda a configuração; secrets é mesclado (uma string define ou substitui um, null remove).

Uma fonte criada a partir de uma predefinição recebe settings em vez de config: cada configuração nomeada substitui seu valor, null remove uma opcional, as demais mantêm as suas, e a configuração é montada de novo a partir da predefinição (config em uma fonte assim é invalid_request em config, e settings em outra é invalid_request em settings). Os segredos dela são nomeados como a predefinição os nomeia.

Um segredo não enviado mantém o valor, a menos que a alteração aponte a fonte para algo que o escopo armazenado não cobre (source_secret_required em secrets.<name>: informe-o de novo).

Uma alteração no destino, em config, nos segredos, em refresh_seconds ou em enabled zera a contagem de falhas e executa a fonte em segundos; renomear não. enabled false para o agendamento e mantém o último documento do cartão. If-Match protege a revisão. Acrescenta source.updated.

Autenticação
projectBearer
Corpo da solicitação
SourceUpdate
ID da operação
updateSource

Parâmetros

NomeEnviarObrigatório?Descrição
source_idcaminhoobrigatórioO id de uma das fontes de dados do projeto.
If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir 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

CampoDescrição
nome (opcional, string)minLength: 1 maxLength: 80
target (opcional, SourceTarget)
config (opcional, object)Substitui toda a configuração. Uma fonte criada a partir de uma predefinição recebe settings em vez disso.
settings (opcional, object)Para uma fonte criada a partir de uma predefinição: mesclado às configurações dela (um valor substitui um, null remove uma opcional) e a configuração é montada de novo.
secrets (opcional, object)Mesclado aos segredos armazenados: uma string define ou substitui um, null remove. Uma fonte criada a partir de uma predefinição os nomeia como a predefinição os nomeia.
refresh_seconds (opcional, integer)mínimo: 30 máximo: 86400
stale_after_seconds (opcional, SourceStaleAfter)

Por quanto tempo o card mantém os últimos dados bons da fonte quando ela não consegue atualizar, em segundos.

A fonte grava os documentos para que expirem tanto tempo depois da última atualização boa: se ela continuar falhando, eles ficam em branco em todas as telas (inclusive as offline) e as páginas cuja visibilidade depende dos dados recorrem às páginas seguintes; uma fonte que não falha renova o prazo a cada atualização.

Pelo menos o dobro de refresh_seconds. null mantém os últimos dados bons até a fonte atualizar de novo (o padrão de todos os tipos, exceto momentus, cujo padrão é 1800 quando o membro é omitido na criação). Uma fonte com falha que passa do período fica desatualizada (status.stale) e acrescenta source.stale.

habilitado (opcional, boolean)
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/sources/SOURCE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
200A fonte alterada.Source (application/json); cabeçalhos: ETag, Cache-Control
400invalid_request ou source_secret_required.Problema (application/problem+json)
402

feature_not_in_plan — uma fonte de salas do Square, Shopify, Microsoft 365 ou Google Workspace exige fontes conectadas (Plus) e uma fonte Momentus exige a fonte Momentus (Enterprise); o problema nomeia o recurso e required_plan. Calendários por endereço, Google Planilhas e fontes CSV e JSON estão em todos os planos.

Uma alteração que apenas substitui segredos, sozinha ou com enabled false, é sempre permitida, de modo que uma fonte cujo token expirou continua atualizada.

Problema (application/problem+json)
404not_found.Problema (application/problem+json)
409source_target_taken ou idempotency_mismatch.Problema (application/problem+json)
412revision_conflict.Problema (application/problem+json)
422source_target_unsupported.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/api/sources/{source_id}

Excluir fonte de dados

Exclui a fonte de dados. O cartão mantém o último documento que a fonte gravou. If-Match protege a revisão. Acrescenta source.deleted.

Autenticação
projectBearer
Corpo da solicitação
nenhum
ID da operação
deleteSource

Parâmetros

NomeEnviarObrigatório?Descrição
source_idcaminhoobrigatórioO id de uma das fontes de dados do projeto.
If-MatchcabeçalhoopcionalRevisão positiva opcional do recurso. Omitir para escrever o recurso atual; uma revisão obsoleta fornecida é revision_conflict.
Idempotency-KeycabeçalhoopcionalOmitir 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
shell · modelo de requisição
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/sources/SOURCE_ID'

Respostas

StatusSignificadoCorpo e cabeçalhos
204Excluído.sem corpo
404not_found.Problema (application/problem+json)
412revision_conflict.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)
GET/api/sources/{source_id}/rooms

Obter as salas de uma fonte de dados

O mapeamento de salas de uma fonte de dados que lê as salas de um sistema de reservas (tipo momentus): quais salas ela oferece que nenhuma tela mostra (summary.unmapped_rooms) e quais telas leem um documento de sala ou área sem um valor que nomeie uma (telas com status missing ou unknown, com uma sugestão quando o valor é uma sala escrita de outro jeito).

As salas são as da última atualização boa da fonte; nada é buscado. Um tipo sem salas responde source_has_no_rooms.

Autenticação
projectBearer
Corpo da solicitação
nenhum
ID da operação
getSourceRooms

Parâmetros

NomeEnviarObrigatório?Descrição
source_idcaminhoobrigatórioO id de uma das fontes de dados do projeto.
Modelo e respostas da solicitação
shell · modelo de requisição
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/sources/SOURCE_ID/rooms'

Respostas

StatusSignificadoCorpo e cabeçalhos
200O relatório de mapeamento de salas.SourceRooms (application/json); cabeçalhos: Cache-Control
404not_found.Problema (application/problem+json)
409source_has_no_rooms.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/sources/{source_id}/refresh

Sincronizar fonte de dados

Sincroniza a fonte na hora, de forma direta (até 60 segundos), e a retorna com o novo status. Uma sincronização com falha responde 200 com status.state error e o erro; nunca grava. Uma atualização recomeça a fonte: a contagem de falhas é zerada e o endereço é lido por inteiro. source_busy (Retry-After) enquanto uma sincronização agendada está com a fonte.

No máximo 6 sincronizações por minuto por fonte.

Autenticação
projectBearer
Corpo da solicitação
nenhum
ID da operação
refreshSource

Parâmetros

NomeEnviarObrigatório?Descrição
source_idcaminhoobrigatórioO id de uma das fontes de dados do projeto.
Idempotency-KeycabeçalhoopcionalOmitir 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
shell · modelo de requisição
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/sources/SOURCE_ID/refresh'

Respostas

StatusSignificadoCorpo e cabeçalhos
200A fonte após a sincronização.Source (application/json); cabeçalhos: ETag, Cache-Control
404not_found.Problema (application/problem+json)
409source_busy.Problem (application/problem+json); cabeçalhos: Retry-After
429

Problema estável rate_limited. Refaça só após o intervalo Retry-After autoritativo. Negativas de janela fixa incluem também RateLimit-Policy e membros RateLimit aplicáveis; negativas de concorrência e orçamento de bytes omitem essas divulgações opcionais.

Problema (application/problem+json); cabeçalhos: Retry-After, RateLimit-Policy, RateLimit
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)