Riferimento API

API Trigger di allerta

Trigger alert CAP

Riferimento HTTP. Generato dal contratto backend. Esplora gli endpoint qui sotto o scarica OpenAPI.

Questo gruppo ha 12 operazioni, generate da api/openapi.yaml. Filtra per percorso, azione o autenticazione. Ogni endpoint elenca i suoi input; espandilo per vedere un modello di richiesta e i codici di risposta. I modelli richiedono i tuoi valori e un corpo valido secondo lo schema.

Sostituisci i segnaposto maiuscoli con i tuoi valori. Per una richiesta JSON, salva un corpo che corrisponde allo schema in request.json. Gli esempi di cookie usano un cookie jar locale da una sessione autenticata.

Trigger alert CAP

GET/api/triggers

Elenca i trigger

Elenca i trigger del progetto (CAP e di sovrapposizione), dal più vecchio (al massimo 20), ciascuno con il suo url di ingresso, il suo username e l'ultimo avviso o stato di sovrapposizione. Qui non viene mai restituito alcun segreto.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listTriggers

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
Modello richiesta e risposte
shell · modello richiesta
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers'

Risposte

StatoSignificatoCorpo e intestazioni
200I trigger del progetto.TriggerList (application/json); intestazioni: Cache-Control
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

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

Crea trigger

Crea un trigger di allerta CAP: un URL in ingresso a cui un sistema di notifiche di emergenza (Everbridge, Rave, Alertus, relè IPAWS e altri mittenti CAP 1.2) invia avvisi, con credenziali HTTP Basic.

La risposta è l’unico luogo in cui appare la password (con la risposta di rotazione): conservarla subito nel sistema di invio. target è un tag (ogni schermo attivo con esso all’arrivo dell’avviso) o fino a 500 screen_ids.

Un avviso prende ogni schermo target con playlist predefinita fino a <expires> dell’avviso, altrimenti per default_for_seconds (60 a 604800, default 3600); vedi POST /api/triggers/{id}/cap. Un’organizzazione ha al massimo 20 trigger in tutti i suoi progetti (trigger_limit_reached). Aggiunge trigger.created.

Un retry esatto con la stessa Idempotency-Key restituisce questa stessa risposta, password inclusa, per ventiquattro ore.

Il pull facoltativo aggiunge fonti CAP che la piattaforma legge per il trigger (vedi CapPull); l'url di ingresso continua a funzionare accanto. kind overlay crea invece il secondo tipo: un url di ingresso (POST /api/triggers/{id}/overlay) a cui qualsiasi sistema (Home Assistant, una telecamera, uno strumento di allerta) invia poche parole, mostrate sugli schermi di destinazione come fascia sopra ciò che viene riprodotto (overlay.show bar, sul bordo inferiore o superiore) o come acquisizione (overlay.show takeover) finché un avviso dura; vedi TriggerOverlay.

Con signing true la risposta porta anche il segreto di firma, una sola volta. verify fa autenticare un invio dalla firma propria di un fornitore (GitHub, Stripe, Shopify, Slack, Linear, Vercel, Asana o qualsiasi mittente HMAC) al posto della password, che continua a funzionare accanto; non può essere combinato con signing, e il suo segreto è sigillato e non viene mai restituito, solo un suggerimento. handshake indica un handshake di fornitore a cui risponde l’URL (Microsoft Graph, monday.com, Trello o Azure Event Grid; verify slack e asana rispondono al proprio).

Le durate di permanenza della sovrapposizione vanno da 10 a 604800 secondi (predefinito 600). Un trigger il cui selettore raggiunge uno schermo protetto è protected_target (409), e una lettura non riuscita della protezione degli schermi è dependency_unavailable (500, ripeti la stessa richiesta); un trigger non è disponibile per un chiamante limitato agli schermi.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
TriggerWrite
ID operazione
createTrigger

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
Idempotency-KeyintestazioneopzionaleOmetti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi.

Campi del corpo della richiesta

