Referencia API

API de Conexiones

Conexiones: el acceso reutilizable de un proyecto a Microsoft y Google

Referencia HTTP. Generada a partir del contrato backend. Explore los endpoints abajo o descargue OpenAPI.

Este grupo tiene 9 operaciones, generadas a partir de api/openapi.yaml. Filtre por ruta, acción o autenticación. Cada endpoint indica sus entradas; despliéguelo para ver una plantilla de solicitud y los códigos de respuesta. Las plantillas necesitan sus propios valores y un cuerpo válido según el esquema.

Reemplace los marcadores en mayúsculas con sus valores. Para una solicitud JSON, guarde un cuerpo que coincida con el esquema en request.json. Los ejemplos de cookies usan un frasco de cookies local de una sesión autenticada.

Conexiones: el acceso reutilizable de un proyecto a Microsoft y Google

GET/api/connections

Listar conexiones

Lista las conexiones del proyecto, las más recientes primero, como máximo 200 por página; devuelva next_cursor como after para la siguiente.

Una conexión es el acceso reutilizable del proyecto a Microsoft o Google para las fuentes que se ejecutan sin supervisión: una fuente de datos microsoft365 o google_calendar, una conexión de Power BI y una cuenta de sincronización de medios de SharePoint nombran una en config.connection_id en lugar de llevar credenciales propias (docs/connections.md).

