OpenAPI YAMLOpenAPI JSONproblemas YAMLResumen de la API
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
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.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| después | consulta | opcional | next_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
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una página de conexiones. | ConnectionList (application/json); encabezados: Cache-Control |
| 400 | invalid_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) |
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).
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| Idempotency-Key | encabezado | opcional | Omitir 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
| Campo | Descripció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
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
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 201 | Creada. Una conexión en modo screenrig_app lleva consent_url y consent_expires_at. | ConnectionConsent (application/json); encabezados: ETag, Location, Cache-Control |
| 400 | invalid_request, que nombra el campo no válido. | Problema (application/problem+json) |
| 409 | connection_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) |
Obtener conexión
Una conexión, con su estado, su último error y su última prueba.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido |
Plantilla y respuestas 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
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Una conexión. | Connection (application/json); encabezados: ETag, Cache-Control |
| 404 | not_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) |
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.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir 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
| Campo | Descripció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
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
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La conexión actualizada. | Connection (application/json); encabezados: ETag, Cache-Control |
| 400 | invalid_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) |
| 404 | not_found. | Problema (application/problem+json) |
| 412 | revision_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 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.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| If-Match | encabezado | opcional | Revisión positiva opcional de recurso. Omitir para escribir el recurso actual; una revisión obsoleta suministrada es revision_conflict. |
| Idempotency-Key | encabezado | opcional | Omitir 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
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 204 | Eliminado. | sin cuerpo |
| 404 | not_found. | Problema (application/problem+json) |
| 409 | resource_conflict, algo todavía lee a través de la conexión. | Problema (application/problem+json) |
| 412 | revision_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) |
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.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Idempotency-Key | encabezado | opcional | Omitir 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
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID/test'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | Las comprobaciones. | ConnectionTest (application/json); encabezados: Cache-Control |
| 404 | not_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) |
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.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| ScreenRig-Project | encabezado | opcional | Obsoleto por una versión. Debe ser consistente con las concesiones de proyectos JWT; añade encabezados Deprecation y Warning. Sin intercambio de token. |
| id | ruta | requerido | |
| Idempotency-Key | encabezado | opcional | Omitir 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
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID/connect'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 200 | La conexión con un nuevo consent_url. | ConnectionConsent (application/json); encabezados: ETag, Cache-Control |
| 404 | not_found. | Problema (application/problem+json) |
| 409 | resource_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) |
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.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| estado | consulta | opcional | |
| admin_consent | consulta | opcional | |
| tenant | consulta | opcional | |
| código | consulta | opcional | |
| error | consulta | opcional | |
| error_description | consulta | opcional |
Plantilla y respuestas de solicitud
curl --request GET 'https://api.screenrig.ai/oauth/connections/microsoft/callback'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 302 | Al 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 |
| 200 | Donde no hay panel configurado, una página que indica que la conexión está completa. | cadena (text/html) |
| 400 | Una 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) |
| 429 | Demasiados callbacks desde esta dirección. | sin cuerpo |
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.
Parámetros
| Nombre | Enviar | ¿Requerido? | Descripción |
|---|---|---|---|
| estado | consulta | opcional | |
| código | consulta | opcional | |
| error | consulta | opcional |
Plantilla y respuestas de solicitud
curl --request GET 'https://api.screenrig.ai/oauth/connections/google/callback'Respuestas
| Estado | Significado | Cuerpo y encabezados |
|---|---|---|
| 302 | A la página de la conexión en el panel. | sin cuerpo |
| 200 | Donde no hay panel configurado, una página que indica que la conexión está completa. | cadena (text/html) |
| 400 | Una 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) |
| 429 | Demasiados callbacks desde esta dirección. | sin cuerpo |