CampoDescrizione
kind (opzionale, stringa)Consentiti: "cap", "overlay" predefinito: "cap"
label (obbligatorio, stringa)minLength: 1 maxLength: 80
destinazione (obbligatorio, TriggerTarget)Esattamente uno tra tag e screen_ids.
default_for_seconds (opzionale, intero)

Per quanto tempo un avviso senza <expires> trattiene gli schermi: da 60 a 604800, predefinito 3600, per un trigger CAP; per quanto tempo un invio senza duration trattiene il suo avviso: da 10 a 604800, predefinito 600, per un trigger di sovrapposizione. minimum: 10 maximum: 604800

pull (opzionale, CapPull)

Fonti CAP lette dalla piattaforma per il trigger, con dove sono gli schermi target e quali alert contano: i parametri di un posizionamento scheda cap-alert (docs/feeds.md "CAP alerts"). Ogni URL sorgente è recuperato una volta al minuto per ogni trigger e posizionamento che lo nomina.

Senza fonti, si leggono i feed pubblici della piattaforma che coprono la posizione (NWS, Canada NAAD e MeteoAlarm per una posizione con codici area). L’allerta corrispondente più grave prende il controllo degli schermi target esattamente come farebbe un messaggio push; quando le fonti non ne mostrano (una cancellazione o una scadenza), un allerta pull termina.

Una sorgente obsoleta o guasta non termina mai un avviso. location è obbligatorio a meno che non siano fornite sorgenti.

overlay (opzionale, TriggerOverlayWrite)
Modello richiesta e risposte
shell · modello richiesta
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'

Risposte

StatoSignificatoCorpo e intestazioni
201Creato, con il suo URL, nome utente e password.TriggerWithPassword (application/json); intestazioni: ETag, Cache-Control
400invalid_request, incluso un tag malformato o sia tag che screen_ids.Problema (application/problem+json)
409trigger_limit_reached, idempotency_mismatch, oppure protected_target quando il selettore raggiunge uno schermo in una cartella di schermi protetta.Problema (application/problem+json)
500dependency_unavailable - il controllo delle cartelle di schermi protette non ha potuto essere eseguito; invia di nuovo la stessa richiesta dopo una breve attesa.Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

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

Ottieni trigger

Un trigger con il suo ultimo avviso o, per un trigger di sovrapposizione, i suoi avvisi attivi (il più recente per primo, il primo viene mostrato), i conteggi della distribuzione e se c'è lavoro in sospeso. Un avviso oltre il suo until viene letto come terminato con ended_reason expired.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
getTrigger

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
idpathobbligatorio
Modello richiesta e risposte
shell · modello richiesta
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Un trigger.Trigger (application/json); intestazioni: ETag, Cache-Control
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

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

Aggiorna un trigger

Modifica un trigger senza cambiare il suo URL né il suo segreto: label, target, default_for_seconds, il pull di un trigger CAP (null lo rimuove) e, per un trigger di sovrapposizione, overlay.edge, style (sostituisce l’intero stile; null lo cancella), mapping (null lo rimuove), enabled, signing, verify (null lo rimuove; senza un segreto conserva quello memorizzato quando il fornitore è lo stesso) e handshake (null lo rimuove).

Un trigger di sovrapposizione disattivato risponde al suo mittente con lo stesso 404 di un segreto errato. Attivare la firma restituisce il segreto di firma una sola volta in questa risposta. Una fascia si riposiziona sui nuovi schermi di destinazione e sul nuovo bordo; la nuova destinazione di un trigger di acquisizione vale dal prossimo avviso che inizia. Aggiunge trigger.updated con details.changed. If-Match protegge la revisione.

Ogni aggiornamento viene controllato sulla destinazione che il trigger avrà, quella nuova o altrimenti quella memorizzata: una destinazione che raggiunge uno schermo protetto è protected_target (409) qualunque membro la modifichi, e una lettura non riuscita della protezione degli schermi è dependency_unavailable (500, ripeti la stessa richiesta).

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
TriggerPatch
ID operazione
updateTrigger

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
idpathobbligatorio
If-MatchintestazioneopzionaleRevisione positiva opzionale della risorsa. Ometti per scrivere la risorsa corrente; una revisione obsoleta fornita è revision_conflict.
Idempotency-KeyintestazioneopzionaleOmetti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi.

