Référence API

API Déclencheurs d’alerte

Déclencheurs d’alerte CAP

Référence HTTP. Générée à partir du contrat backend. Parcourez les points de terminaison ci-dessous ou téléchargez OpenAPI.

Ce groupe compte 12 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.

Déclencheurs d’alerte CAP

GET/api/triggers

Lister les déclencheurs

Liste les déclencheurs du projet (CAP et superposition), du plus ancien au plus récent (20 au plus), chacun avec son url d’ingestion, son username et sa dernière alerte ou son état de superposition. Aucun secret n’est jamais renvoyé ici.

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
listTriggers

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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
shell · modèle de requête
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers'

Réponses

StatutSensCorps et en-têtes
200Les déclencheurs du projet.TriggerList (application/json) ; en-têtes : Cache-Control
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)
POST/api/triggers

Créer un déclencheur

Crée un déclencheur d’alerte CAP : une URL entrante à laquelle un système de notification d’urgence (Everbridge, Rave, Alertus, relais IPAWS et autres émetteurs CAP 1.2) poste des alertes, avec des identifiants HTTP Basic.

La réponse est le seul endroit où le mot de passe apparaît (avec la réponse de rotation) : stockez-le immédiatement dans le système d’envoi. target est une balise (chaque écran actif avec elle à l’arrivée de l’alerte) ou jusqu’à 500 screen_ids.

Une alerte prend le contrôle de chaque écran cible avec une liste de lecture par défaut jusqu’à l’alerte <expires>, sinon pour default_for_seconds (60 à 604800, défaut 3600) ; voir POST /api/triggers/{id}/cap. Une organisation a au maximum 20 déclencheurs, tous projets confondus (trigger_limit_reached). Ajoute trigger.created.

Une nouvelle tentative exacte avec la même Idempotency-Key retourne cette même réponse, mot de passe inclus, pendant vingt-quatre heures.

Le pull facultatif ajoute des sources CAP que la plateforme lit pour le déclencheur (voir CapPull) ; l’url d’ingestion continue de fonctionner à côté. kind overlay crée plutôt le second type : une url d’entrée (POST /api/triggers/{id}/overlay) où n’importe quel système (Home Assistant, une caméra, un outil d’alertes) publie quelques mots, affichés sur les écrans ciblés en bande par-dessus ce qui est diffusé (overlay.show bar, sur le bord inférieur ou supérieur) ou en prise de contrôle (overlay.show takeover) tant qu’une alerte dure ; voir TriggerOverlay.

Avec signing à true, la réponse porte aussi le secret de signature, une seule fois. verify fait authentifier un envoi par la signature propre d’un fournisseur (GitHub, Stripe, Shopify, Slack, Linear, Vercel, Asana ou tout expéditeur HMAC) à la place du mot de passe, qui continue de fonctionner à côté ; il ne peut pas être combiné avec signing, et son secret est scellé et jamais renvoyé, seulement un indice. handshake nomme une poignée de main de fournisseur à laquelle l’URL répond (Microsoft Graph, monday.com, Trello ou Azure Event Grid ; verify slack et asana répondent à la leur).

Les maintiens de superposition durent de 10 à 604800 secondes (par défaut 600). Un déclencheur dont le sélecteur atteint un écran protégé donne protected_target (409), et un échec de lecture de la protection d’un écran donne dependency_unavailable (500, relancez la même requête) ; un déclencheur n’est pas disponible pour un appelant limité aux écrans.

Authentification
projectBearer OU dashboardSession
Corps de la requête
TriggerWrite
ID d’opération
createTrigger

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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-Keyen-têteoptionnelOmettre 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

ChampDescription
kind (facultatif, chaîne)Autorisés : "cap", "overlay" par défaut : "cap"
étiquette (obligatoire, chaîne)minLength : 1 maxLength : 80
cible (requise, TriggerTarget)Exactement un de tag et screen_ids.
default_for_seconds (optionnel, entier)

