OpenAPI YAMLOpenAPI JSONproblemas YAMLVisão geral da API
Este grupo tem 9 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.
Conexões: o acesso reutilizável de um projeto à Microsoft e ao Google
Listar conexões
Lista as conexões do projeto, as mais recentes primeiro, no máximo 200 por página; devolva next_cursor como after para a próxima.
Uma conexão é o acesso reutilizável do projeto à Microsoft ou ao Google para fontes que rodam sem supervisão: uma fonte de dados microsoft365 ou google_calendar, uma conexão do Power BI e uma conta de sincronização de mídia do SharePoint nomeiam uma em config.connection_id em vez de levar credenciais próprias (docs/connections.md).
Um segredo, uma chave ou um token de atualização nunca é devolvido: secret mostra se há um guardado e uma dica que não é secreta. Uma leitura nunca traz um link de consentimento.
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. |
| depois | consulta | opcional | next_cursor da página anterior da mesma lista, com os mesmos filtros. Omitido começa na linha mais recente. Um valor que não seja esse cursor é invalid_request. |
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/connections'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma página de conexões. | ConnectionList (application/json); cabeçalhos: Cache-Control |
| 400 | invalid_request, inclusive um cursor malformado. | 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) |
Criar conexão
Cria uma conexão com a Microsoft (provider microsoft) ou o Google (provider google). O modo own_app é o aplicativo próprio do cliente: para a Microsoft, config.tenant_id (o ID do diretório ou o domínio primário; common, organizations e consumers são recusados), config.client_id e secret (o valor de um dos segredos de cliente do aplicativo); para o Google, secret é o arquivo de chave JSON da conta de serviço.
O segredo é selado e nunca devolvido. O modo screenrig_app usa o aplicativo próprio do screenRIG e não aceita config nem secret: a conexão é criada como pending_consent e a resposta traz consent_url, um link de uso único (válido até consent_expires_at) para a pessoa que o conclui.
Para a Microsoft, é um administrador do Microsoft 365, que dá consentimento ao aplicativo do screenRIG para o tenant; o navegador então faz login no tenant que a Microsoft nomeia, de modo que a conexão registra o tenant confirmado, nunca um que um callback apenas afirme.
Para o Google, é o titular da conta, que concede acesso somente leitura às agendas que a conta pode ver; o screenRIG guarda o token de atualização selado e o endereço da conta. O link é uma credencial de um único consentimento: envie-o somente a essa pessoa.
Um servidor sem o aplicativo do screenRIG para o provedor responde 409 connection_app_not_configured, e as conexões own_app continuam funcionando. Uma organização tem no máximo 50 conexões em todos os seus projetos (connection_limit_reached). Adiciona connection.created.
Uma nova tentativa exata com a mesma Idempotency-Key devolve a mesma conexão (uma nova tentativa de screenrig_app recebe um novo link de consentimento, que substitui o primeiro).
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. |
Campos do corpo da solicitação
| Campo | Descrição |
|---|---|
| provider (obrigatório, string) | Permitido: "microsoft", "google" |
| mode (obrigatório, string) | Permitido: "own_app", "screenrig_app" |
| nome (obrigatório, string) | minLength: 1 maxLength: 80 |
| config (opcional, ConnectionConfigWrite) | Microsoft, modo own_app: os dois membros. Não aceito para uma conexão do Google nem para o modo screenrig_app. |
| secret (opcional, string) | Modo own_app. Microsoft: o valor de um dos segredos de cliente do aplicativo (não o ID; no máximo 1024 caracteres), com config.tenant_id e config.client_id. Google: o arquivo de chave JSON da conta de serviço, inteiro (no máximo 16384 bytes). Selado na chegada e nunca devolvido; a CLI o lê de um arquivo ou da entrada padrão, nunca de um argumento. Não aceito no modo screenrig_app. minLength: 1 maxLength: 16384 |
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://screenrig.ai/api/connections'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 201 | Criada. Uma conexão no modo screenrig_app traz consent_url e consent_expires_at. | ConnectionConsent (application/json); cabeçalhos: ETag, Location, Cache-Control |
| 400 | invalid_request, nomeando o campo que não é válido. | Problema (application/problem+json) |
| 409 | connection_app_not_configured (este servidor não tem aplicativo do screenRIG para o provedor), connection_limit_reached ou idempotency_mismatch. | 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 conexão
Uma conexão, com seu status, seu último erro e seu último teste.
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/connections/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | Uma conexão. | Connection (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 conexão
Altera o nome de uma conexão ou, no modo own_app, as credenciais dela: config.tenant_id e config.client_id (Microsoft) ou secret (um segredo enviado substitui o selado; um omitido é mantido). Uma conexão no modo screenrig_app só pode ser renomeada: conecte-a de novo (POST /api/connections/{id}/connect) para mudar quem deu o consentimento.
Uma mudança nas credenciais devolve a conexão a ready, limpa last_error e last_test e aposenta todos os tokens emitidos para as credenciais antigas. Adiciona connection.updated. If-Match protege a revisão.
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 | |
| 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 |
| config (opcional, ConnectionConfigWrite) | Microsoft, modo own_app: os dois membros. Não aceito para uma conexão do Google nem para o modo screenrig_app. |
| secret (opcional, string) | Substitui o segredo ou a chave armazenados; omita para manter o armazenado. Somente modo own_app. minLength: 1 maxLength: 16384 |
Modelo e respostas da solicitação
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/connections/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A conexão atualizada. | Connection (application/json); cabeçalhos: ETag, Cache-Control |
| 400 | invalid_request, nomeando o campo que não é válido; config e secret não se aplicam a uma conexão no modo screenrig_app. | Problema (application/problem+json) |
| 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) |
Excluir conexão
Exclui uma conexão pela qual nada lê. Enquanto uma fonte de dados, uma conexão do Power BI ou uma conta de sincronização de mídia a usa, a resposta é resource_conflict, nomeando-as (used_by lista o tipo e o ID delas).
Excluir não encerra o lado do fornecedor: um tenant do Microsoft 365 mantém o aplicativo do screenRIG até que o administrador o remova, e uma conta do Google mantém a concessão até que o titular a revogue. Adiciona connection.deleted. If-Match protege a revisão.
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 | |
| 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]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 204 | Excluído. | sem corpo |
| 404 | not_found. | Problema (application/problem+json) |
| 409 | resource_conflict, algo ainda lê pela conexão. | 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) |
Testar conexão
Faz login com a conexão e guarda a resposta como last_test.
Para a Microsoft, as verificações são credentials (a Microsoft emitiu um token de aplicativo para o tenant) e permissions (quais entre Calendars.Read, Sites.Selected, Files.Read.All, Sites.Read.All e Place.Read.All o token do aplicativo traz; um aplicativo sem nenhuma delas não passa na verificação, e Sites.Selected sozinha é um aviso, porque cada site do SharePoint precisa de uma concessão).
Para o Google, a verificação é credentials: o Google aceitou a conta de serviço ou o token de atualização da conta que concedeu o acesso, e a resposta nomeia a conta para a qual as agendas devem estar visíveis. Uma recusa é uma verificação que falhou e move a conexão para error com last_error; um sucesso a devolve a ready.
Ela não julga o compartilhamento de uma agenda, uma política de acesso a caixa de correio nem uma concessão de site, o que uma fonte ou sincronização prova quando roda. No máximo 30 por minuto por organização.
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/connections/RESOURCE_ID/test'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | As verificações. | ConnectionTest (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) |
Conectar uma conexão
Gera um novo link de consentimento de uso único (consent_url, válido até consent_expires_at) para uma conexão no modo screenrig_app, para enviar à pessoa que o conclui: o administrador do Microsoft 365 ou o titular da conta do Google. Ele substitui qualquer link anterior.
Uma conexão que funciona fica como está até o novo consentimento ser concluído, então isso também renova uma que passou a error (consentimento removido, acesso revogado) ou a move para outro tenant ou conta. O link é uma credencial do consentimento: envie-o somente a essa pessoa.
Quando a pessoa termina, o navegador volta a GET /oauth/connections/{provider}/callback e é encaminhado à página da conexão no dashboard, que lê status e last_error. Uma conexão no modo own_app não tem etapa de consentimento (409 resource_conflict); um servidor sem o aplicativo do screenRIG para o provedor responde 409 connection_app_not_configured.
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/connections/RESOURCE_ID/connect'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 200 | A conexão com um novo consent_url. | ConnectionConsent (application/json); cabeçalhos: ETag, Cache-Control |
| 404 | not_found. | Problema (application/problem+json) |
| 409 | resource_conflict (a conexão está no modo own_app) ou connection_app_not_configured. | 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) |
Concluir o consentimento de uma conexão da Microsoft
Para onde a Microsoft envia o navegador de um administrador do Microsoft 365 depois da página de consentimento do administrador (e de novo depois da etapa de login que vem em seguida) para uma conexão no modo screenrig_app.
Ela não leva nenhuma credencial: o state assinado na consulta é a única autoridade, é verificado antes de ler qualquer coisa que ele nomeie e só é aceito enquanto for o consentimento pendente da conexão.
O primeiro retorno nomeia um tenant, que não é autenticado: a resposta é um redirecionamento para o login desse tenant, cujo código é resgatado com o segredo do aplicativo e um verificador PKCE que só este servidor consegue derivar, e o tenant que o token de ID traz é o que a conexão registra depois que um token de credenciais de cliente prova que o aplicativo tem lá as suas permissões.
Todo resultado após um state verificado redireciona para a página da conexão no dashboard (/dashboard/connections/{id}?consent=connected ou ?consent=failed), que lê status e last_error; o texto do erro é montado a partir de frases fixas e da própria resposta de erro da Microsoft (o código AADSTS dela), nunca do que a consulta do callback trazia.
Um state desconhecido, expirado, usado, substituído ou de uma conexão excluída mostra uma página que não nomeia nada. Responde apenas no host da API sob o qual os callbacks estão registrados.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| estado | consulta | opcional | |
| admin_consent | consulta | opcional | |
| tenant | consulta | opcional | |
| código | consulta | opcional | |
| erro | consulta | opcional | |
| error_description | consulta | opcional |
Modelo e respostas da solicitação
curl --request GET 'https://api.screenrig.ai/oauth/connections/microsoft/callback'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 302 | Para o login da Microsoft do tenant que consentiu, ou para a página da conexão no dashboard. | sem corpo |
| 200 | Onde nenhum dashboard está configurado, uma página que diz que a conexão está concluída. | string (text/html) |
| 400 | Uma página que diz que o link já foi usado ou expirou, ou, onde nenhum dashboard está configurado, por que nada foi conectado. | string (text/html) |
| 429 | Callbacks demais deste endereço. | sem corpo |
Concluir o consentimento de uma conexão do Google
Para onde o Google envia o navegador do titular da conta depois da página de consentimento para uma conexão no modo screenrig_app.
Ela não leva nenhuma credencial: o state assinado na consulta é a única autoridade, é verificado antes de ler qualquer coisa que ele nomeie e só é aceito enquanto for o consentimento pendente da conexão. O screenRIG resgata o código com o segredo do aplicativo e um verificador PKCE que só este servidor consegue derivar, exige que o escopo de agenda tenha sido concedido (a pessoa pode desmarcá-lo na página de consentimento) e um token de atualização, lê a conta que concedeu o acesso no token de ID que o Google devolveu nessa chamada, sela o token de atualização e adiciona connection.connected.
Todo resultado após um state verificado redireciona para a página da conexão no dashboard (/dashboard/connections/{id}?consent=connected ou ?consent=failed), que lê status e last_error. Um state desconhecido, expirado, usado, substituído ou de uma conexão excluída mostra uma página que não nomeia nada.
Responde apenas no host da API sob o qual os callbacks estão registrados.
Parâmetros
| Nome | Enviar | Obrigatório? | Descrição |
|---|---|---|---|
| estado | consulta | opcional | |
| código | consulta | opcional | |
| erro | consulta | opcional |
Modelo e respostas da solicitação
curl --request GET 'https://api.screenrig.ai/oauth/connections/google/callback'Respostas
| Status | Significado | Corpo e cabeçalhos |
|---|---|---|
| 302 | Para a página da conexão no dashboard. | sem corpo |
| 200 | Onde nenhum dashboard está configurado, uma página que diz que a conexão está concluída. | string (text/html) |
| 400 | Uma página que diz que o link já foi usado ou expirou, ou, onde nenhum dashboard está configurado, por que nada foi conectado. | string (text/html) |
| 429 | Callbacks demais deste endereço. | sem corpo |