Campi del corpo della richiesta

CampoDescrizione
label (opzionale, stringa)minLength: 1 maxLength: 80
target (opzionale, TriggerTarget)Esattamente uno tra tag e screen_ids.
default_for_seconds (opzionale, intero)minimum: 10 maximum: 604800
pull (opzionale, inline)Solo trigger CAP; null rimuove le fonti.
overlay (opzionale, object)
Modello richiesta e risposte
shell · modello richiesta
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'

Risposte

StatoSignificatoCorpo e intestazioni
200Il trigger, con signing_secret quando questo aggiornamento ha attivato la firma.TriggerWithSecrets (application/json); intestazioni: ETag, Cache-Control
400invalid_request — errors[0].field nomina il membro (overlay.edge, overlay.style.theme, overlay.mapping, pull).Problema (application/problem+json)
409idempotency_mismatch, oppure protected_target quando la destinazione del trigger (quella nuova, altrimenti quella memorizzata) raggiunge uno schermo in una cartella di schermi protetta.Problema (application/problem+json)
500dependency_unavailable - il controllo delle cartelle di schermi protette non ha potuto essere eseguito; invia di nuovo la stessa richiesta dopo una breve attesa.Problema (application/problem+json)
412revision_conflict.Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)
ELIMINA/api/triggers/{id}

Elimina trigger

Elimina il trigger. Il suo URL smette subito di funzionare, e la sua playlist di avvisi e i fermi immagine (o le fasce, la playlist e la scheda di un trigger di sovrapposizione) vengono eliminati. Un trigger che mostra un avviso, o ne sta ancora terminando uno, viene rifiutato con resource_conflict; terminalo prima. Aggiunge trigger.deleted. If-Match protegge la revisione.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
deleteTrigger

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
idpathobbligatorio
If-MatchintestazioneopzionaleRevisione positiva opzionale della risorsa. Ometti per scrivere la risorsa corrente; una revisione obsoleta fornita è revision_conflict.
Idempotency-KeyintestazioneopzionaleOmetti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi.
Modello richiesta e risposte
shell · modello richiesta
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
204Eliminato.nessun corpo
409resource_conflict — il trigger mostra un avviso.Problema (application/problem+json)
412revision_conflict.Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)
POST/api/triggers/{id}/rotate-secret

Ruota Trigger Secret

Sostituisce la password del trigger e restituisce quella nuova, una sola volta. La vecchia password smette subito di funzionare; aggiorna il sistema mittente. Con signing true nel corpo sostituisce invece il segreto di firma di un trigger di sovrapposizione e restituisce quello, una sola volta (400 invalid_request quando il trigger non firma). Aggiunge trigger.updated con details.rotated.

If-Match protegge la revisione.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
TriggerSecretRotate
ID operazione
rotateTriggerSecret

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
idpathobbligatorio
If-MatchintestazioneopzionaleRevisione positiva opzionale della risorsa. Ometti per scrivere la risorsa corrente; una revisione obsoleta fornita è revision_conflict.
Idempotency-KeyintestazioneopzionaleOmetti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi.

Campi del corpo della richiesta

CampoDescrizione
signing (opzionale, booleano)Ruota il segreto di firma invece della password.
Modello richiesta e risposte
shell · modello richiesta
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'

Risposte

StatoSignificatoCorpo e intestazioni
200Il trigger con la sua nuova password o il suo nuovo segreto di firma.TriggerWithSecrets (application/json); intestazioni: ETag, Cache-Control
412revision_conflict.Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

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

Test trigger

Mostra un avviso di esercizio di un minuto (una scheda blu con una banda gialla EXERCISE) sugli schermi del trigger, esattamente come farebbe un avviso ricevuto, così da poter verificare il targeting e gli schermi senza il sistema di invio. Rifiutato resource_conflict mentre il trigger mostra un avviso, così un test non sostituisce mai uno reale.