Durée pendant laquelle une alerte sans <expires> retient les écrans : de 60 à 604800, 3600 par défaut, pour un déclencheur CAP ; durée pendant laquelle un envoi sans duration retient son alerte : de 10 à 604800, 600 par défaut, pour un déclencheur de superposition. minimum : 10 maximum : 604800

pull (optionnel, CapPull)

Sources CAP que la plateforme lit pour le déclencheur, avec où se trouvent les écrans cibles et quelles alertes comptent : les paramètres d’un placement de carte d’alerte cap (docs/feeds.md « CAP alerts »). Chaque URL source est récupérée une fois par minute pour chaque déclencheur et placement qui la nomme.

Sans sources, les flux publics de la plateforme couvrant l’emplacement sont lus (NWS, Canada NAAD et MeteoAlarm pour un emplacement avec codes régionaux). L’alerte correspondante la plus sévère prend le contrôle des écrans cibles exactement comme un message poussé le ferait ; lorsque les sources n’en montrent aucune (annulation ou expiration), une alerte tirée prend fin.

Une source périmée ou défaillante ne termine jamais une alerte. location est requis sauf si des sources sont données.

overlay (facultatif, TriggerOverlayWrite)
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/triggers'

Réponses

StatutSensCorps et en-têtes
201Créé, avec son URL, nom d’utilisateur et mot de passe.TriggerWithPassword (application/json); en-têtes : ETag, Cache-Control
400invalid_request, incluant une étiquette mal formée ou à la fois une étiquette et des screen_ids.Problème (application/problem+json)
409trigger_limit_reached, idempotency_mismatch, ou protected_target quand le sélecteur atteint un écran d’un dossier d’écrans protégé.Problème (application/problem+json)
500dependency_unavailable - la vérification des dossiers d’écrans protégés n’a pas pu s’exécuter ; renvoyez la même requête après une courte attente.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)
GET/api/triggers/{id}

Obtenir le déclencheur

Un déclencheur avec sa dernière alerte ou, pour un déclencheur de superposition, ses alertes actives (la plus récente en premier, la première s’affiche), les totaux de diffusion et l’indication du travail en attente. Une alerte dont until est passé est lue comme terminée avec ended_reason expired.

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
getTrigger

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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.
idcheminobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers/RESOURCE_ID'

Réponses

StatutSensCorps et en-têtes
200Un déclencheur.Déclencheur (application/json) ; en-têtes : ETag, Cache-Control
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)
PATCH/api/triggers/{id}

Modifier un déclencheur

Modifie un déclencheur sans changer son URL ni son secret : label, target, default_for_seconds, le pull d’un déclencheur CAP (null le retire) et, pour un déclencheur de superposition, overlay.edge, style (remplace tout le style ; null l’efface), mapping (null le retire), enabled, signing, verify (null le retire ; sans secret, il conserve celui qui est stocké quand le fournisseur est le même) et handshake (null le retire).

Un déclencheur de superposition désactivé répond à son expéditeur par le même 404 qu’un mauvais secret. Activer la signature renvoie le secret de signature une seule fois dans cette réponse. Une bande se replace sur les nouveaux écrans cibles et le nouveau bord ; la nouvelle cible d’un déclencheur de prise de contrôle s’applique dès la prochaine alerte qui commence. Ajoute trigger.updated avec details.changed. If-Match protège la révision.

Chaque mise à jour est vérifiée sur la cible que le déclencheur aura, la nouvelle ou sinon celle qui est stockée : une cible qui atteint un écran protégé donne protected_target (409) quel que soit le membre qui modifie, et un échec de lecture de la protection d’un écran donne dependency_unavailable (500, relancez la même requête).

Authentification
projectBearer OU dashboardSession
Corps de la requête
TriggerPatch
ID d’opération
updateTrigger

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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.
idcheminobligatoire
If-Matchen-têteoptionnelRévision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict.
Idempotency-Keyen-têteoptionnelOmettre 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

