OpenAPI YAMLOpenAPI JSONproblèmes YAMLVue d’ensemble de l’API
Ce groupe compte 9 opérations, générées à partir de api/openapi.yaml. Filtrez par chemin, action ou authentification. Chaque point de terminaison liste ses entrées ; développez-le pour voir un modèle de requête et les codes de réponse. Les modèles demandent vos propres valeurs et un corps conforme au schéma.
Remplacez les espaces réservés en majuscules par vos valeurs. Pour une requête JSON, enregistrez un corps correspondant au schéma dans request.json. Les exemples de cookies utilisent un pot à cookies local issu d’une session authentifiée.
Connexions : l’accès réutilisable d’un projet à Microsoft et à Google
Lister les connexions
Liste les connexions du projet, les plus récentes d’abord, au plus 200 par page ; renvoyez next_cursor comme after pour la suivante.
Une connexion est l’accès réutilisable du projet à Microsoft ou à Google pour les sources qui s’exécutent sans surveillance : une source de données microsoft365 ou google_calendar, une connexion Power BI et un compte de synchronisation de médias SharePoint en nomment une dans config.connection_id au lieu de porter leurs propres identifiants (docs/connections.md).
Un secret, une clé ou un jeton d’actualisation n’est jamais renvoyé : secret indique si l’un d’eux est conservé et un indice qui n’est pas secret. Une lecture ne porte jamais de lien de consentement.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton. |
| après | requête | optionnel | next_cursor de la page précédente de la même liste, avec les mêmes filtres. Omission commence à la ligne la plus récente. Une valeur qui n’est pas un tel curseur est invalid_request. |
Modèle de requête et réponses
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Une page de connexions. | ConnectionList (application/json); en-têtes : Cache-Control |
| 400 | invalid_request, y notamment un curseur mal formé. | Problème (application/problem+json) |
| par défaut | Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique. | Problème (application/problem+json) |
Créer une connexion
Crée une connexion à Microsoft (provider microsoft) ou à Google (provider google). Le mode own_app est l’application propre du client : pour Microsoft, config.tenant_id (l’ID de répertoire ou le domaine principal ; common, organizations et consumers sont refusés), config.client_id et secret (la valeur de l’un des secrets client de l’application) ; pour Google, secret est le fichier de clé JSON du compte de service.
Le secret est scellé et jamais renvoyé. Le mode screenrig_app utilise l’application propre de screenRIG et n’accepte ni config ni secret : la connexion est créée à l’état pending_consent et la réponse porte consent_url, un lien à usage unique (valide jusqu’à consent_expires_at) pour la personne qui le complète.
Pour Microsoft, c’est un administrateur Microsoft 365, qui consent à l’application de screenRIG pour le locataire ; le navigateur ouvre ensuite une session auprès du locataire que Microsoft nomme, de sorte que la connexion enregistre le locataire confirmé, jamais un locataire qu’un callback ne ferait que prétendre.
Pour Google, c’est le titulaire du compte, qui accorde un accès en lecture seule aux calendriers que le compte peut voir ; screenRIG conserve le jeton d’actualisation scellé et l’adresse du compte. Le lien est un identifiant d’un seul consentement : ne l’envoyez qu’à cette personne.
Un serveur sans l’application de screenRIG pour le fournisseur répond 409 connection_app_not_configured, et les connexions own_app continuent de fonctionner. Une organisation a au plus 50 connexions dans l’ensemble de ses projets (connection_limit_reached). Ajoute connection.created.
Une nouvelle tentative identique avec la même Idempotency-Key renvoie la même connexion (une nouvelle tentative screenrig_app reçoit un nouveau lien de consentement, qui remplace le premier).
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton. |
| Idempotency-Key | en-tête | optionnel | Omettre pour une opération fraîche. Fournissez et réutilisez une clé pour dédupliquer les tentatives ; le CLI gère les clés automatiquement. |
Champs du corps de la requête
| Champ | Description |
|---|---|
| provider (obligatoire, chaîne) | Autorisés : « microsoft », « google » |
| mode (obligatoire, chaîne) | Autorisés : « own_app », « screenrig_app » |
| nom (obligatoire, chaîne) | minLength : 1 maxLength : 80 |
| config (facultatif, ConnectionConfigWrite) | Microsoft, mode own_app : les deux membres. Non accepté pour une connexion Google ni pour le mode screenrig_app. |
| secret (facultatif, chaîne) | Mode own_app. Microsoft : la valeur de l’un des secrets client de l’application (pas son ID ; 1024 caractères au plus), avec config.tenant_id et config.client_id. Google : le fichier de clé JSON du compte de service, en entier (16384 octets au plus). Scellé à l’arrivée et jamais renvoyé ; la CLI le lit depuis un fichier ou l’entrée standard, jamais depuis un argument. Non accepté en mode screenrig_app. minLength: 1 maxLength: 16384 |
Modèle de requête et réponses
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'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Créée. Une connexion en mode screenrig_app porte consent_url et consent_expires_at. | ConnectionConsent (application/json); en-têtes : ETag, Location, Cache-Control |
| 400 | invalid_request, qui nomme le champ non valide. | Problème (application/problem+json) |
| 409 | connection_app_not_configured (ce serveur n’a pas d’application screenRIG pour le fournisseur), connection_limit_reached ou idempotency_mismatch. | Problème (application/problem+json) |
| par défaut | Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique. | Problème (application/problem+json) |
Obtenir une connexion
Une connexion, avec son statut, sa dernière erreur et son dernier test.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton. |
| id | chemin | obligatoire |
Modèle de requête et réponses
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Une connexion. | Connection (application/json); en-têtes : ETag, Cache-Control |
| 404 | not_found. | Problème (application/problem+json) |
| par défaut | Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique. | Problème (application/problem+json) |
Modifier une connexion
Modifie le nom d’une connexion ou, en mode own_app, ses identifiants : config.tenant_id et config.client_id (Microsoft) ou secret (un secret envoyé remplace celui qui est scellé ; un secret omis est conservé). Une connexion en mode screenrig_app ne peut qu’être renommée : reconnectez-la (POST /api/connections/{id}/connect) pour changer la personne qui a donné son consentement.
Une modification des identifiants ramène la connexion à ready, efface last_error et last_test et retire tous les jetons émis pour les anciens identifiants. Ajoute connection.updated. If-Match protège la révision.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton. |
| id | chemin | obligatoire | |
| If-Match | en-tête | optionnel | Révision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict. |
| Idempotency-Key | en-tête | optionnel | Omettre pour une opération fraîche. Fournissez et réutilisez une clé pour dédupliquer les tentatives ; le CLI gère les clés automatiquement. |
Champs du corps de la requête
| Champ | Description |
|---|---|
| nom (optionnel, chaîne) | minLength : 1 maxLength : 80 |
| config (facultatif, ConnectionConfigWrite) | Microsoft, mode own_app : les deux membres. Non accepté pour une connexion Google ni pour le mode screenrig_app. |
| secret (facultatif, chaîne) | Remplace le secret ou la clé stockés ; omettez-le pour conserver celui qui est stocké. Mode own_app seulement. minLength: 1 maxLength: 16384 |
Modèle de requête et réponses
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'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | La connexion mise à jour. | Connection (application/json); en-têtes : ETag, Cache-Control |
| 400 | invalid_request, qui nomme le champ non valide ; config et secret ne s’appliquent pas à une connexion en mode screenrig_app. | Problème (application/problem+json) |
| 404 | not_found. | Problème (application/problem+json) |
| 412 | revision_conflict. | Problème (application/problem+json) |
| par défaut | Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique. | Problème (application/problem+json) |
Supprimer une connexion
Supprime une connexion par laquelle rien ne lit. Tant qu’une source de données, une connexion Power BI ou un compte de synchronisation de médias en utilise une, la réponse est resource_conflict, qui les nomme (used_by liste leur type et leur ID).
La suppression ne met pas fin au côté du fournisseur : un locataire Microsoft 365 conserve l’application de screenRIG jusqu’à ce que son administrateur la retire, et un compte Google conserve son autorisation jusqu’à ce que son titulaire la révoque. Ajoute connection.deleted. If-Match protège la révision.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton. |
| id | chemin | obligatoire | |
| If-Match | en-tête | optionnel | Révision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict. |
| Idempotency-Key | en-tête | optionnel | Omettre pour une opération fraîche. Fournissez et réutilisez une clé pour dédupliquer les tentatives ; le CLI gère les clés automatiquement. |
Modèle de requête et réponses
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 204 | Supprimé. | pas de corps |
| 404 | not_found. | Problème (application/problem+json) |
| 409 | resource_conflict, quelque chose lit encore par la connexion. | Problème (application/problem+json) |
| 412 | revision_conflict. | Problème (application/problem+json) |
| par défaut | Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique. | Problème (application/problem+json) |
Tester une connexion
Ouvre une session avec la connexion et enregistre la réponse comme last_test.
Pour Microsoft, les vérifications sont credentials (Microsoft a émis un jeton d’application pour le locataire) et permissions (lesquelles parmi Calendars.Read, Sites.Selected, Files.Read.All, Sites.Read.All et Place.Read.All le jeton de l’application porte ; une application qui n’en détient aucune échoue à la vérification, et Sites.Selected seule est un avertissement, car chaque site SharePoint exige une autorisation).
Pour Google, la vérification est credentials : Google a accepté le compte de service ou le jeton d’actualisation du compte qui a accordé l’accès, et la réponse nomme le compte auquel les calendriers doivent être visibles. Un refus est une vérification échouée et fait passer la connexion à error avec last_error ; un succès la ramène à ready.
Elle ne juge pas le partage d’un calendrier, une politique d’accès à une boîte aux lettres ni une autorisation de site, ce que prouve une source ou une synchronisation quand elle s’exécute. Au plus 30 par minute par organisation.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton. |
| id | chemin | obligatoire | |
| Idempotency-Key | en-tête | optionnel | Omettre pour une opération fraîche. Fournissez et réutilisez une clé pour dédupliquer les tentatives ; le CLI gère les clés automatiquement. |
Modèle de requête et réponses
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID/test'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Les vérifications. | ConnectionTest (application/json); en-têtes : Cache-Control |
| 404 | not_found. | Problème (application/problem+json) |
| par défaut | Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique. | Problème (application/problem+json) |
Connecter une connexion
Crée un nouveau lien de consentement à usage unique (consent_url, valide jusqu’à consent_expires_at) pour une connexion en mode screenrig_app, à envoyer à la personne qui le complète : l’administrateur Microsoft 365 ou le titulaire du compte Google. Il remplace tout lien précédent.
Une connexion qui fonctionne reste telle quelle jusqu’à ce que le nouveau consentement soit terminé ; cela permet donc aussi de renouveler une connexion passée à error (consentement retiré, accès révoqué) ou de la déplacer vers un autre locataire ou compte. Le lien est un identifiant du consentement : ne l’envoyez qu’à cette personne.
Quand la personne a terminé, le navigateur revient à GET /oauth/connections/{provider}/callback et est redirigé vers la page de la connexion dans le tableau de bord, qui lit status et last_error. Une connexion en mode own_app n’a pas d’étape de consentement (409 resource_conflict) ; un serveur sans l’application de screenRIG pour le fournisseur répond 409 connection_app_not_configured.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| ScreenRig-Project | en-tête | optionnel | Obsolète pour une version. Doit être cohérent avec les droits JWT des projets ; ajoute les en-têtes Deprecation et Warning. Pas d’échange de jeton. |
| id | chemin | obligatoire | |
| Idempotency-Key | en-tête | optionnel | Omettre pour une opération fraîche. Fournissez et réutilisez une clé pour dédupliquer les tentatives ; le CLI gère les clés automatiquement. |
Modèle de requête et réponses
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/connections/RESOURCE_ID/connect'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | La connexion avec un nouveau consent_url. | ConnectionConsent (application/json); en-têtes : ETag, Cache-Control |
| 404 | not_found. | Problème (application/problem+json) |
| 409 | resource_conflict (la connexion est en mode own_app) ou connection_app_not_configured. | Problème (application/problem+json) |
| par défaut | Réponse stable RFC 9457 à un problème. Un 421 server_draining porte un Retry-After de 1 seconde, un 500 not_ready ou dependency_unavailable porte 5, et un 500 manifest_degraded porte 60, sauf si le gestionnaire a défini une valeur plus spécifique. | Problème (application/problem+json) |
Terminer le consentement d’une connexion Microsoft
L’adresse vers laquelle Microsoft renvoie le navigateur d’un administrateur Microsoft 365 après la page de consentement de l’administrateur (et de nouveau après l’étape d’ouverture de session qui la suit) pour une connexion en mode screenrig_app.
Elle ne porte aucun identifiant : le state signé de la requête est la seule autorité, il est vérifié avant que rien de ce qu’il nomme ne soit lu, et il n’est honoré que tant qu’il correspond au consentement en attente de la connexion.
Le premier retour nomme un locataire, qui n’est pas authentifié : la réponse est une redirection vers la page d’ouverture de session de ce locataire, dont le code est échangé avec le secret de l’application et un vérificateur PKCE que seul ce serveur peut dériver, et le locataire que porte le jeton d’ID est celui que la connexion enregistre une fois qu’un jeton d’identifiants client prouve que l’application y détient ses permissions.
Chaque résultat après un state vérifié redirige vers la page de la connexion dans le tableau de bord (/dashboard/connections/{id}?consent=connected ou ?consent=failed), qui lit status et last_error ; le texte d’erreur est construit à partir de phrases fixes et de la propre réponse d’erreur de Microsoft (son code AADSTS), jamais à partir de ce que la requête du callback portait.
Un state inconnu, expiré, utilisé, remplacé ou qui concerne une connexion supprimée affiche une page qui ne nomme rien. Ne répond que sur l’hôte d’API sous lequel les callbacks sont enregistrés.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| état | requête | optionnel | |
| admin_consent | requête | optionnel | |
| tenant | requête | optionnel | |
| code | requête | optionnel | |
| erreur | requête | optionnel | |
| error_description | requête | optionnel |
Modèle de requête et réponses
curl --request GET 'https://api.screenrig.ai/oauth/connections/microsoft/callback'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 302 | Vers la page d’ouverture de session de Microsoft pour le locataire qui a donné son consentement, ou vers la page de la connexion dans le tableau de bord. | pas de corps |
| 200 | Là où aucun tableau de bord n’est configuré, une page qui indique que la connexion est terminée. | chaîne (text/html) |
| 400 | Une page qui indique que le lien a déjà été utilisé ou a expiré, ou, là où aucun tableau de bord n’est configuré, pourquoi rien n’a été connecté. | chaîne (text/html) |
| 429 | Trop de callbacks provenant de cette adresse. | pas de corps |
Terminer le consentement d’une connexion Google
L’adresse vers laquelle Google renvoie le navigateur du titulaire du compte après la page de consentement, pour une connexion en mode screenrig_app.
Elle ne porte aucun identifiant : le state signé de la requête est la seule autorité, il est vérifié avant que rien de ce qu’il nomme ne soit lu, et il n’est honoré que tant qu’il correspond au consentement en attente de la connexion. screenRIG échange le code avec le secret de l’application et un vérificateur PKCE que seul ce serveur peut dériver, exige que la portée calendrier ait été accordée (une personne peut la décocher sur la page de consentement) et un jeton d’actualisation, lit le compte qui a accordé l’accès dans le jeton d’ID que Google a renvoyé lors de cet appel, scelle le jeton d’actualisation et ajoute connection.connected.
Chaque résultat après un state vérifié redirige vers la page de la connexion dans le tableau de bord (/dashboard/connections/{id}?consent=connected ou ?consent=failed), qui lit status et last_error. Un state inconnu, expiré, utilisé, remplacé ou qui concerne une connexion supprimée affiche une page qui ne nomme rien.
Ne répond que sur l’hôte d’API sous lequel les callbacks sont enregistrés.
Paramètres
| Nom | Envoyer | Requis ? | Description |
|---|---|---|---|
| état | requête | optionnel | |
| code | requête | optionnel | |
| erreur | requête | optionnel |
Modèle de requête et réponses
curl --request GET 'https://api.screenrig.ai/oauth/connections/google/callback'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 302 | Vers la page de la connexion dans le tableau de bord. | pas de corps |
| 200 | Là où aucun tableau de bord n’est configuré, une page qui indique que la connexion est terminée. | chaîne (text/html) |
| 400 | Une page qui indique que le lien a déjà été utilisé ou a expiré, ou, là où aucun tableau de bord n’est configuré, pourquoi rien n’a été connecté. | chaîne (text/html) |
| 429 | Trop de callbacks provenant de cette adresse. | pas de corps |