Un nuovo tentativo identico con la stessa Idempotency-Key risponde con outcome duplicate. Un trigger di sovrapposizione mostra l'avviso screenrig-test (label Test, title Test overlay) per un minuto e risponde con un TriggerOverlayReceipt.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
testTrigger

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
idpathobbligatorio
Idempotency-KeyintestazioneopzionaleOmetti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi.
Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/test'

Risposte

StatoSignificatoCorpo e intestazioni
200Cosa ha fatto l’allerta di test.inline (application/json)
409resource_conflict — il trigger mostra un avviso.Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)
POST/api/triggers/{id}/clear

Cancella trigger

Termina l’allerta del trigger (ended_reason cleared) e cancella i takeover impostati. Uno schermo sostituito da un altro takeover resta invariato. Un trigger senza allerta attiva risponde invariato. Aggiunge trigger.alert_received con esito ended.

Per un trigger di sovrapposizione il corpo può nominare un avviso (alert_id); senza, terminano tutti gli avvisi, e la fine dell'ultimo abbassa la fascia o termina le acquisizioni.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
TriggerClear
ID operazione
clearTrigger

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
idpathobbligatorio

Campi del corpo della richiesta

CampoDescrizione
alert_id (opzionale, stringa)L'avviso di sovrapposizione da terminare. Senza, terminano tutti gli avvisi. minLength: 1 maxLength: 200
Modello richiesta e risposte
shell · modello richiesta
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'

Risposte

StatoSignificatoCorpo e intestazioni
200Il trigger. alert.screens.pending è true mentre i takeover vengono eliminati.Trigger (application/json); intestazioni: ETag
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)
POST/api/triggers/{id}/cap

Ricevi Trigger CAP

L’URL a cui un sistema di notifiche di emergenza invia un avviso CAP 1.2 (qualsiasi tipo di contenuto XML, massimo 256 KiB). Si autentica con le credenziali HTTP Basic del trigger: username è l’id trigger, password quella restituita da create o rotate.

Un messaggio con stato Actual o Exercise e tipo msgType Alert mostra una scheda a schermo intero (titolo, evento, descrizione, istruzioni e mittente, rosso per Extreme, Severe o nessuna gravità, ambra per Moderate, blu per Minor; Exercise aggiunge un banner giallo EXERCISE) su ogni schermo target con playlist predefinita, fino a <expires>, altrimenti per default_for_seconds, massimo 7 giorni.

Un aggiornamento che fa riferimento all’avviso mostrato lo ridisegna in loco e sposta i takeover quando <expires> cambia. Un annulla che lo fa riferimento, o qualsiasi messaggio con responseType AllClear, lo termina e cancella i takeover impostati. Un trigger mostra un solo avviso: un nuovo avviso sostituisce quello mostrato.

Messaggi Test, System e Draft, Ack ed Error, un avviso già scaduto e una cancellazione di un avviso non mostrato sono ignorati; lo stesso mittente e identificatore due volte è un duplicato. La risposta è una ricevuta che indica l’esito; gli schermi sono scritti subito dopo (alert.screens.pending).

I takeover bypassano i limiti di frequenza del controllo schermo e non sono mai conteggiati o rifiutati per saldo. Aggiunge trigger.alert_received.

Autenticazione
triggerBasic
Corpo della richiesta
string
ID operazione
receiveTriggerCAP

Parametri

NomeInviaObbligatorio?Descrizione
idpathobbligatorio
Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Content-Type: application/xml' --data-binary '@request.bin' 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/cap'

Risposte

StatoSignificatoCorpo e intestazioni
200Cosa ha fatto il messaggio.TriggerReceipt (application/json); intestazioni: RateLimit-Policy, RateLimit, Cache-Control
400invalid_request — il corpo non è un alert CAP 1.2 utilizzabile, o è più grande di 256 KiB.Problema (application/problem+json)
401non autorizzato — credenziali mancanti o errate, o trigger sconosciuto. WWW-Authenticate indica il realm Basic.Problema (application/problem+json)
429

Problema rate_limited stabile. Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali.

Problema (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)
POST/api/triggers/{id}/overlay

Ricevi un invio di trigger di sovrapposizione

