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.
Webhooks : livraison d’événements signés
Lister les webhooks
Liste les notifications webhook du projet au format webhook, de la plus ancienne à la plus récente (50 au plus); GET /api/notifications liste tous les canaux. Le secret de signature n’est jamais renvoyé ici. Exige la capacité project; un justificatif d’identité limité aux rapports est refusé avec 403 forbidden, car la réponse comprend les URL des récepteurs.
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. |
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/webhooks'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Les webhooks du projet. | WebhookList (application/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 un webhook
Crée un webhook qui reçoit les événements durables du projet sous forme de POST HTTPS signés. L’URL doit être https sur un hôte Internet public : une adresse IP littérale ou chaque réponse DNS actuelle du nom doit être publique (privé, loopback, link-local, CGNAT, IPv6 hors 2000::/3, documentation et autres plages réservées sont refusées avec webhook_url_rejected).
Le port doit être 443 (par défaut) ou 8443, sinon webhook_url_rejected. L’hôte est résolu et vérifié à nouveau avant chaque livraison et la connexion est établie à l’adresse vérifiée exacte, donc une réponse DNS qui change plus tard ne peut pas rediriger les livraisons. event_types liste les types d’événements exacts (screen.online) ou les préfixes finissant par .* (screen.*).
Une organisation compte au plus 50 notifications, tous canaux confondus (webhook_limit_reached). Le serveur génère le secret de signature et ne le renvoie que dans cette réponse et dans rotate-secret; conservez-le. Une nouvelle tentative identique avec la même Idempotency-Key renvoie cette même réponse, secret compris, pendant vingt-quatre heures.
La livraison commence avec le premier événement après notification.created.
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 |
|---|---|
| url (obligatoire, chaîne) | URL https sur un hôte Internet public, port 443 (par défaut) ou 8443. Pas d’informations utilisateur ni de fragment. maxLength : 2048 format : « uri » |
| event_types (obligatoire, WebhookEventTypes) | Types d'événements exacts comme screen.online, ou préfixes se terminant par .* comme screen.* (tous les types commençant par screen.). notification.test n'est jamais diffusé par un abonnement; il n'est envoyé que par POST /api/webhooks/{id}/test. |
| activé (optionnel, booléen) | vrai |
| description (optionnelle, chaîne) | maxLength : 200 |
Modèle de requête et réponses
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/webhooks'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 201 | Créé. Le secret n’est affiché qu’ici et lors de la rotation du secret. | WebhookWithSecret (application/json) ; en-têtes : Cache-Control |
| 400 | invalid_request ou webhook_url_rejected. | Problème (application/problem+json) |
| 409 | webhook_limit_reached, idempotency_mismatch ou resource_conflict lorsque le projet n’appartient à aucune organisation. | 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 le webhook
Requiert la capacité du projet ; un justificatif en lecture seule est refusé 403 interdit, car la réponse inclut des URL de récepteur.
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/webhooks/RESOURCE_ID'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Un webhook. | Webhook (application/json) ; en-têtes : ETag |
| 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) |
Mettre à jour le webhook
Modifie l’un des éléments url, event_types, activé et description (une description vide la supprime). Une nouvelle url est vérifiée comme à la création.
Activer un webhook désactivé efface son état d’échec et démarre la livraison à l’événement qui enregistre le changement ; les événements survenus pendant sa désactivation ne sont pas rejoués, et les livraisons encore en attente d’avant la désactivation échouent avec webhook_disabled. Désactiver un webhook échoue ses livraisons en attente avec webhook_disabled.
Ajoute notification.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 |
|---|---|
| url (optionnelle, chaîne) | maxLength : 2048 format : « uri » |
| event_types (optionnel, WebhookEventTypes) | Types d'événements exacts comme screen.online, ou préfixes se terminant par .* comme screen.* (tous les types commençant par screen.). notification.test n'est jamais diffusé par un abonnement; il n'est envoyé que par POST /api/webhooks/{id}/test. |
| activé (optionnel, booléen) | |
| description (optionnelle, chaîne) | Une chaîne vide efface la description. maxLength : 200 |
Modèle de requête et réponses
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/webhooks/RESOURCE_ID'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Webhook mis à jour. | Webhook (application/json) ; en-têtes : ETag |
| 400 | invalid_request ou webhook_url_rejected. | Problème (application/problem+json) |
| 412 | revision_conflict — If-Match est périmé; la propriété current_revision de l’erreur contient la révision actuelle. | 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 le webhook
Supprime le webhook et ajoute notification.deleted. Ses livraisons en attente sont marquées comme échouées avec webhook_deleted; son journal de livraison n'est plus adressable et expire avec la conservation des événements.
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/webhooks/RESOURCE_ID'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 204 | Supprimé. | pas de corps; en-têtes : Cache-Control |
| 412 | revision_conflict — If-Match est périmé; la propriété current_revision de l’erreur contient la révision actuelle. | 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) |
Faire pivoter le secret Webhook
Remplace le secret de signature et renvoie le nouveau; l'ancien secret cesse de signer immédiatement : toute tentative qui signe après la validation de cette opération utilise le nouveau secret, et au plus une tentative par webhook déjà en cours peut encore arriver signée avec l'ancien, donc acceptez les deux brièvement. Ajoute notification.updated avec details.changed [secret].
Une nouvelle tentative exacte avec la même Idempotency-Key retourne le même nouveau secret pendant vingt-quatre heures.
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 POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' 'https://api.screenrig.ai/api/webhooks/RESOURCE_ID/rotate-secret'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Le webhook et son nouveau secret. | WebhookWithSecret (application/json) ; en-têtes : Cache-Control |
| 412 | revision_conflict — If-Match est périmé; la propriété current_revision de l’erreur contient la révision actuelle. | 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) |
Webhook de test
Ajoute un événement de projet notification.test et met en file d'attente une livraison de cet événement pour ce webhook uniquement (aucun autre webhook ne reçoit notification.test). Il fonctionne sur un webhook désactivé, n'est tenté qu'une fois, sans nouvelle tentative, est mesuré comme toute livraison et ne modifie jamais l'état d'échec du webhook. Interrogez le journal des livraisons pour en connaître le résultat.
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]' 'https://api.screenrig.ai/api/webhooks/RESOURCE_ID/test'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 202 | La livraison de test en file d’attente. | WebhookDelivery (application/json) ; en-têtes : RateLimit-Policy, RateLimit |
| 429 | Problème stable rate_limited. Réessayez seulement après l’intervalle Retry-After autoritaire. Les refus à fenêtre fixe incluent aussi la politique RateLimit-Policy applicable et les membres RateLimit ; les refus de concurrence et de budget d’octets omettent ces divulgations optionnelles. | Problème (application/problem+json) ; en-têtes : Retry-After, RateLimit-Policy, RateLimit |
| 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) |
Lister les livraisons de webhook
Le journal de livraison du webhook, événement le plus récent en premier. Une ligne par (webhook, événement) ; les tentatives de nouvelle livraison mettent à jour la ligne et GET .../deliveries/{delivery_id}/attempts liste ses tentatives les plus récentes. Les lignes sont conservées comme les événements (la rétention des événements du plan, au moins la fenêtre de nouvelle tentative de 24 heures). Renvoyez next_cursor dans le paramètre before pour la page suivante.
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 | |
| avant | requête | optionnel | next_cursor de la page précédente des livraisons. |
| limite | requête | optionnel |
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/webhooks/RESOURCE_ID/deliveries'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Une page de livraisons. | WebhookDeliveryList (application/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) |
Lister les tentatives de livraison de webhook
Les tentatives d’une livraison, les plus récentes en premier, les 20 dernières, conservées avec la ligne de livraison et aussi longtemps. Chacune a son numéro de tentative, sa fin, le statut HTTP du récepteur (null quand aucun n’a répondu), la classe d’erreur (null en cas de succès) et sa durée. Les corps et en-têtes de réponse ne sont jamais conservés. Une livraison enregistrée avant la conservation des tentatives n’en liste aucune.
Une livraison qui n’est pas celle de ce webhook, ou un webhook d’un autre projet, est not_found.
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 | |
| delivery_id | chemin | obligatoire | L’identifiant d’une des livraisons du webhook. |
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/webhooks/RESOURCE_ID/deliveries/DELIVERY_ID/attempts'Réponses
| Statut | Sens | Corps et en-têtes |
|---|---|---|
| 200 | Les tentatives conservées de la livraison. | WebhookDeliveryAttemptList (application/json) |
| 404 | 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) |
| 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) |