OpenAPI YAMLOpenAPI JSONproblemi YAMLPanoramica dell’API
Questo gruppo ha 16 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.
Playlist
Elenca le playlist V2
Lista playlist versionata che può esporre pagine adslot. La lista v1 rifiuta una pagina che contiene un documento con pubblicità con version_required invece di filtrarla.
Pagine come listPlaylists, le più recenti per prime, massimo 200 per pagina e meno una volta che una pagina contiene 8 MiB di playlist memorizzate. next_cursor è la posizione dell’ultima riga restituita mentre ci sono altre righe; passalo come after, con gli stessi filtri, per la pagina successiva. next_cursor è null nell’ultima pagina. library=true elenca invece le playlist della Libreria dell’organizzazione (sola lettura; programmale oppure creane dai loro modelli).
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. |
| library | query | opzionale | true elenca il progetto Libreria dell’organizzazione invece di questo progetto: i suoi elementi qui sono in sola lettura e riportano library true. Un’organizzazione senza Libreria, o il progetto Libreria stesso, con true non elenca nulla. |
| dopo | query | opzionale | next_cursor della pagina precedente della stessa lista, con gli stessi filtri. Omettere inizia dalla riga più recente. Un valore che non è tale cursore è invalid_request. |
Modello richiesta e risposte
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Playlist con l’unione della pagina adslot. | PlaylistV2List (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 playlist V2
Voce di creazione per l’unione delle pagine adslot. Al massimo 16 pagine adslot, almeno una pagina ordinaria senza visibilità, e il riutilizzo di una definizione slot su pagine diverse restano controlli server. La risoluzione dei riferimenti e il DNS restano controlli server.
Una sessione dashboard (l’editor di pagine) crea la playlist subito attiva, mai come proposta, attribuita alla persona, e richiede il proprietario del progetto o un membro che possa approvare (altrimenti approver_required); i contenuti multimediali che nomina e che attendono la revisione sono media_pending_review (409), dove la scrittura diretta di un agente li approva.
Una scrittura che contiene una pagina iframe non inquadrabile dal Player web viene comunque salvata; la risposta contiene avvisi (PlaylistWarning) e il registro del progetto riceve un evento playlist.iframe_framing_refused per ogni pagina.
Una scrittura il cui src iframe, fallback_src o parametri dell'applicazione leggono un token dello schermo ({screen.field.NAME} e gli altri degli schemi delle primitive) che manca a uno schermo che mostra la playlist risponde anche con un'avvertenza screen_fact_missing che nomina i primi 20 di tali schermi; i manifest di quegli schermi omettono quella primitiva.
Un src o fallback_src di iframe che è un link di Google Presentazioni, Documenti o Fogli (condivisione, pubblicazione sul web o incorporamento) o un link di incorporamento di Microsoft 365 OneDrive o SharePoint viene memorizzato ricostruito per lo schermo, dove le presentazioni vanno in ciclo e avanzano con il delayms del link limitato alla durata della pagina, mentre Documenti, Fogli, Word ed Excel si ricaricano ogni 5 minuti.
Un codice di incorporamento <iframe> incollato in src o fallback_src viene letto per il suo src. Un file che chiede agli spettatori di accedere viene rifiutato con document_not_shared (400), il cui errors[0].field è quel src o fallback_src e il cui dettaglio indica l’impostazione di condivisione da cambiare.
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. |
| Screenrig-Review-Note | intestazione | opzionale | Nota opzionale del proponente su scrittura di classe review, inviata come UTF-8 percent-encoded (come scrive encodeURIComponent di JavaScript). Il server la percent-decodifica (un escape non valido è 400 invalid_request); la nota decodificata è testo semplice, massimo 280 caratteri dopo il trim, senza caratteri di controllo (altrimenti 400 invalid_request). Archiviato alla revisione quando la scrittura diventa una; ignorato se applicato in tempo reale. |
| 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 --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 202 | La scrittura è diventata una revisione e attende l’approvazione di una persona (docs/reviews.md), con accesso Proponi, oppure a qualsiasi livello di accesso quando raggiunge uno schermo in una cartella di schermi protetta, dove la decide un secondo approvatore (docs/screen-scope.md). Una persona approva, rifiuta o richiede modifiche nel dashboard a review.url. Una ripetizione con Idempotency-Key risponde con lo stesso corpo. | ReviewPending (application/json) |
| 201 | Playlist con le sue pagine adslot. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — Dichiarare campi, bloccare un primitivo o modificare una playlist che dichiara campi rientra nei modelli di playlist, e il piano del progetto non li include; required_plan indica il piano che li include. Creare una playlist da un modello è sempre consentito. Un formato di 2 o più display (un video wall) fa parte di Plus; un formato di regione e una playlist senza formato sono in ogni piano. Il problema indica la funzione, il piano del progetto e required_plan. | 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 Playlist V2
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/playlists/RESOURCE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Playlist con le sue pagine adslot. | PlaylistV2 (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) |
Aggiorna playlist V2
Aggiornamento versionato che accetta l’unione delle pagine adslot. If-Match trasporta la revisione della playlist.
Una sessione dashboard (l’editor di pagine) sostituisce la playlist subito attiva, mai come proposta, attribuita alla persona; richiede il proprietario del progetto o un membro che possa approvare (altrimenti approver_required) e If-Match (invalid_request se manca); una playlist non ancora approvata da una persona è playlist_not_approved (409), come per patchPlaylistStructure, e i contenuti multimediali che una pagina nomina e che attendono la revisione sono media_pending_review (409).
Una scrittura che contiene una pagina iframe non inquadrabile dal Player web viene comunque salvata; la risposta contiene avvisi (PlaylistWarning) e il registro del progetto riceve un evento playlist.iframe_framing_refused per ogni pagina.
Una scrittura il cui src iframe, fallback_src o parametri dell'applicazione leggono un token dello schermo ({screen.field.NAME} e gli altri degli schemi delle primitive) che manca a uno schermo che mostra la playlist risponde anche con un'avvertenza screen_fact_missing che nomina i primi 20 di tali schermi; i manifest di quegli schermi omettono quella primitiva.
Un src o fallback_src di iframe che è un link di Google Presentazioni, Documenti o Fogli (condivisione, pubblicazione sul web o incorporamento) o un link di incorporamento di Microsoft 365 OneDrive o SharePoint viene memorizzato ricostruito per lo schermo, dove le presentazioni vanno in ciclo e avanzano con il delayms del link limitato alla durata della pagina, mentre Documenti, Fogli, Word ed Excel si ricaricano ogni 5 minuti.
Un codice di incorporamento <iframe> incollato in src o fallback_src viene letto per il suo src. Un file che chiede agli spettatori di accedere viene rifiutato con document_not_shared (400), il cui errors[0].field è quel src o fallback_src e il cui dettaglio indica l’impostazione di condivisione da cambiare.
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. |
| Screenrig-Review-Note | intestazione | opzionale | Nota opzionale del proponente su scrittura di classe review, inviata come UTF-8 percent-encoded (come scrive encodeURIComponent di JavaScript). Il server la percent-decodifica (un escape non valido è 400 invalid_request); la nota decodificata è testo semplice, massimo 280 caratteri dopo il trim, senza caratteri di controllo (altrimenti 400 invalid_request). Archiviato alla revisione quando la scrittura diventa una; ignorato se applicato in tempo reale. |
| 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 |
|---|---|
| nome (obbligatorio, stringa) | minLength: 1 maxLength: 120 |
| campi (opzionale, PlaylistTemplateFields) | Dichiarare dei campi rende la playlist un modello. Ogni segnaposto letto da una pagina deve indicare un campo dichiarato del tipo giusto e ogni campo deve essere letto; una playlist senza campi non legge segnaposto. Un modello non viene mai mostrato su uno schermo (playlist_is_template). Un PUT senza fields li mantiene; null o un array vuoto li rimuove. |
| pages (obbligatorio, array) | Le pagine di una playlist possono risolvere al massimo 1024 riferimenti multimediali in totale. Un selettore by:ids conta la sua lunghezza; una definizione by:all, by:tag o by:folder riserva 32 riferimenti indipendentemente dalla dimensione del catalogo. Lo snapshot effettivo del loop è limitato a 1024 riferimenti multimediali in totale. Superare uno dei due limiti è 422 invalid at path pages. |
| audio (opzionale, PlaylistAudioWrite) | Colonna sonora opzionale della playlist: contenuti audio ordinati pronti (MP3) che suonano continuamente mentre le pagine cambiano (docs/playlist-audio.md). I cambi pagina non la fermano né la riavviano. PUT sostituisce l’intera playlist, quindi omettere audio rimuove la colonna sonora. |
| formato (opzionale, PlaylistFormat) | Per che cosa è stata creata una playlist: un video wall (PlaylistWallFormat) o una regione (PlaylistRegionFormat), mai entrambi. Una playlist senza formato è una playlist ordinaria che si lega a qualsiasi schermo come pagina. |
Modello richiesta e risposte
curl --request PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 202 | La scrittura è diventata una revisione e attende l’approvazione di una persona (docs/reviews.md), con accesso Proponi, oppure a qualsiasi livello di accesso quando raggiunge uno schermo in una cartella di schermi protetta, dove la decide un secondo approvatore (docs/screen-scope.md). Una persona approva, rifiuta o richiede modifiche nel dashboard a review.url. Una ripetizione con Idempotency-Key risponde con lo stesso corpo. | ReviewPending (application/json) |
| 200 | Playlist aggiornata. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — Dichiarare campi, bloccare un primitivo o modificare una playlist che dichiara campi rientra nei modelli di playlist, e il piano del progetto non li include; required_plan indica il piano che li include. Creare una playlist da un modello è sempre consentito. Impostare un formato video wall (2 o più display) diverso da quello proprio della playlist fa parte di Plus. Il problema indica la funzione, il piano del progetto e required_plan. | 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) |
Patch playlist
Modifica solo i campi di primo livello forniti: name, pages, audio, format o fields. I campi omessi vengono conservati dallo stesso snapshot della transazione. pages, audio e format forniti sostituiscono il valore completo; audio null rimuove la colonna sonora e format null rimuove il formato. Gli elementi di array annidati non vengono uniti.
Una modifica solo del nome di una playlist approvata non rivalida né risolve nuovamente i contenuti invariati, inclusi i formati di pagina memorizzati più vecchi. I contenuti forniti e le relazioni audio/segnale pagina sono convalidati. If-Match protegge opzionalmente la revisione; patch identiche sono operazioni nulle e i tentativi idempotenti riproducono la risposta originale.
L’accesso Propose e la politica di revisione funzionano come per PUT, inclusi gli avvisi per un valore pages fornito con una pagina iframe che il Player web non può inquadrare. PUT continua a sostituire l’intero documento.
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. |
| Screenrig-Review-Note | intestazione | opzionale | Nota opzionale del proponente su scrittura di classe review, inviata come UTF-8 percent-encoded (come scrive encodeURIComponent di JavaScript). Il server la percent-decodifica (un escape non valido è 400 invalid_request); la nota decodificata è testo semplice, massimo 280 caratteri dopo il trim, senza caratteri di controllo (altrimenti 400 invalid_request). Archiviato alla revisione quando la scrittura diventa una; ignorato se applicato in tempo reale. |
| 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 |
|---|---|
| nome (opzionale, stringa) | minLength: 1 maxLength: 120 |
| pages (opzionale, array) | |
| fields (facoltativo, inline) | |
| audio (opzionale, inline) | |
| formato (opzionale, inline) |
Modello richiesta e risposte
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 202 | La scrittura è diventata una revisione e attende l’approvazione di una persona (docs/reviews.md), con accesso Proponi, oppure a qualsiasi livello di accesso quando raggiunge uno schermo in una cartella di schermi protetta, dove la decide un secondo approvatore (docs/screen-scope.md). Una persona approva, rifiuta o richiede modifiche nel dashboard a review.url. Una ripetizione con Idempotency-Key risponde con lo stesso corpo. | ReviewPending (application/json) |
| 200 | Playlist aggiornata; ETag riporta la sua revisione. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — Dichiarare campi, bloccare un primitivo o modificare una playlist che dichiara campi rientra nei modelli di playlist, e il piano del progetto non li include; required_plan indica il piano che li include. Creare una playlist da un modello è sempre consentito. Impostare un formato video wall (2 o più display) diverso da quello proprio della playlist fa parte di Plus. Il problema indica la funzione, il piano del progetto e required_plan. | 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 playlist V2
Contrassegna come eliminata una playlist del progetto autenticato. Rifiutato con resource_conflict (409) finché uno schermo, inclusi quelli archiviati o in attesa, la usa come predefinita, nella propria programmazione o come contenuto prioritario, finché una cartella di schermi la usa come predefinita o finché una campagna la riproduce.
La sessione dashboard può anche eliminare; crea e sostituisce playlist con createPlaylistV2 e updatePlaylistV2 e ne cambia la struttura tramite patchPlaylistStructure.
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/playlists/RESOURCE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 204 | Playlist tombstoned. | nessun corpo |
| 409 | 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) |
Patch struttura playlist
Una persona connessa modifica la struttura di una playlist e mai cosa mostrano le sue pagine: il nome, l’ordine delle pagine, quali pagine restano e l’anticipo e visibilità di ogni pagina mantenuta. pages è il nuovo ordine completo; una pagina memorizzata che omette è rimossa, e un id non presente nella playlist, o ripetuto, è invalid_request in pages[i].id.
La tela, la transizione, audio_cue, le primitive e le note di una pagina salvata sono sempre quelle archiviate: il corpo non ha un membro per esse e qualsiasi altro membro è rifiutato.
Le pagine conservate passano attraverso la stessa risoluzione e validazione di qualsiasi playlist archiviata, quindi un elemento multimediale eliminato nel frattempo viene rifiutato (resource_conflict) e la playlist mantiene almeno una pagina ordinaria senza visibilità, al massimo 16 pagine di slot pubblicitari e i suoi segnali audio_end. advance sostituisce l’advance della pagina (una pagina slot pubblicitario non ne ha); visibility sostituisce la visibilità della pagina quando è un oggetto, la rimuove se null e la mantiene se omessa.
Una modifica che lascia la playlist come memorizzata è un’operazione nulla. If-Match contiene la revisione della playlist ed è obbligatorio (invalid_request se assente, revision_conflict se obsoleto). La scrittura è immediatamente attiva su ogni schermo che mostra la playlist ed è attribuita alla persona in playlist.updated; non è mai una proposta, quindi la risposta non è mai 202.
Una playlist non ancora approvata da nessuna persona (approved_revision 0) viene rifiutata con playlist_not_approved (409): decidi prima la sua revisione. Un nome già usato da un'altra playlist del progetto è resource_conflict. Solo la sessione della dashboard; gli agenti modificano le playlist con patchPlaylist, e una persona cambia ciò che mostrano le pagine con updatePlaylistV2.
La risposta include avvertenze (PlaylistWarning) come per qualsiasi scrittura, tra cui screen_fact_missing quando uno schermo che mostra la playlist non ha un valore letto dal src di un iframe o dai parametri dell'applicazione delle sue pagine. Il corpo è al massimo 64 KiB.
Parametri
| Nome | Invia | Obbligatorio? | Descrizione |
|---|---|---|---|
| id | path | obbligatorio | |
| If-Match | intestazione | obbligatorio | La revisione corrente della playlist, quotata o semplice (l’ETag dell’ultima lettura). Una revisione obsoleta è revision_conflict con current_revision. |
| 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 |
|---|---|
| nome (opzionale, stringa) | minLength: 1 maxLength: 120 |
| pages (opzionale, array) | Ogni pagina che resta, in ordine di riproduzione. Un id non presente nella playlist, o duplicato, è invalid_request su pages[i].id. Il risultato deve rispettare le regole della playlist: almeno una pagina ordinaria senza visibilità, massimo 16 pagine slot pubblicitarie, una pagina audio_end mantiene il suo audio_cue. |
Modello richiesta e risposte
curl --request PATCH --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/structure'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | La playlist come memorizzata ora; ETag porta la sua revisione. | PlaylistV2 (application/json); intestazioni: ETag |
| 402 | feature_not_in_plan — dichiarare campi, bloccare un primitivo o modificare una playlist che dichiara campi rientra nei modelli di playlist, e il piano del progetto non li include; required_plan indica il piano che li include. Creare una playlist da un modello è sempre consentito. | Problema (application/problem+json) |
| 409 | playlist_not_approved — la playlist non ha una versione approvata; resource_conflict — il nome è in uso, oppure un elemento multimediale o un nome di pagina mantenuto non è più pronto. | 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) |
Elencare le revisioni della playlist
The playlist's revisions, newest first: each revision a write stored (a create, a replace, a patch, a structure change, an applied review, a promote) with its name, its page count, the kind of change and who made it.
History begins with the revision a playlist held when revision history was first recorded: until its next write the list holds that revision alone, with change baseline. Revisions are kept for as long as the playlist is. At most 50 per page; next_cursor while more remain, null on the last page.
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 | |
| dopo | query | opzionale | next_cursor della pagina precedente della stessa lista, con gli stessi filtri. Omettere inizia dalla riga più recente. Un valore che non è tale cursore è invalid_request. |
Modello richiesta e risposte
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/revisions'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Le revisioni della playlist, dalla più recente. | PlaylistRevisionList (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) |
Ottenere una revisione della playlist
One revision of the playlist and the playlist as it stood at that revision: its name, pages, soundtrack and format, with revision set to this one. A revision the playlist never had, or one from before its history began, is 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 | |
| revisione | path | obbligatorio | Una revisione della playlist, come la numera listPlaylistRevisions. |
Modello richiesta e risposte
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/playlists/RESOURCE_ID/revisions/REVISION'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | La revisione e la playlist a quella revisione. | PlaylistRevisionDetail (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) |
Promuovere una revisione della playlist
Makes an earlier revision current again by copying it forward: its pages, soundtrack and format become a new revision, the current one plus one, whose change is promoted and restored_from names the revision copied. The playlist keeps its current name, earlier revisions stay as they were, and every screen that shows the playlist updates as for any other write.
If-Match is required and names the current revision (invalid_request when absent, revision_conflict when stale). The pages are resolved again as a structure change resolves them: a selector matches today's media, and media or a web app the revision named that is gone or not ready refuses the promote with the problem a write would get.
Una revisione il cui contenuto è il contenuto corrente non cambia nulla e risponde con la playlist corrente. Richiede una credenziale che pubblica dal vivo (vietato per una le cui scritture sono proposte per revisione) o una sessione dashboard del proprietario del progetto o di un membro che può approvare (approver_required); una playlist che nessuna persona ha ancora approvato dà playlist_not_approved (409).
Come per qualsiasi scrittura, la risposta include avvertenze (PlaylistWarning), tra cui screen_fact_missing quando uno schermo che mostra la playlist non ha un valore letto dal src di un iframe o dai parametri dell'applicazione delle pagine promosse.
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 | |
| revisione | path | obbligatorio | Una revisione della playlist, come la numera listPlaylistRevisions. |
| 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/playlists/RESOURCE_ID/revisions/REVISION/promote'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | La playlist con la revisione copiata come corrente; ETag riporta la sua revisione. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — dichiarare campi, bloccare un primitivo o modificare una playlist che dichiara campi rientra nei modelli di playlist, e il piano del progetto non li include; required_plan indica il piano che li include. Creare una playlist da un modello è sempre consentito. | 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) |
Aggiorna valori di playlist
Imposta, o con null cancella, i valori dei campi di una playlist creata da un modello e ricostruisce le sue pagine dalla revisione attuale del modello: i valori vengono verificati come in una creazione e le modifiche del marchio fatte al modello da allora raggiungono questa copia. Non inviare valori per aggiornare soltanto la copia.
Classe di revisione come qualsiasi scrittura di una playlist: il proprietario o un membro che può approvare (sessione della dashboard) e una credenziale Manage scrivono in diretta, un uploader solo per le sue playlist e cartelle, e Propose trasforma la modifica in una revisione (202). Una playlist non creata da un modello è invalid_request. If-Match è facoltativo.
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. |
| Screenrig-Review-Note | intestazione | opzionale | Nota opzionale del proponente su scrittura di classe review, inviata come UTF-8 percent-encoded (come scrive encodeURIComponent di JavaScript). Il server la percent-decodifica (un escape non valido è 400 invalid_request); la nota decodificata è testo semplice, massimo 280 caratteri dopo il trim, senza caratteri di controllo (altrimenti 400 invalid_request). Archiviato alla revisione quando la scrittura diventa una; ignorato se applicato in tempo reale. |
| 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 |
|---|---|
| valori (obbligatorio, oggetto) | Nome del campo e valore; null cancella un campo facoltativo. I campi non indicati mantengono il loro valore. |
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/playlists/RESOURCE_ID/values'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 202 | La scrittura è diventata una revisione e attende l’approvazione di una persona (docs/reviews.md), con accesso Proponi, oppure a qualsiasi livello di accesso quando raggiunge uno schermo in una cartella di schermi protetta, dove la decide un secondo approvatore (docs/screen-scope.md). Una persona approva, rifiuta o richiede modifiche nel dashboard a review.url. Una ripetizione con Idempotency-Key risponde con lo stesso corpo. | ReviewPending (application/json) |
| 200 | La playlist aggiornata; ETag contiene la sua revisione. | PlaylistV2 (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 le istanze di playlist
Le playlist create da un modello (al massimo 1000, per nome), ciascuna con la revisione del modello da cui sono state create le sue pagine e se il modello ne ha una più recente.
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/playlists/RESOURCE_ID/instances'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Le istanze. | PlaylistInstanceList (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) |
Espandi modello di playlist
Le pagine che conterrebbe una playlist creata dal modello con questi valori, verificate da tutte le regole. Calcola soltanto; non viene salvato nulla.
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 |
Campi del corpo della richiesta
| Campo | Descrizione |
|---|---|
| valori (opzionale, oggetto) |
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/playlists/RESOURCE_ID/expand'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 200 | Le pagine. | PlaylistExpanded (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) |
Aggiungi pagina playlist
Aggiunge una pagina a una playlist approvata senza inviare le altre: in fondo, o prima della pagina indicata da before.
Le pagine che la playlist contiene già vengono mantenute come memorizzate e ricontrollate con la nuova in un solo passaggio, così le regole tra pagine (da 1 a 100 pagine, una pagina ordinaria senza visibilità, 16 pagine di spazio pubblicitario, 1024 riferimenti media) vedono il risultato: una regola violata dà invalid_request con field (page.id quando l’id è già usato, before quando non indica alcuna pagina).
La validità di pagina della playlist è la visibilità propria della pagina (from, until, windows, data), nel fuso orario di ciascuno schermo, con until esclusivo.
Classe di revisione: con Proponi la modifica diventa una revisione (202); una successiva modifica di pagina della stessa playlist da parte dello stesso proponente estende quella revisione in sospeso finché si basa sulla revisione live, quindi le modifiche successive non si sostituiscono a vicenda, e l’approvazione le applica tutte o nessuna (review_stale quando la playlist è andata avanti); la revisione in sospeso di una modifica di pagina di un altro proponente non viene né estesa né sostituita, e la modifica attende con resource_conflict (409).
Con Gestire, o da una sessione dashboard del proprietario o di un membro che può approvare (altrimenti approver_required), è attiva. If-Match è facoltativo: se presente, deve essere la revisione live. Una playlist che nessuna persona ha ancora approvato dà playlist_not_approved (409).
Un uploader (docs/uploaders.md) aggiunge solo una pagina media delle sue cartelle a una delle sue playlist (altrimenti outside_upload_scope); un membro uploader su Proponi è il proponente della revisione (kind person).
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. |
| Screenrig-Review-Note | intestazione | opzionale | Nota opzionale del proponente su scrittura di classe review, inviata come UTF-8 percent-encoded (come scrive encodeURIComponent di JavaScript). Il server la percent-decodifica (un escape non valido è 400 invalid_request); la nota decodificata è testo semplice, massimo 280 caratteri dopo il trim, senza caratteri di controllo (altrimenti 400 invalid_request). Archiviato alla revisione quando la scrittura diventa una; ignorato se applicato in tempo reale. |
| 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 |
|---|---|
| page (obbligatorio, PlaylistPageWriteV2) | |
| before (opzionale, stringa) | La pagina davanti alla quale viene inserita; se omessa, viene aggiunta in fondo. pattern: "^[A-Za-z][A-Za-z0-9_-]{0,63}$" |
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/playlists/RESOURCE_ID/pages'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 202 | La scrittura è diventata una revisione e attende l’approvazione di una persona (docs/reviews.md), con accesso Proponi, oppure a qualsiasi livello di accesso quando raggiunge uno schermo in una cartella di schermi protetta, dove la decide un secondo approvatore (docs/screen-scope.md). Una persona approva, rifiuta o richiede modifiche nel dashboard a review.url. Una ripetizione con Idempotency-Key risponde con lo stesso corpo. | ReviewPending (application/json) |
| 200 | La playlist aggiornata; ETag contiene la sua revisione. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — dichiarare campi, bloccare un primitivo o modificare una playlist che dichiara campi rientra nei modelli di playlist, e il piano del progetto non li include; required_plan indica il piano che li include. Creare una playlist da un modello è sempre consentito. | 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) |
Sostituisci pagina playlist
Sostituisce una pagina di una playlist approvata, sul posto, senza inviare le altre. Il corpo è la pagina e il suo id è page_id. Una pagina sconosciuta è not_found.
Tutto il resto è come per addPlaylistPage: validato con le pagine mantenute in un solo passaggio, classe di revisione (202 con Proponi, concatenata a una revisione in sospeso di modifica pagina), attivo con Gestire o da una persona che approva, If-Match facoltativo, playlist_not_approved per una playlist che nessuna persona ha approvato.
Un uploader sostituisce solo una pagina media delle sue cartelle con un’altra pagina media delle sue cartelle; con Proponi può sostituire anche le pagine in attesa nella sua stessa revisione.
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 | |
| page_id | path | obbligatorio | ID stringa pagina playlist. |
| Screenrig-Review-Note | intestazione | opzionale | Nota opzionale del proponente su scrittura di classe review, inviata come UTF-8 percent-encoded (come scrive encodeURIComponent di JavaScript). Il server la percent-decodifica (un escape non valido è 400 invalid_request); la nota decodificata è testo semplice, massimo 280 caratteri dopo il trim, senza caratteri di controllo (altrimenti 400 invalid_request). Archiviato alla revisione quando la scrittura diventa una; ignorato se applicato in tempo reale. |
| 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 PUT --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/playlists/RESOURCE_ID/pages/PAGE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 202 | La scrittura è diventata una revisione e attende l’approvazione di una persona (docs/reviews.md), con accesso Proponi, oppure a qualsiasi livello di accesso quando raggiunge uno schermo in una cartella di schermi protetta, dove la decide un secondo approvatore (docs/screen-scope.md). Una persona approva, rifiuta o richiede modifiche nel dashboard a review.url. Una ripetizione con Idempotency-Key risponde con lo stesso corpo. | ReviewPending (application/json) |
| 200 | La playlist aggiornata; ETag contiene la sua revisione. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — dichiarare campi, bloccare un primitivo o modificare una playlist che dichiara campi rientra nei modelli di playlist, e il piano del progetto non li include; required_plan indica il piano che li include. Creare una playlist da un modello è sempre consentito. | 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) |
Rimuovi pagina playlist
Rimuove una pagina di una playlist approvata. La playlist mantiene da 1 a 100 pagine e una pagina ordinaria senza visibilità (altrimenti invalid_request). Una pagina sconosciuta è not_found. Tutto il resto è come per replacePlaylistPage. Un uploader rimuove solo una pagina media delle sue cartelle.
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 | |
| page_id | path | obbligatorio | ID stringa pagina playlist. |
| Screenrig-Review-Note | intestazione | opzionale | Nota opzionale del proponente su scrittura di classe review, inviata come UTF-8 percent-encoded (come scrive encodeURIComponent di JavaScript). Il server la percent-decodifica (un escape non valido è 400 invalid_request); la nota decodificata è testo semplice, massimo 280 caratteri dopo il trim, senza caratteri di controllo (altrimenti 400 invalid_request). Archiviato alla revisione quando la scrittura diventa una; ignorato se applicato in tempo reale. |
| 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/playlists/RESOURCE_ID/pages/PAGE_ID'Risposte
| Stato | Significato | Corpo e intestazioni |
|---|---|---|
| 202 | La scrittura è diventata una revisione e attende l’approvazione di una persona (docs/reviews.md), con accesso Proponi, oppure a qualsiasi livello di accesso quando raggiunge uno schermo in una cartella di schermi protetta, dove la decide un secondo approvatore (docs/screen-scope.md). Una persona approva, rifiuta o richiede modifiche nel dashboard a review.url. Una ripetizione con Idempotency-Key risponde con lo stesso corpo. | ReviewPending (application/json) |
| 200 | La playlist aggiornata; ETag contiene la sua revisione. | PlaylistV2 (application/json) |
| 402 | feature_not_in_plan — dichiarare campi, bloccare un primitivo o modificare una playlist che dichiara campi rientra nei modelli di playlist, e il piano del progetto non li include; required_plan indica il piano che li include. Creare una playlist da un modello è sempre consentito. | 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) |