L’URL a cui un sistema esterno (Home Assistant, una telecamera, un sensore di porta, uno strumento di allerta o un fornitore che firma i propri webhook) invia perché gli schermi del trigger mostrino poche parole. Si autentica con il segreto proprio del trigger nell’intestazione Authorization: Bearer <secret>, oppure con HTTP Basic usando l’id del trigger come nome utente.

Quando il trigger è stato creato con verify, una firma valida nell’intestazione propria di quel fornitore (vedi WebhookVerifyWrite) autentica l’invio al posto del segreto, che continua a funzionare accanto.

Quando il trigger firma, è richiesto anche ScreenRig-Signature: t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>" under the signing secret>, e t deve distare al massimo cinque minuti dall'orologio del server.

Un trigger sconosciuto, un trigger CAP, un segreto o una firma sbagliati o mancanti, un timestamp scaduto, un trigger disattivato e ogni GET ricevono lo stesso 404 not_found; il progetto vede il motivo nel registro delle consegne del trigger.

Un trigger configurato per un handshake di fornitore risponde per primo, prima che venga richiesta qualsiasi credenziale, a una richiesta che è quell’handshake: la sfida url_verification di Slack (firmata), il validationToken di Microsoft Graph, l’X-Hook-Secret di Asana (conservato sigillato come segreto di firma dei suoi eventi), la challenge di monday.com, il SubscriptionValidationEvent di Azure Event Grid e il controllo HEAD di Trello (l’operazione head di questo URL).

Un handshake non cambia alcun avviso, non viene mai fatturato e non consuma budget di frequenza, ed è registrato nel registro delle consegne con l’esito handshake.

Il corpo, al massimo 256 KiB, è JSON, application/x-www-form-urlencoded o multipart/form-data (ogni campo di testo è body.<field>, le parti di file vengono ignorate e contate nel registro delle consegne); con un mapping il modello costruisce la richiesta da body e query. alert_id indica l’avviso: un invio con un id attivo aggiorna quell’avviso invece di impilarne un altro, e viene mostrato l’avviso avviato più di recente.

Ogni attivazione o aggiornamento trattiene il suo avviso per duration da quell'invio (da 10 a 604800 secondi, oppure 10s, 5m, 2h, 1d, o until_cleared; per impostazione predefinita quello del trigger), così un sensore che continua a inviare mantiene la sovrapposizione.

Un invio con clear true, o uno state che significa che è finita (off, closed, clear, cleared, resolved, ok, normal, inactive, ended), termina l'avviso con quell'id, o tutti gli avvisi se manca. Un'attivazione o un aggiornamento è una richiesta API fatturata; una chiusura è gratuita e non viene mai rifiutata per il saldo.

Idempotency-Key (da 8 a 200 caratteri) risponde al nuovo tentativo di un mittente con la prima ricevuta per ventiquattro ore. Al massimo 120 invii al minuto per trigger.

Autenticazione
triggerBearer O triggerBasic
Corpo della richiesta
TriggerOverlayRequest
ID operazione
receiveTriggerOverlay

Parametri

NomeInviaObbligatorio?Descrizione
idpathobbligatorio
Idempotency-KeyintestazioneopzionaleOmetti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi.
ScreenRig-Signatureintestazioneopzionalet=<unix seconds>,v1=<hex HMAC-SHA256 over "<t>.<raw body>">; obbligatorio quando il trigger firma.

Campi del corpo della richiesta

CampoDescrizione
alert_id (opzionale, stringa)L'id dell'avviso scelto dal mittente; assente o vuoto è default per un'attivazione, e tutti gli avvisi per una chiusura. maxLength: 200
label (opzionale, stringa)Un'etichetta breve sopra il titolo. maxLength: 40
title (opzionale, stringa)maxLength: 120
message (opzionale, stringa)maxLength: 400
note (facoltativo, string)Una riga discreta a piè di scheda. maxLength: 120
duration (opzionale, inline)Per quanto tempo questo invio trattiene l'avviso, da adesso. Senza valore si usa il predefinito del trigger.
clear (opzionale, inline)True termina l'avviso (true, yes, y, 1 o x come testo).
state (opzionale, stringa)Una parola di stato del mittente: off, closed, clear, cleared, resolved, ok, normal, inactive o ended (in qualsiasi caso) termina l'avviso; qualsiasi altro stato lo attiva.
Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/overlay'