Un secreto, una clave o un token de actualización nunca se devuelve: secret indica si hay uno guardado y una pista que no es secreta. Una lectura nunca incluye un enlace de consentimiento.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
listConnections

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
despuésconsultaopcionalnext_cursor de la página anterior de la misma lista, con los mismos filtros. Omitido comienza en la fila más reciente. Un valor que no sea tal cursor es invalid_request.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una página de conexiones.ConnectionList (application/json); encabezados: Cache-Control
400invalid_request, incluido un cursor mal formado.Problema (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

Problema (application/problem+json)
POST/api/connections

Crear conexión

Crea una conexión con Microsoft (provider microsoft) o Google (provider google). El modo own_app es la aplicación propia del cliente: para Microsoft, config.tenant_id (el ID de directorio o el dominio principal; common, organizations y consumers se rechazan), config.client_id y secret (el valor de uno de los secretos de cliente de la aplicación); para Google, secret es el archivo de clave JSON de la cuenta de servicio.

El secreto se sella y nunca se devuelve. El modo screenrig_app usa la aplicación propia de screenRIG y no admite config ni secret: la conexión se crea en estado pending_consent y la respuesta lleva consent_url, un enlace de un solo uso (válido hasta consent_expires_at) para la persona que lo completa.

Para Microsoft es un administrador de Microsoft 365, que da su consentimiento a la aplicación de screenRIG para el tenant; el navegador inicia entonces sesión en el tenant que Microsoft nombra, de modo que la conexión registra el tenant confirmado, nunca uno que un callback solo afirme.

Para Google es el titular de la cuenta, que concede acceso de solo lectura a los calendarios que la cuenta puede ver; screenRIG guarda sellado el token de actualización y la dirección de la cuenta. El enlace es una credencial de un solo consentimiento: envíelo solo a esa persona.

Un servidor sin la aplicación de screenRIG para el proveedor responde 409 connection_app_not_configured, y las conexiones own_app siguen funcionando. Una organización tiene como máximo 50 conexiones en todos sus proyectos (connection_limit_reached). Añade connection.created.

Un reintento exacto con la misma Idempotency-Key devuelve la misma conexión (un reintento de screenrig_app recibe un enlace de consentimiento nuevo, que sustituye al primero).

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ConnectionWrite
ID de operación
createConnection

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
Idempotency-KeyencabezadoopcionalOmitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente.

Campos del cuerpo de la solicitud

CampoDescripción
provider (requerido, cadena)Permitido: "microsoft", "google"
mode (requerido, cadena)Permitido: "own_app", "screenrig_app"
nombre (requerido, cadena)minLength: 1 maxLength: 80
config (opcional, ConnectionConfigWrite)Microsoft, modo own_app: ambos miembros. No se acepta para una conexión de Google ni para el modo screenrig_app.
secret (opcional, cadena)

Modo own_app. Microsoft: el valor de uno de los secretos de cliente de la aplicación (no su ID; como máximo 1024 caracteres), con config.tenant_id y config.client_id. Google: el archivo de clave JSON de la cuenta de servicio, completo (como máximo 16384 bytes). Se sella al llegar y nunca se devuelve; la CLI lo lee de un archivo o de la entrada estándar, nunca de un argumento.

No se acepta en modo screenrig_app. minLength: 1 maxLength: 16384

Plantilla y respuestas de solicitud
shell · plantilla de solicitud
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'

Respuestas

EstadoSignificadoCuerpo y encabezados
201Creada. Una conexión en modo screenrig_app lleva consent_url y consent_expires_at.ConnectionConsent (application/json); encabezados: ETag, Location, Cache-Control
400invalid_request, que nombra el campo no válido.Problema (application/problem+json)
409connection_app_not_configured (este servidor no tiene aplicación de screenRIG para el proveedor), connection_limit_reached o idempotency_mismatch.Problema (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

Problema (application/problem+json)
GET/api/connections/{id}

Obtener conexión

Una conexión, con su estado, su último error y su última prueba.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
getConnection

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
idrutarequerido
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Una conexión.Connection (application/json); encabezados: ETag, Cache-Control
404not_found.Problema (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

Problema (application/problem+json)
PATCH/api/connections/{id}

Actualizar conexión

Cambia el nombre de una conexión o, en modo own_app, sus credenciales: config.tenant_id y config.client_id (Microsoft) o secret (un secreto enviado sustituye al sellado; uno omitido se conserva). Una conexión en modo screenrig_app solo puede cambiar de nombre: vuelva a conectarla (POST /api/connections/{id}/connect) para cambiar quién dio el consentimiento.

Un cambio de las credenciales devuelve la conexión a ready, borra last_error y last_test y retira todos los tokens emitidos para las credenciales anteriores. Añade connection.updated. If-Match protege la revisión.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ConnectionPatch
ID de operación
updateConnection

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
idrutarequerido
If-MatchencabezadoopcionalRevisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict.
Idempotency-KeyencabezadoopcionalOmitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente.

Campos del cuerpo de la solicitud

CampoDescripción
nombre (opcional, cadena)minLength: 1 maxLength: 80
config (opcional, ConnectionConfigWrite)Microsoft, modo own_app: ambos miembros. No se acepta para una conexión de Google ni para el modo screenrig_app.
secret (opcional, cadena)Sustituye el secreto o la clave almacenados; omítalo para conservar el almacenado. Solo modo own_app. minLength: 1 maxLength: 16384
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
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'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La conexión actualizada.Connection (application/json); encabezados: ETag, Cache-Control
400invalid_request, que nombra el campo no válido; config y secret no se aplican a una conexión en modo screenrig_app.Problema (application/problem+json)
404not_found.Problema (application/problem+json)
412revision_conflict.Problema (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

Problema (application/problem+json)
ELIMINAR/api/connections/{id}

Eliminar conexión

Elimina una conexión por la que no lee nada. Mientras una fuente de datos, una conexión de Power BI o una cuenta de sincronización de medios la usa, la respuesta es resource_conflict, que los nombra (used_by lista su tipo y su ID).

Eliminar no pone fin a lo que queda del lado del proveedor: un tenant de Microsoft 365 conserva la aplicación de screenRIG hasta que su administrador la quite, y una cuenta de Google conserva su concesión hasta que su titular la revoque. Añade connection.deleted. If-Match protege la revisión.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
deleteConnection

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
idrutarequerido
If-MatchencabezadoopcionalRevisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict.
Idempotency-KeyencabezadoopcionalOmitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID'

Respuestas

EstadoSignificadoCuerpo y encabezados
204Eliminado.sin cuerpo
404not_found.Problema (application/problem+json)
409resource_conflict, algo todavía lee a través de la conexión.Problema (application/problem+json)
412revision_conflict.Problema (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

Problema (application/problem+json)
POST/api/connections/{id}/test

Probar conexión

Inicia sesión con la conexión y guarda la respuesta como last_test.

Para Microsoft las comprobaciones son credentials (Microsoft emitió un token de aplicación para el tenant) y permissions (cuáles de Calendars.Read, Sites.Selected, Files.Read.All, Sites.Read.All y Place.Read.All lleva el token de la aplicación; una aplicación que no tiene ninguno no supera la comprobación, y Sites.Selected solo es una advertencia porque cada sitio de SharePoint necesita una concesión).

Para Google la comprobación es credentials: Google aceptó la cuenta de servicio o el token de actualización de la cuenta que concedió el acceso, y la respuesta nombra la cuenta a la que deben ser visibles los calendarios. Un rechazo es una comprobación fallida y pasa la conexión a error con last_error; un éxito la devuelve a ready.

No juzga el uso compartido de un calendario, una política de acceso a un buzón ni una concesión de sitio, algo que una fuente o una sincronización demuestra al ejecutarse. Como máximo 30 por minuto por organización.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
testConnection

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID/test'

Respuestas

EstadoSignificadoCuerpo y encabezados
200Las comprobaciones.ConnectionTest (application/json); encabezados: Cache-Control
404not_found.Problema (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

Problema (application/problem+json)
POST/api/connections/{id}/connect

Establecer conexión

Genera un nuevo enlace de consentimiento de un solo uso (consent_url, válido hasta consent_expires_at) para una conexión en modo screenrig_app, para enviarlo a la persona que lo completa: el administrador de Microsoft 365 o el titular de la cuenta de Google. Sustituye cualquier enlace anterior.

Una conexión que funciona se queda como está hasta que se completa el nuevo consentimiento, así que esto también renueva una que pasó a error (consentimiento retirado, acceso revocado) o la mueve a otro tenant o cuenta. El enlace es una credencial del consentimiento: envíelo solo a esa persona.

Cuando la persona termina, el navegador vuelve a GET /oauth/connections/{provider}/callback y se envía a la página de la conexión en el panel, que lee status y last_error. Una conexión en modo own_app no tiene paso de consentimiento (409 resource_conflict); un servidor sin la aplicación de screenRIG para el proveedor responde 409 connection_app_not_configured.

Autenticación
projectBearer O dashboardSession
Cuerpo de la solicitud
ninguno
ID de operación
connectConnection

Parámetros

NombreEnviar¿Requerido?Descripción
ScreenRig-ProjectencabezadoopcionalObsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token.
idrutarequerido
Idempotency-KeyencabezadoopcionalOmitir para una operación nueva. Proporcione y reutilice una clave para deduplicar reintentos; el CLI gestiona las claves automáticamente.
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID/connect'

Respuestas

EstadoSignificadoCuerpo y encabezados
200La conexión con un nuevo consent_url.ConnectionConsent (application/json); encabezados: ETag, Cache-Control
404not_found.Problema (application/problem+json)
409resource_conflict (la conexión está en modo own_app) o connection_app_not_configured.Problema (application/problem+json)
predeterminado

Respuesta estable RFC 9457 a problemas. Un 421 server_draining lleva Retry-After de 1 segundo, un 500 not_ready o dependency_unavailable lleva 5, y un 500 manifest_degraded lleva 60, a menos que el manejador establezca un valor más específico.

Problema (application/problem+json)
GET/oauth/connections/microsoft/callback

Completar el consentimiento de una conexión de Microsoft

A dónde envía Microsoft el navegador de un administrador de Microsoft 365 después de la página de consentimiento de administrador (y de nuevo después del paso de inicio de sesión que la sigue) para una conexión en modo screenrig_app.

No lleva ninguna credencial: el state firmado de la consulta es la única autoridad, se verifica antes de leer nada de lo que nombra y solo se respeta mientras sea el consentimiento pendiente de la conexión.

El primer retorno nombra un tenant, que no está autenticado: la respuesta es una redirección al inicio de sesión de ese tenant, cuyo código se canjea con el secreto de la aplicación y un verificador PKCE que solo este servidor puede derivar, y el tenant que lleva el token de ID es el que registra la conexión después de que un token de credenciales de cliente demuestre que la aplicación tiene allí sus permisos.

Cada resultado posterior a un state verificado redirige a la página de la conexión en el panel (/dashboard/connections/{id}?consent=connected o ?consent=failed), que lee status y last_error; el texto del error se construye a partir de frases fijas y de la propia respuesta de error de Microsoft (su código AADSTS), nunca a partir de lo que llevaba la consulta del callback.

Un state desconocido, caducado, usado, sustituido o de una conexión eliminada muestra una página que no nombra nada. Solo responde en el host de la API bajo el que están registrados los callbacks.

Autenticación
ninguno
Cuerpo de la solicitud
ninguno
ID de operación
completeMicrosoftConnectionConsent

Parámetros

NombreEnviar¿Requerido?Descripción
estadoconsultaopcional
admin_consentconsultaopcional
tenantconsultaopcional
códigoconsultaopcional
errorconsultaopcional
error_descriptionconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET 'https://api.screenrig.ai/oauth/connections/microsoft/callback'

Respuestas

EstadoSignificadoCuerpo y encabezados
302Al inicio de sesión de Microsoft para el tenant que dio su consentimiento, o a la página de la conexión en el panel.sin cuerpo
200Donde no hay panel configurado, una página que indica que la conexión está completa.cadena (text/html)
400Una página que indica que el enlace ya se usó o caducó, o, donde no hay panel configurado, por qué no se conectó nada.cadena (text/html)
429Demasiados callbacks desde esta dirección.sin cuerpo
GET/oauth/connections/google/callback

Completar el consentimiento de una conexión de Google

A dónde envía Google el navegador del titular de la cuenta después de la página de consentimiento para una conexión en modo screenrig_app.

No lleva ninguna credencial: el state firmado de la consulta es la única autoridad, se verifica antes de leer nada de lo que nombra y solo se respeta mientras sea el consentimiento pendiente de la conexión. screenRIG canjea el código con el secreto de la aplicación y un verificador PKCE que solo este servidor puede derivar, exige que se haya concedido el ámbito de calendario (una persona puede desmarcarlo en la página de consentimiento) y un token de actualización, lee la cuenta que concedió el acceso del token de ID que Google devolvió en esa llamada, sella el token de actualización y añade connection.connected.

Cada resultado posterior a un state verificado redirige a la página de la conexión en el panel (/dashboard/connections/{id}?consent=connected o ?consent=failed), que lee status y last_error. Un state desconocido, caducado, usado, sustituido o de una conexión eliminada muestra una página que no nombra nada.

Solo responde en el host de la API bajo el que están registrados los callbacks.

Autenticación
ninguno
Cuerpo de la solicitud
ninguno
ID de operación
completeGoogleConnectionConsent

Parámetros

NombreEnviar¿Requerido?Descripción
estadoconsultaopcional
códigoconsultaopcional
errorconsultaopcional
Plantilla y respuestas de solicitud
shell · plantilla de solicitud
curl --request GET 'https://api.screenrig.ai/oauth/connections/google/callback'

Respuestas

EstadoSignificadoCuerpo y encabezados
302A la página de la conexión en el panel.sin cuerpo
200Donde no hay panel configurado, una página que indica que la conexión está completa.cadena (text/html)
400Una página que indica que el enlace ya se usó o caducó, o, donde no hay panel configurado, por qué no se conectó nada.cadena (text/html)
429Demasiados callbacks desde esta dirección.sin cuerpo