ChampDescription
étiquette (optionnelle, chaîne)minLength : 1 maxLength : 80
target (facultatif, TriggerTarget)Exactement un de tag et screen_ids.
default_for_seconds (optionnel, entier)minimum : 10 maximum : 604800
pull (facultatif, en ligne)Déclencheurs CAP seulement ; null retire les sources.
overlay (facultatif, object)
Modèle de requête et réponses
shell · modèle de requête
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/triggers/RESOURCE_ID'

Réponses

StatutSensCorps et en-têtes
200Le déclencheur, avec signing_secret quand cette mise à jour a activé la signature.TriggerWithSecrets (application/json) ; en-têtes : ETag, Cache-Control
400invalid_request — errors[0].field nomme le membre (overlay.edge, overlay.style.theme, overlay.mapping, pull).Problème (application/problem+json)
409idempotency_mismatch, ou protected_target quand la cible du déclencheur (la nouvelle, sinon celle qui est stockée) atteint un écran d’un dossier d’écrans protégé.Problème (application/problem+json)
500dependency_unavailable - la vérification des dossiers d’écrans protégés n’a pas pu s’exécuter ; renvoyez la même requête après une courte attente.Problème (application/problem+json)
412revision_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/api/triggers/{id}

Supprimer le déclencheur

Supprime le déclencheur. Son URL cesse aussitôt de fonctionner, et sa liste de lecture d’alertes et ses images fixes (ou les bandes, la liste de lecture et la carte d’un déclencheur de superposition) sont supprimées. Un déclencheur qui affiche une alerte, ou en retire encore une, est refusé avec resource_conflict ; arrêtez-le d’abord. Ajoute trigger.deleted. If-Match protège la révision.

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
deleteTrigger

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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.
idcheminobligatoire
If-Matchen-têteoptionnelRévision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict.
Idempotency-Keyen-têteoptionnelOmettre 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
shell · modèle de requête
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers/RESOURCE_ID'

Réponses

StatutSensCorps et en-têtes
204Supprimé.pas de corps
409resource_conflict — le déclencheur affiche une alerte.Problème (application/problem+json)
412revision_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)
POST/api/triggers/{id}/rotate-secret

Faire pivoter le secret Trigger

Remplace le mot de passe du déclencheur et renvoie le nouveau, une seule fois. L’ancien mot de passe cesse aussitôt de fonctionner ; mettez à jour le système expéditeur. Avec signing à true dans le corps, il remplace plutôt le secret de signature d’un déclencheur de superposition et renvoie celui-là, une seule fois (400 invalid_request quand le déclencheur ne signe pas). Ajoute trigger.updated avec details.rotated.

If-Match protège la révision.

Authentification
projectBearer OU dashboardSession
Corps de la requête
TriggerSecretRotate
ID d’opération
rotateTriggerSecret

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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.
idcheminobligatoire
If-Matchen-têteoptionnelRévision positive optionnelle de ressource. Omettre pour écrire la ressource actuelle ; une révision périmée fournie est revision_conflict.
Idempotency-Keyen-têteoptionnelOmettre 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

ChampDescription
signing (optionnel, booléen)Remplacer le secret de signature plutôt que le mot de passe.
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/rotate-secret'

Réponses

StatutSensCorps et en-têtes
200Le déclencheur avec son nouveau mot de passe, ou son nouveau secret de signature.TriggerWithSecrets (application/json) ; en-têtes : ETag, Cache-Control
412revision_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)
POST/api/triggers/{id}/test

Déclencheur de test

Affiche une alerte d’exercice d’une minute (une carte bleue avec une bannière jaune EXERCISE) sur les écrans du déclencheur, exactement comme une alerte reçue, afin de vérifier le ciblage et les écrans sans le système d’envoi. Le refus resource_conflict survient pendant que le déclencheur affiche une alerte, donc un test ne remplace jamais une alerte réelle.