Risposte

StatoSignificatoCorpo e intestazioni
200Che cosa ha fatto l’invio, o la risposta all’handshake di un fornitore.TriggerOverlayReceipt (application/json); intestazioni: RateLimit-Policy, RateLimit, Cache-Control
400invalid_request — il corpo è troppo grande, vuoto, né JSON né modulo, il mapping è fallito su di esso, o un membro è errato; il registro delle consegne lo nomina.Problema (application/problem+json)
402payment_required — il progetto non ha più credito (solo per attivazione o aggiornamento).Problema (application/problem+json)
404not_found — l’unica risposta a ogni invio rifiutato e a ogni GET.Problema (application/problem+json)
409idempotency_mismatch.Problema (application/problem+json)
429

Problema rate_limited stabile. Ritenta solo dopo l'intervallo Retry-After autorevole. I dinieghi a finestra fissa includono anche RateLimit-Policy e membri RateLimit applicabili; i dinieghi per concorrenza e budget byte omettono tali divulgazioni opzionali.

Problema (application/problem+json); intestazioni: Retry-After, RateLimit-Policy, RateLimit
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)
HEAD/api/triggers/{id}/overlay

Head Trigger Overlay

Il controllo che Trello fa su un nuovo webhook. Risponde 200 senza corpo per un trigger il cui handshake è trello, e l’unico 404 not_found per ogni altro trigger, indirizzo e richiesta, così un’anteprima di link non apprende nulla. Non scrive nulla, non viene mai fatturato e non consuma budget di frequenza; il controllo a cui si è risposto compare nel registro delle consegne con l’esito handshake.

Ogni GET risponde il 404 e non legge nulla.

Autenticazione
nessuno
Corpo della richiesta
nessuno
ID operazione
headTriggerOverlay

Parametri

NomeInviaObbligatorio?Descrizione
idpathobbligatorio
Modello richiesta e risposte
shell · modello richiesta
curl --request HEAD 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/overlay'

Risposte

StatoSignificatoCorpo e intestazioni
200Il webhook risponde all’handshake di Trello.nessun corpo; intestazioni: Cache-Control
404not_found — l’unica risposta a ogni altra richiesta.Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

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

Elenca le consegne di un trigger

Gli invii a un trigger di sovrapposizione negli ultimi sette giorni, dal più recente (al massimo 100), con quando è arrivato ciascuno, come si è concluso ciascuno (shown, updated, unchanged, ended, ignored, refused, invalid o handshake), perché uno rifiutato o non valido lo è stato (credentials, signature, signature_missing, signature_invalid, timestamp_missing, timestamp_stale, secret_pending, handshake_invalid, disabled, body, mapping, field, rate_limited, payment_required, internal), lo stato, la dimensione, il numero di parti di file che un invio multipart portava (ignorate) e l’ID della richiesta.

Non conserva corpo, intestazione né credenziali. Un trigger CAP non ne ha.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listTriggerDeliveries

Parametri

NomeInviaObbligatorio?Descrizione
ScreenRig-ProjectintestazioneopzionaleDeprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token.
idpathobbligatorio
limitequeryopzionale
Modello richiesta e risposte
shell · modello richiesta
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://api.screenrig.ai/api/triggers/RESOURCE_ID/deliveries'

Risposte

StatoSignificatoCorpo e intestazioni
200Le consegne del trigger.TriggerDeliveryList (application/json)
400invalid_request — limit non è un numero intero da 1 a 100.Problema (application/problem+json)
predefinito

Risposta problema stabile RFC 9457. Un 421 server_draining ha Retry-After di 1 secondo, un 500 not_ready o dependency_unavailable ha 5, e un 500 manifest_degraded ha 60, salvo valore più specifico impostato dal gestore.

Problema (application/problem+json)