OpenAPI YAMLOpenAPI JSONproblemi YAMLPanoramica dell’API
Questo gruppo ha 13 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.
Notifiche: avvisi via e-mail e webhook firmati in caso di cambiamenti di stato degli schermi
Elenca notifiche
Elenca le notifiche dell’organizzazione che coprono il progetto, di ogni canale, dalla meno recente (al massimo 50). status, failing_since, last_success_at e last_failure_at sono quelli di questo progetto. Il segreto di firma di un webhook non viene mai restituito qui.
Richiede la capability project; una credenziale limitata ai report viene rifiutata con 403 forbidden, perché la risposta include gli URL di ricezione e i destinatari.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato 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
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Le notifiche del progetto. | NotificationList (application/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) |
Crea notifica
Crea una notifica. channel email invia a recipients (il proprietario, o gli user_ids dei membri del progetto); channel webhook esegue una POST firmata a url, che segue le regole degli URL webhook (https su un host Internet pubblico, porta 443 o 8443, altrimenti webhook_url_rejected). conditions elenca i cambi di stato dello schermo che la attivano; una notifica email ne richiede almeno uno, un webhook richiede conditions o event_types. screen_tags limita conditions agli schermi con uno qualsiasi di quei tag; vuoto significa ogni schermo, oppure audience indica quali schermi con le regole di un pubblico di campagna. min_severity e severity filtrano e valutano gli avvisi, e active_hours li trattiene o li scarta fuori dalle sue finestre.
Una condizione invia un avviso solo dopo essere durata per hold_minutes (predefinito 10), e quando si risolve dopo l’invio di un avviso ne segue uno di risoluzione. La notifica copre solo questo progetto; un’organizzazione ha al massimo 50 notifiche, escluse quelle predefinite create dal sistema (notification_limit_reached).
Il segreto di firma di un webhook viene generato dal server e restituito solo in questa risposta e in rotate-secret; conservalo. Un nuovo tentativo identico con la stessa Idempotency-Key restituisce questa stessa risposta, segreto incluso, per ventiquattro ore. Gli avvisi partono dal primo evento successivo a notification.created.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| Idempotency-Key | intestazione | opzionale | Ometti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi. |
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| channel (obbligatorio, string) | Consentiti: "email", "webhook", "slack", "teams", "pagerduty", "telegram" |
| descrizione (opzionale, stringa) | Un nome per le persone. maxLength: 200 |
| conditions (facoltativo, NotificationConditions) | |
| screen_tags (facoltativo, ScreenTags) | Tag selettore flotta, da 0 a 16 tag unici esatti, ciascuno conforme alla grammatica dei tag media. Su ScreenPatch l’array sostituisce l’intero set e un array vuoto lo cancella; un tag duplicato o malformato è invalid_request. Cambiare i tag aggiorna la revisione dello schermo (protetta da If-Match) e aggiunge screen.updated con details.tags; non modifica mai la revisione del manifesto. I tag non sono mai nel manifesto di runtime e mai nell’autorizzazione. |
| audience (opzionale, CampaignAudience) | Quali schermi una campagna prende di mira: esattamente uno tra all (ogni regola corrisponde), any (almeno una corrisponde), tag (lo schermo ha il tag), screen_id (quello schermo) o folder (gli schermi in quella cartella schermi e in ogni cartella al suo interno, GET /api/screen-folders; la cartella deve esistere). Le regole si annidano al massimo su 3 livelli e un’audience ha al massimo 500 regole. {"all": []} è ogni schermo del progetto; altrove all e any elencano almeno una regola. |
| min_severity (opzionale, NotificationSeverity) | La gravità di un avviso, dalla meno grave. Un avviso aperto ha la gravità della sua condizione: error per screen_offline e warning per ogni altra condizione, salvo diversa indicazione della severity della notifica. Un avviso risolto e un test sono info. Consentiti: "info", "warning", "error" |
| severity (opzionale, NotificationSeverityOverrides) | Da condizione a gravità per questa notifica, ad esempio {"not_playing": "error"}. Conta per min_severity ed è la gravità che Teams e PagerDuty mostrano per la condizione. Una condizione non elencata mantiene il valore predefinito. In una patch un oggetto vuoto, come null, azzera ogni override. |
| active_hours (opzionale, NotificationActiveHours) | Quando partono gli avvisi aperti: le finestre (screenrig.schedule/v1), lette in timezone. Un avviso in scadenza mentre sono chiuse attende la successiva apertura (outside hold, il valore predefinito) e parte allora se la sua condizione persiste, quindi una condizione che rientra prima non invia nulla, oppure viene saltato (outside drop; last_error outside_hours). Un avviso di risoluzione per un avviso aperto che è stato inviato parte sempre, dentro gli orari o no, e un test li ignora. crashing viene trattenuto o scartato come qualsiasi altra condizione. Gli orari giudicano un avviso quando parte la prima volta; uno fallito viene ritentato con la cadenza consueta a prescindere dagli orari. Aggiungere, modificare o rimuovere gli orari fa rigiudicare subito gli avvisi trattenuti per i vecchi. |
| reach_drop (opzionale, NotificationReachDrop) | Il calo più piccolo della copertura di una campagna per cui viene inviato un avviso reach_dropped: screens è il minor numero di schermi persi (default 1) e percent, se impostato, la quota più piccola degli schermi che la campagna raggiungeva quando è stata pubblicata; un calo deve soddisfare entrambi. Un calo più piccolo non mette in coda alcun avviso, e un avviso in coda il cui calo si è ridotto al di sotto della soglia alla scadenza viene saltato (condition_cleared). Solo con la condizione reach_dropped; su una notifica senza di essa, invalid_request. |
| hold_minutes (facoltativo, integer) | Quanto deve durare una condizione prima di inviare un avviso. crashing non ha mai un periodo di attesa. default: 10 minimum: 0 maximum: 1440 |
| recipients (facoltativo, NotificationRecipients) | Solo e-mail. owner (chi possiede il progetto nel momento in cui viene inviato un avviso) oppure lo user_id di una persona che è membro del progetto; uno user_id che non appartiene a un membro restituisce invalid_request. A ciascuno viene inviata un'e-mail al suo indirizzo verificato. Chi nel frattempo ha lasciato il progetto o non ha un indirizzo verificato viene saltato. |
| url (opzionale, stringa) | Solo webhook: URL https su un host Internet pubblico, porta 443 (predefinita) oppure 8443. Nessun userinfo né frammento. maxLength: 2048 format: "uri" |
| event_types (facoltativo, NotificationEventTypes) | Solo webhook. Eventi di progetto inviati inoltre con POST man mano che si verificano, esattamente come li invia un webhook: tipi esatti come screen.online, oppure prefissi che terminano con .* come screen.*. notification.test non viene mai distribuito. |
| destination (opzionale, NotificationDestination) | Solo Slack, Teams, PagerDuty e Telegram; obbligatorio per essi. La credenziale nella forma in cui il servizio la emette: slack, l’URL del webhook in entrata (hooks.slack.com); teams, l’URL del webhook Workflows (logic.azure.com o powerplatform.com; gli URL dei connettori Office 365 sono dismessi); pagerduty, la chiave di instradamento Events API v2 di 32 caratteri; telegram, il token del bot. Un’altra forma dà notification_destination_rejected. Viene sigillato, non viene mai restituito e in lettura compare solo come destination_hint. minLength: 1 maxLength: 2048 |
| telegram_chat_id (opzionale, NotificationTelegramChat) | Solo Telegram; obbligatorio per esso. La chat in cui pubblicare: il suo id numerico (negativo per un gruppo o canale) oppure @channelname. Non è una credenziale. pattern: "^(-?[0-9]{1,20}|@[A-Za-z][A-Za-z0-9_]{4,31})$" |
| abilitato (opzionale, booleano) | predefinito: true |
Modello richiesta e risposte
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/notifications'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 201 | Creata. Il segreto di un webhook viene mostrato solo qui e in rotate-secret. | Notification (application/json); intestazioni: Cache-Control |
| 400 | invalid_request, webhook_url_rejected o notification_destination_rejected. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — L’instradamento degli avvisi (un canale Slack, Teams, PagerDuty o Telegram, oppure una regola min_severity, severity, active_hours o audience) fa parte di Plus. Le notifiche via e-mail e webhook con le regole predefinite, e le condizioni loop_stalled, glass_blank e glass_frozen, sono in ogni piano. Il problema indica la funzione, il piano del progetto e required_plan. | Problema (application/problem+json) |
| 409 | notification_limit_reached, idempotency_mismatch o resource_conflict quando il progetto non appartiene a nessuna organizzazione. | 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) |
Ottieni notifica
Richiede la capability project; una credenziale limitata ai report viene rifiutata con 403 forbidden, perché la risposta include l'URL di ricezione o i destinatari.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| id | path | obbligatorio |
Modello richiesta e risposte
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Una notifica. | Notification (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) |
Aggiorna notifica
Modifica uno qualsiasi tra description (vuoto la azzera), conditions, screen_tags, audience, min_severity, severity, active_hours (null azzera ciascuno di questi), hold_minutes, recipients (email), url e event_types (webhook), destination e telegram_chat_id (Slack, Teams, PagerDuty e Telegram), enabled e snoozed_until; channel non cambia mai.
Un campo dell'altro canale è invalid_request. Un nuovo url viene controllato come in creazione.
Impostare enabled su true per una notifica disattivata ne cancella lo stato di errore e riparte dall'evento che registra la modifica; non viene inviato nulla relativo al periodo in cui era disattivata, e gli avvisi ancora in sospeso da prima della disattivazione vengono contrassegnati come falliti con webhook_disabled. snoozed_until non invia nulla fino a quell'istante (al massimo 30 giorni da adesso; null termina la sospensione); gli avvisi da inviare nel frattempo vengono saltati (snoozed).
Aggiunge notification.updated. If-Match protegge la revisione. Qui cambia solo una notifica che copre questo progetto soltanto; una che copre anche altri progetti dell’organizzazione è notification_covers_other_projects e si modifica dalla pagina Notifiche dell’organizzazione.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| id | path | obbligatorio | |
| If-Match | intestazione | opzionale | Revisione positiva opzionale della risorsa. Ometti per scrivere la risorsa corrente; una revisione obsoleta fornita è revision_conflict. |
| Idempotency-Key | intestazione | opzionale | Ometti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi. |
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| descrizione (opzionale, stringa) | Una stringa vuota cancella la descrizione. maxLength: 200 |
| conditions (facoltativo, NotificationConditions) | |
| screen_tags (facoltativo, ScreenTags) | Tag selettore flotta, da 0 a 16 tag unici esatti, ciascuno conforme alla grammatica dei tag media. Su ScreenPatch l’array sostituisce l’intero set e un array vuoto lo cancella; un tag duplicato o malformato è invalid_request. Cambiare i tag aggiorna la revisione dello schermo (protetta da If-Match) e aggiunge screen.updated con details.tags; non modifica mai la revisione del manifesto. I tag non sono mai nel manifesto di runtime e mai nell’autorizzazione. |
| audience (opzionale, in linea) | Come in NotificationWrite; null lo azzera. Un audience e screen_tags insieme sono invalid_request, quindi passare dall'uno all'altro azzera il primo nella stessa richiesta. |
| min_severity (opzionale, in linea) | Come in NotificationWrite; null lo azzera. |
| severity (opzionale, in linea) | Sostituisce ogni override; null o un oggetto vuoto li azzera. |
| active_hours (opzionale, in linea) | Sostituisce gli orari; null li azzera. |
| reach_drop (opzionale, inline) | Sostituisce la soglia; null la azzera, così qualsiasi calo notifica. Rimuovere reach_dropped da conditions mentre è impostata è invalid_request; azzerala nella stessa richiesta. |
| hold_minutes (facoltativo, integer) | minimum: 0 maximum: 1440 |
| recipients (facoltativo, NotificationRecipients) | Solo e-mail. owner (chi possiede il progetto nel momento in cui viene inviato un avviso) oppure lo user_id di una persona che è membro del progetto; uno user_id che non appartiene a un membro restituisce invalid_request. A ciascuno viene inviata un'e-mail al suo indirizzo verificato. Chi nel frattempo ha lasciato il progetto o non ha un indirizzo verificato viene saltato. |
| url (opzionale, stringa) | maxLength: 2048 format: "uri" |
| event_types (facoltativo, NotificationEventTypes) | Solo webhook. Eventi di progetto inviati inoltre con POST man mano che si verificano, esattamente come li invia un webhook: tipi esatti come screen.online, oppure prefissi che terminano con .* come screen.*. notification.test non viene mai distribuito. |
| destination (opzionale, NotificationDestination) | Solo Slack, Teams, PagerDuty e Telegram; obbligatorio per essi. La credenziale nella forma in cui il servizio la emette: slack, l’URL del webhook in entrata (hooks.slack.com); teams, l’URL del webhook Workflows (logic.azure.com o powerplatform.com; gli URL dei connettori Office 365 sono dismessi); pagerduty, la chiave di instradamento Events API v2 di 32 caratteri; telegram, il token del bot. Un’altra forma dà notification_destination_rejected. Viene sigillato, non viene mai restituito e in lettura compare solo come destination_hint. minLength: 1 maxLength: 2048 |
| telegram_chat_id (opzionale, NotificationTelegramChat) | Solo Telegram; obbligatorio per esso. La chat in cui pubblicare: il suo id numerico (negativo per un gruppo o canale) oppure @channelname. Non è una credenziale. pattern: "^(-?[0-9]{1,20}|@[A-Za-z][A-Za-z0-9_]{4,31})$" |
| abilitato (opzionale, booleano) | |
| snoozed_until (facoltativo, inline) | Non inviare nulla fino a questo istante, al massimo 30 giorni da adesso; null termina la sospensione. |
Modello richiesta e risposte
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/notifications/RESOURCE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Notifica aggiornata. | Notification (application/json); intestazioni: ETag |
| 400 | invalid_request, webhook_url_rejected o notification_destination_rejected. | Problema (application/problem+json) |
| 402 | feature_not_in_plan — L’instradamento degli avvisi (modificare una notifica Slack, Teams, PagerDuty o Telegram oltre a disattivarla, metterla in pausa o descriverla, oppure impostare una regola min_severity, severity, active_hours o audience) fa parte di Plus. Cancellare una regola è consentito in ogni piano; le condizioni loop_stalled, glass_blank e glass_frozen sono in ogni piano. Il problema indica la funzione, il piano del progetto e required_plan. | Problema (application/problem+json) |
| 409 | notification_covers_other_projects — la notifica copre anche altri progetti dell’organizzazione, quindi si modifica solo dalla pagina Notifiche dell’organizzazione. | Problema (application/problem+json) |
| 412 | revision_conflict — If-Match è obsoleto; current_revision dell’errore riporta la revisione corrente. | 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 notifica
Elimina la notifica e aggiunge l’evento notification.deleted. I suoi avvisi in sospeso vengono contrassegnati come falliti con webhook_deleted; il suo registro delle consegne non è più consultabile e scade con il periodo di conservazione degli eventi. Qui viene eliminata solo una notifica che copre soltanto questo progetto (altrimenti notification_covers_other_projects).
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| id | path | obbligatorio | |
| If-Match | intestazione | opzionale | Revisione positiva opzionale della risorsa. Ometti per scrivere la risorsa corrente; una revisione obsoleta fornita è revision_conflict. |
| Idempotency-Key | intestazione | opzionale | Ometti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi. |
Modello richiesta e risposte
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 204 | Eliminato. | nessun corpo; intestazioni: Cache-Control |
| 409 | notification_covers_other_projects — la notifica copre anche altri progetti dell’organizzazione, quindi si modifica solo dalla pagina Notifiche dell’organizzazione. | Problema (application/problem+json) |
| 412 | revision_conflict — If-Match è obsoleto; current_revision dell’errore riporta la revisione corrente. | 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) |
Ruota segreto della notifica
Solo notifiche webhook (qualsiasi altro canale restituisce invalid_request). Sostituisce il segreto di firma e restituisce la notifica con quello nuovo in secret; il vecchio segreto smette di firmare subito, e al massimo un tentativo già in corso può ancora arrivare firmato con quello vecchio, quindi accetta entrambi per un breve periodo. Aggiunge l'evento notification.updated con details.changed [secret].
Un retry esatto con la stessa Idempotency-Key restituisce lo stesso nuovo segreto per ventiquattro ore.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| id | path | obbligatorio | |
| If-Match | intestazione | opzionale | Revisione positiva opzionale della risorsa. Ometti per scrivere la risorsa corrente; una revisione obsoleta fornita è revision_conflict. |
| Idempotency-Key | intestazione | opzionale | Ometti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi. |
Modello richiesta e risposte
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/rotate-secret'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | La notifica e il suo nuovo segreto. | Notification (application/json); intestazioni: Cache-Control |
| 400 | invalid_request: la notifica non è un webhook. | Problema (application/problem+json) |
| 409 | notification_covers_other_projects — la notifica copre anche altri progetti dell’organizzazione, quindi si modifica solo dalla pagina Notifiche dell’organizzazione. | Problema (application/problem+json) |
| 412 | revision_conflict — If-Match è obsoleto; current_revision dell’errore riporta la revisione corrente. | 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) |
Testa notifica
Aggiunge un evento di progetto notification.test e mette in coda una consegna di tale evento solo a questa notifica (nessun'altra notifica riceve notification.test).
Un webhook riceve l’evento come corpo della richiesta; una notifica e-mail invia un’e-mail di prova ai destinatari; una notifica Slack, Teams o Telegram pubblica un messaggio di prova; una notifica PagerDuty attiva un evento informativo e lo risolve subito.
Funziona anche su una notifica disattivata o sospesa; la consegna viene tentata una sola volta senza nuovi tentativi e non modifica mai lo stato di errore della notifica. Interroga periodicamente il registro delle consegne per conoscerne l'esito.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| id | path | obbligatorio | |
| Idempotency-Key | intestazione | opzionale | Ometti per un’operazione fresca. Fornisci e riutilizza una chiave per deduplicare i retry; la CLI gestisce automaticamente le chiavi. |
Modello richiesta e risposte
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/test'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 202 | La consegna di test in coda. | NotificationDelivery (application/json); intestazioni: RateLimit-Policy, RateLimit |
| 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) |
Elenca consegne della notifica
Il registro delle consegne della notifica, dall'evento più recente. Una riga per evento e, per un avviso su uno schermo, una riga per ogni condizione di quell'evento; i nuovi tentativi aggiornano la riga e GET .../deliveries/{delivery_id}/attempts ne elenca i tentativi più recenti. Un avviso che non ha mai richiesto l'invio viene saltato con il relativo motivo.
Le righe vengono conservate come gli eventi (la conservazione degli eventi prevista dal piano, almeno la finestra di 24 ore per i nuovi tentativi). Rimanda next_cursor come in precedenza per la pagina successiva.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| id | path | obbligatorio | |
| before | query | opzionale | next_cursor della pagina di consegne precedente. Una pagina che termina tra gli avvisi di un singolo evento riporta nel proprio cursore la condizione dell'ultimo. |
| limite | query | opzionale |
Modello richiesta e risposte
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/deliveries'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Una pagina di consegne. | NotificationDeliveryList (application/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) |
Elenca tentativi di consegna della notifica
I tentativi di una consegna, dal più recente, gli ultimi 20, conservati con la riga della consegna e per lo stesso tempo. Ognuno riporta il numero di tentativo, quando è terminato, lo stato HTTP del server ricevente (null se nessuno ha risposto o per le e-mail), la classe di errore (null in caso di successo) e la durata.
Una consegna che non appartiene a questa notifica, o una notifica di un altro progetto, restituisce not_found.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| id | path | obbligatorio | |
| delivery_id | path | obbligatorio | L’id di una delle consegne del webhook. |
Modello richiesta e risposte
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/deliveries/DELIVERY_ID/attempts'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | I tentativi mantenuti della consegna. | NotificationDeliveryAttemptList (application/json) |
| 404 | 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) |
| 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) |
Reiscrivere una persona a una notifica
Invia di nuovo le email di una notifica a una persona che le aveva interrotte con il link di annullamento dell’iscrizione nell’email (Notification.unsubscribed elenca chi lo ha fatto). Idempotente: una persona che non è interrotta non cambia nulla, e la risposta è la notifica così com’è.
Una modifica aumenta la revisione e aggiunge notification.updated con i dettagli change resubscribed, user_id e via api. Una sessione della dashboard può reiscrivere qualsiasi persona del progetto; una credenziale dell’agente richiede la capacità di scrittura del progetto. Il modo in cui la persona stessa torna indietro è il pulsante Resubscribe nella pagina con cui risponde il suo link di annullamento dell’iscrizione.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| ScreenRig-Project | intestazione | opzionale | Deprecato per una release. Deve essere coerente con le concessioni JWT dei progetti; aggiunge intestazioni Deprecation e Warning. Nessuno scambio di token. |
| id | path | obbligatorio | |
| user_id | path | obbligatorio | Lo user_id di una persona nell’elenco unsubscribed della notifica. |
Modello richiesta e risposte
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/notifications/RESOURCE_ID/unsubscribed/USER_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | La notifica, senza la persona in unsubscribed. | Notification (application/json); intestazioni: ETag |
| 409 | notification_covers_other_projects — la notifica copre anche altri progetti dell’organizzazione, quindi si modifica solo dalla pagina Notifiche dell’organizzazione. | Problema (application/problem+json) |
| 404 | 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) |
| 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) |
Mostrare l’annullamento dell’iscrizione a una notifica
Il link nel piè di pagina di un’email di avviso. Non porta né sessione né bearer; il token t, creato da screenRIG per una notifica n e una persona u, è tutta l’autorità, non scade mai ed è valido finché la versione della chiave di emissione che nomina viene conservata.
La risposta è una pagina che chiede di interrompere le email di quella notifica per quella persona e che non cambia nulla, quindi uno scanner di posta che apre il link non interrompe nulla; il suo pulsante invia a questo percorso. Una persona già interrotta vede una pagina il cui pulsante la reiscrive.
Qualsiasi token, notifica o persona che non corrisponde, e una notifica eliminata o che non è via email, riceve la stessa pagina 404. La pagina non ha script e invia solo a questa origine. Al massimo 30 richieste al minuto per indirizzo (rate_limited).
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| n | query | obbligatorio | La notifica a cui è destinato il link. |
| u | query | obbligatorio | Lo user_id della persona a cui è destinato il link. |
| t | query | obbligatorio | Il token del link. |
Modello richiesta e risposte
curl --request GET 'https://api.screenrig.ai/api/notifications/unsubscribe?n=N&u=U&t=T'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | La pagina che chiede di interrompere gli avvisi. | stringa (text/html) |
| 404 | Il link non è valido; la stessa pagina per qualsiasi causa. | stringa (text/html) |
| 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) |
Annullare l’iscrizione a una notifica
Interrompe le email di una notifica per la persona a cui è destinato il link. La query è quella del link GET; il corpo non viene letto, quindi funzionano sia la richiesta a un clic RFC 8058 di un provider di posta (List-Unsubscribe=One-Click, dalle intestazioni List-Unsubscribe e List-Unsubscribe-Post che ogni email di avviso e di test porta) sia il pulsante della pagina.
Viene interrotta solo quella persona, e solo per quella notifica; gli altri continuano a ricevere le email, e la persona resta tra i destinatari (recipients). È idempotente. La prima volta aumenta la revisione e aggiunge notification.updated con i dettagli change unsubscribed, user_id e via email_link.
La pagina con cui risponde ha un pulsante Resubscribe (POST /api/notifications/resubscribe); un membro del progetto vede le persone interrotte in Notification.unsubscribed. Quando non resta nessuno a cui scrivere, un avviso viene saltato come no_recipients. Qualsiasi link che non corrisponde riceve la pagina 404 del GET. Al massimo 30 richieste al minuto per indirizzo (rate_limited).
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| n | query | obbligatorio | La notifica a cui è destinato il link. |
| u | query | obbligatorio | Lo user_id della persona a cui è destinato il link. |
| t | query | obbligatorio | Il token del link. |
Modello richiesta e risposte
curl --request POST 'https://api.screenrig.ai/api/notifications/unsubscribe?n=N&u=U&t=T'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | La pagina che indica che gli avvisi sono stati interrotti. | stringa (text/html) |
| 404 | Il link non è valido; la stessa pagina per qualsiasi causa. | stringa (text/html) |
| 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) |
Riattivare una notifica
Annulla POST /api/notifications/unsubscribe per la persona a cui è destinato il link: il pulsante Resubscribe della pagina con cui risponde. Stesso link, stessa autorità e stessa pagina 404; idempotente. Una modifica aumenta la revisione e aggiunge notification.updated con i dettagli change resubscribed, user_id e via email_link. Al massimo 30 richieste al minuto per indirizzo (rate_limited).
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| n | query | obbligatorio | La notifica a cui è destinato il link. |
| u | query | obbligatorio | Lo user_id della persona a cui è destinato il link. |
| t | query | obbligatorio | Il token del link. |
Modello richiesta e risposte
curl --request POST 'https://api.screenrig.ai/api/notifications/resubscribe?n=N&u=U&t=T'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | La pagina che indica che gli avvisi sono di nuovo attivi. | stringa (text/html) |
| 404 | Il link non è valido; la stessa pagina per qualsiasi causa. | stringa (text/html) |
| 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) |