Une nouvelle tentative exacte avec la même Idempotency-Key donne l’outcome duplicate. Un déclencheur de superposition affiche l’alerte screenrig-test (label Test, title Test overlay) pendant une minute et répond par un TriggerOverlayReceipt.

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
testTrigger

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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.
idcheminobligatoire
Idempotency-Keyen-têteoptionnelOmettre 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
shell · modèle de requête
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/test'

Réponses

StatutSensCorps et en-têtes
200Ce que l’alerte de test a fait.inline (application/json)
409resource_conflict — le déclencheur affiche une alerte.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)
POST/api/triggers/{id}/clear

Effacer le déclencheur

Met fin à l’alerte du déclencheur (ended_reason cleared) et efface les prises de contrôle qu’il a définies. Un écran remplacé par une autre prise de contrôle depuis est laissé intact. Un déclencheur sans alerte active répond inchangé. Ajoute trigger.alert_received avec résultat ended.

Pour un déclencheur de superposition, le corps peut nommer une alerte (alert_id) ; sans cela, toutes les alertes prennent fin, et la fin de la dernière abaisse la bande ou termine les prises de contrôle.

Authentification
projectBearer OU dashboardSession
Corps de la requête
TriggerClear
ID d’opération
clearTrigger

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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.
idcheminobligatoire

Champs du corps de la requête

ChampDescription
alert_id (facultatif, chaîne)L’alerte de superposition à terminer. Sans cela, toutes les alertes prennent fin. minLength : 1 maxLength : 200
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/clear'

Réponses

StatutSensCorps et en-têtes
200Le déclencheur. alert.screens.pending est vrai tant que les prises de contrôle sont en cours de suppression.Déclencheur (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)
POST/api/triggers/{id}/cap

Recevoir Trigger CAP

L’URL à laquelle un système de notification d’urgence poste une alerte CAP 1.2 (tout type de contenu XML, au plus 256 KiB). Il s’authentifie avec les identifiants HTTP Basic du déclencheur : le nom d’utilisateur est l’ID du déclencheur, le mot de passe celui retourné par create ou rotate.

Un message avec le statut Actual ou Exercise et le type msgType Alert affiche une carte plein écran (titre, événement, description, instruction et expéditeur, rouge pour Extrême, Sévère ou sans gravité, ambre pour Modéré, bleu pour Mineur ; Exercise ajoute une bannière jaune EXERCISE) sur chaque écran cible avec une playlist par défaut, jusqu’à <expires>, sinon pendant default_for_seconds, au maximum 7 jours.

Une mise à jour qui référence l’alerte affichée la redessine sur place et déplace les prises de contrôle quand <expires> change. Un annule qui la référence, ou tout message avec responseType AllClear, la termine et efface les prises de contrôle qu’elle a définies. Un déclencheur affiche une alerte : une nouvelle alerte remplace celle affichée.

Les messages Test, Système et Brouillon, Ack et Erreur, une alerte déjà expirée, et une Annulation d’alerte non affichée sont ignorés ; le même expéditeur et identifiant deux fois est un doublon. La réponse est un accusé de réception nommant le résultat ; les écrans sont écrits juste après (alert.screens.pending).

Les prises de contrôle contournent les limites de fréquence de contrôle des écrans et ne sont jamais mesurées ni refusées pour solde insuffisant. Elles ajoutent trigger.alert_received.

Authentification
triggerBasic
Corps de la requête
string
ID d’opération
receiveTriggerCAP

Paramètres

NomEnvoyerRequis ?Description
idcheminobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --header 'Content-Type: application/xml' --data-binary '@request.bin' 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/cap'

Réponses

StatutSensCorps et en-têtes
200Ce que le message a fait.TriggerReceipt (application/json) ; en-têtes : RateLimit-Policy, RateLimit, Cache-Control
400invalid_request — le corps n’est pas une alerte CAP 1.2 utilisable, ou est plus grand que 256 Kio.Problème (application/problem+json)
401non autorisé — identifiants manquants ou erronés, ou déclencheur inconnu. WWW-Authenticate indique le domaine Basic.Problème (application/problem+json)
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)
POST/api/triggers/{id}/overlay

