OpenAPI YAMLOpenAPI JSONproblemas YAMLVisão geral da API
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
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.
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/source-presets'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | As 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) |
Obter predefinição de fonte
Uma predefinição de fonte, como a lista a mostra.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| name | caminho | obrigatório | O nome de uma predefinição de fonte, como GET /api/source-presets a lista. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/source-presets/NAME'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma predefinição de fonte. | SourcePreset (application/json); cabeçalhos: Cache-Control |
| 404 | not_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) |
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.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| depois | consulta | opcional |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/sources'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | As 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) |
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.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| 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: 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
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/sources'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Criada. | Source (application/json); cabeçalhos: Location, ETag, Cache-Control |
| 400 | invalid_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) |
| 409 | source_target_taken (o cartão já tem uma fonte; source_id a nomeia), source_limit_reached ou idempotency_mismatch. | Problema (application/problem+json) |
| 422 | source_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) |
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.
Campos do corpo da solicitação
| Campo | Descriçã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
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/sources/test'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A prévia. | SourceTestResult (application/json); cabeçalhos: Cache-Control |
| 400 | invalid_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) |
| 404 | A fonte salva nomeada por source_id não foi encontrada. | Problema (application/problem+json) |
| 422 | source_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) |
Obter fonte de dados
Uma fonte de dados com o status dela. ETag é a revisão, para If-Match na próxima alteração.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| source_id | caminho | obrigatório | O id de uma das fontes de dados do projeto. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/sources/SOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma fonte de dados. | Source (application/json); cabeçalhos: ETag, Cache-Control |
| 404 | not_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) |
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.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| source_id | caminho | obrigatório | O id de uma das fontes de dados do projeto. |
| 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: 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
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
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A fonte alterada. | Source (application/json); cabeçalhos: ETag, Cache-Control |
| 400 | invalid_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) |
| 404 | not_found. | Problema (application/problem+json) |
| 409 | source_target_taken ou idempotency_mismatch. | Problema (application/problem+json) |
| 412 | revision_conflict. | Problema (application/problem+json) |
| 422 | source_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 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.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| source_id | caminho | obrigatório | O id de uma das fontes de dados do projeto. |
| 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]' 'https://api.screenrig.ai/api/sources/SOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | Excluído. | sem corpo |
| 404 | not_found. | Problema (application/problem+json) |
| 412 | revision_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) |
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.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| source_id | caminho | obrigatório | O id de uma das fontes de dados do projeto. |
Modelo e respostas da solicitação
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/sources/SOURCE_ID/rooms'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | O relatório de mapeamento de salas. | SourceRooms (application/json); cabeçalhos: Cache-Control |
| 404 | not_found. | Problema (application/problem+json) |
| 409 | source_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) |
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.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| source_id | caminho | obrigatório | O id de uma das fontes de dados do projeto. |
| 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]' 'https://api.screenrig.ai/api/sources/SOURCE_ID/refresh'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A fonte após a sincronização. | Source (application/json); cabeçalhos: ETag, Cache-Control |
| 404 | not_found. | Problema (application/problem+json) |
| 409 | source_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) |