Recevoir un envoi de déclencheur de superposition

L’URL où un système externe (Home Assistant, une caméra, un détecteur de porte, un outil d’alertes ou un fournisseur qui signe ses propres webhooks) publie pour que les écrans du déclencheur affichent quelques mots. Il s’authentifie avec le secret propre du déclencheur dans l’en-tête Authorization: Bearer <secret>, ou en HTTP Basic avec l’identifiant du déclencheur comme nom d’utilisateur.

Quand le déclencheur a été créé avec verify, une signature valide dans l’en-tête propre à ce fournisseur (voir WebhookVerifyWrite) authentifie l’envoi à la place du secret, qui continue de fonctionner à côté.

Quand le déclencheur signe, ScreenRig-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>" under the signing secret> est aussi requis, et t doit se situer à moins de cinq minutes de l’horloge du serveur.

Un déclencheur inconnu, un déclencheur CAP, un secret ou une signature faux ou absents, un horodatage périmé, un déclencheur désactivé et chaque GET reçoivent le même 404 not_found ; le projet voit la raison dans le journal de livraison du déclencheur.

Un déclencheur configuré pour une poignée de main de fournisseur y répond en premier, avant qu’aucun identifiant ne soit demandé, à une requête qui est cette poignée de main : le défi url_verification de Slack (signé), le validationToken de Microsoft Graph, le X-Hook-Secret d’Asana (conservé scellé comme secret de signature de ses événements), le challenge de monday.com, le SubscriptionValidationEvent d’Azure Event Grid et la vérification HEAD de Trello (l’opération head de cette URL).

Une poignée de main ne change aucune alerte, n’est jamais facturée et ne consomme aucun budget de débit, et elle est consignée dans le journal de livraison avec le résultat handshake.

Le corps, de 256 KiB au plus, est du JSON, du application/x-www-form-urlencoded ou du multipart/form-data (chaque champ de texte est body.<field>, les parties de fichier sont ignorées et comptées dans le journal de livraison) ; avec un mapping, le gabarit construit la requête à partir de body et de query. alert_id nomme l’alerte : un envoi dont l’identifiant est actif met à jour cette alerte au lieu d’en empiler une autre, et l’alerte la plus récente s’affiche.

Chaque déclenchement ou mise à jour retient son alerte pendant duration à partir de cet envoi (de 10 à 604800 secondes, ou 10s, 5m, 2h, 1d, ou until_cleared ; par défaut celle du déclencheur), de sorte qu’un capteur qui continue d’envoyer garde la superposition affichée.

Un envoi avec clear à true, ou un state qui signifie que c’est terminé (off, closed, clear, cleared, resolved, ok, normal, inactive, ended), met fin à l’alerte portant cet identifiant, ou à toutes les alertes s’il n’y en a pas. Un déclenchement ou une mise à jour compte pour une requête d’API facturée ; un arrêt est gratuit et n’est jamais refusé faute de solde.

Idempotency-Key (de 8 à 200 caractères) répond à la nouvelle tentative d’un expéditeur par le premier reçu pendant vingt-quatre heures. Au plus 120 envois par minute par déclencheur.

Authentification
triggerBearer OU triggerBasic
Corps de la requête
TriggerOverlayRequest
ID d’opération
receiveTriggerOverlay

Paramètres

NomEnvoyerRequis ?Description
idcheminobligatoire
Idempotency-Keyen-têteoptionnelOmettre 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.
ScreenRig-Signatureen-têteoptionnelt=<unix seconds>,v1=<hex HMAC-SHA256 over "<t>.<raw body>"> ; requis quand le déclencheur signe.

Champs du corps de la requête

ChampDescription
alert_id (facultatif, chaîne)L’identifiant de l’alerte choisi par l’expéditeur ; absent ou vide, c’est default pour un déclenchement, et toutes les alertes pour un arrêt. maxLength : 200
étiquette (optionnelle, chaîne)Une courte étiquette au-dessus du titre. maxLength : 40
title (facultatif, chaîne)maxLength : 120
message (facultatif, chaîne)maxLength : 400
note (facultatif, string)Une ligne discrète au bas. maxLength : 120
duration (facultatif, en ligne)Durée pendant laquelle cet envoi retient l’alerte, à partir de maintenant. Sans valeur, c’est la durée par défaut du déclencheur.
clear (facultatif, en ligne)True met fin à l’alerte (true, yes, y, 1 ou x en texte).
state (facultatif, chaîne)Un mot d’état de l’expéditeur : off, closed, clear, cleared, resolved, ok, normal, inactive ou ended (peu importe la casse) met fin à l’alerte ; tout autre état la déclenche.
Modèle de requête et réponses
shell · modèle de requête
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/overlay'

Réponses

StatutSensCorps et en-têtes
200Ce que l’envoi a fait, ou la réponse à la poignée de main d’un fournisseur.TriggerOverlayReceipt (application/json) ; en-têtes : RateLimit-Policy, RateLimit, Cache-Control
400invalid_request — le corps est trop volumineux, vide, ni du JSON ni un formulaire, le mapping a échoué dessus, ou un membre est incorrect ; le journal de livraisons le nomme.Problème (application/problem+json)
402payment_required — le projet n’a plus de crédit (déclenchement ou mise à jour seulement).Problème (application/problem+json)
404not_found — la réponse unique à chaque envoi refusé et à chaque GET.Problème (application/problem+json)
409idempotency_mismatch.Problème (application/problem+json)
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)
HEAD/api/triggers/{id}/overlay

Head Trigger Overlay

La vérification que Trello fait d’un nouveau webhook. Elle répond 200 sans corps pour un déclencheur dont la poignée de main est trello, et le seul 404 not_found pour tout autre déclencheur, adresse et requête : un aperçu de lien n’apprend donc rien. Elle n’écrit rien, n’est jamais facturée et ne consomme aucun budget de débit ; la vérification traitée figure dans le journal de livraison avec le résultat handshake.

Chaque GET répond le 404 et ne lit rien.

Authentification
aucun
Corps de la requête
aucun
ID d’opération
headTriggerOverlay

Paramètres

NomEnvoyerRequis ?Description
idcheminobligatoire
Modèle de requête et réponses
shell · modèle de requête
curl --request HEAD 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/overlay'

Réponses

StatutSensCorps et en-têtes
200Le webhook répond à la poignée de main de Trello.pas de corps; en-têtes : Cache-Control
404not_found — la seule réponse à toute autre requête.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)
GET/api/triggers/{id}/deliveries

Lister les livraisons d’un déclencheur

Les envois vers un déclencheur de superposition au cours des sept derniers jours, du plus récent au plus ancien (au plus 100), avec le moment où chacun est arrivé, la façon dont chacun s’est terminé (shown, updated, unchanged, ended, ignored, refused, invalid ou handshake), la raison pour laquelle un envoi refusé ou invalide l’a été (credentials, signature, signature_missing, signature_invalid, timestamp_missing, timestamp_stale, secret_pending, handshake_invalid, disabled, body, mapping, field, rate_limited, payment_required, internal), le statut, la taille, le nombre de parties de fichier qu’un envoi multipart portait (ignorées) et l’ID de requête.

Il ne conserve ni corps, ni en-tête, ni identifiant. Un déclencheur CAP n’en a aucune.

Authentification
projectBearer OU dashboardSession
Corps de la requête
aucun
ID d’opération
listTriggerDeliveries

Paramètres

NomEnvoyerRequis ?Description
ScreenRig-Projecten-têteoptionnelObsolè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.
idcheminobligatoire
limiterequêteoptionnel
Modèle de requête et réponses
shell · modèle de requête
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/deliveries'

Réponses

StatutSensCorps et en-têtes
200Les livraisons du déclencheur.TriggerDeliveryList (application/json)
400invalid_request — limit n’est pas un nombre entier de 1 à 100.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)