Riferimento API

API Media

Caricamenti media

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

Questo gruppo ha 38 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.

Caricamenti media

GET/api/media

Elenca contenuti multimediali

Elenca i contenuti multimediali pronti dalla più recente, massimo 1000 per pagina. folder mantiene solo i file direttamente dentro una cartella multimediale (il suo ID), o con root solo quelli nella radice della libreria; un ID cartella ben formato che non nomina nessuna cartella non elenca nulla. 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

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listMedia

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.
tagqueryopzionaleTag media esatto. Gli oggetti non taggati sono omessi quando questo filtro è presente.
primitivoqueryopzionale
cartellaqueryopzionaleUn ID cartella media conserva solo i file direttamente dentro quella cartella, non quelli delle sue sottocartelle; la root conserva solo i file nella root della libreria. Omettere elenca ogni file.
idsqueryopzionale

ID dei media separati da virgola, al massimo 200 distinti; un numero maggiore è invalid_request su ids. Mantiene solo quei file: un ID che non indica alcun file pronto è assente, e gli altri filtri e la paginazione continuano ad applicarsi. Un valore vuoto non elenca nulla.

libraryqueryopzionale

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.

dopoqueryopzionalenext_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
shell · modello richiesta
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media'

Risposte

StatoSignificatoCorpo e intestazioni
200Contenuti multimedialiMediaList (application/json)
POST/api/media/generations

Crea generazione contenuti multimediali

Genera un’immagine statica da un prompt, memorizzala come contenuto multimediale privato pronto del progetto e fatturane l’utilizzo. La POST risponde subito 202 con Operation, con o senza Prefer: respond-async, perché un proxy davanti all’API elimina una richiesta che non invia alcun byte per 100 s e un’immagine statica di alta qualità può richiedere più tempo.

Interroga GET /api/operations/{id} finché Operation non è succeeded, quando il suo result è {media_id, usage: {quality, credits, usd}} (MediaGenerationUsage), o failed, quando il suo error è il problema. Un rifiuto deciso prima di qualsiasi lavoro del fornitore (payment_required, reseller_generation_limit, rate_limited, not_ready, invalid_request) risponde comunque alla POST.

Non include mai byte immagine, b64_json, chiavi oggetto, URL firmati, URL vendor, costo vendor, token vendor o nome modello deployment. Il prompt è byte cliente e non viene ripetuto.

Prima che il prompt raggiunga il fornitore di immagini, il server aggiunge requisiti fissi di inquadratura: l’opera deve riempire il bordo del quadro, e non possono essere raffigurati televisori, monitor, schermi, display, cornici, bordi, montaggi, supporti, pareti, stanze, mockup di dispositivi, ombre o fotografie di insegne installate, e qualsiasi parola nel prompt del chiamante che descriva dove l’insegna sarà appesa o quale dispositivo la mostrerà è trattata come metadati di posizionamento e non come soggetto.

Le regole decorative e i bordi all’interno del design stesso restano disponibili. Il prompt del chiamante non viene mai riscritto o rimosso e viene memorizzato invariato. Idempotency-Key riproduce la stessa Operation, mai un secondo tentativo fatturato. I client non eseguono PUT né confermano i byte generati.

La resa memorizzata è WebP lossy (qualità 90) alla dimensione esatta di aspetto con un lato corto di 1080 px (16:9 è 1920x1080, 9:16 1080x1920, 1:1 1080x1080, 4:3 1440x1080, 3:4 1080x1440, 3:2 1620x1080, 2:3 1080x1620); la tela del fornitore è ritagliata al centro e riscalata a quella dimensione.

Il nome file è distintivo per generazione, generated-16x9-1a2b3c4d.webp, con il suffisso preso dall’id del contenuto multimediale. Recupera i byte con GET /api/media/{id}/content. Own-gen-then-upload rimane valido.

Su Standard, la rimanenza che non copre il doppio del costo fornitore dell’immagine fissa, arrotondato ai crediti interi, dopo il livello minimo introduttivo (meno 1.000.000 crediti fino al 2027-01-01, poi zero) restituisce payment_required, tranne che per SCREENRIG__ENVIRONMENT=development, e l’ammissione prima della chiamata al fornitore richiede una rimanenza sopra quel livello del minimo per qualità: 200 crediti per basso, 800 per medio, 2000 per alto.

Gli altri piani non vengono mai rifiutati per il saldo.

Un’organizzazione fatturata tramite un reseller viene rifiutata con reseller_generation_limit (402) non appena ai clienti delegati del suo reseller è stato fatturato il limite mensile di generazione di immagini ($100 a prezzo di listino mentre il reseller attende la revisione, $1,000 dopo, conteggiato per mese UTC), a meno che il credito proprio dell’organizzazione non copra l’immagine; una generazione già ammessa viene completata.

Una configurazione vuota del fornitore selezionato restituisce not_ready. Solo token di progetto. Una generazione in corso per organizzazione; ulteriore parallelismo è rate_limited.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaGenerationRequest
ID operazione
createMediaGeneration

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-Keyintestazioneobbligatorio
PreferintestazioneopzionaleFacoltativo. La route risponde subito 202 con Operation, con o senza questa intestazione; interroga Operation.

Campi del corpo della richiesta

CampoDescrizione
prompt (obbligatorio, stringa)minLength: 1 maxLength: 4000
aspect_ratio (opzionale, stringa)Consentito: "1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3" predefinito: "16:9"
qualità (opzionale, stringa)Consentito: "low", "medium", "high" predefinito: "medium"
tag (opzionale, stringa)pattern: "^[A-Za-z0-9]{1,32}$"
riferimenti (opzionale, array)
Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/generations'

Risposte

StatoSignificatoCorpo e intestazioni
202

La generazione è stata accettata e continua; interroga GET /api/operations/{id} finché Operation non è succeeded (result media_id e usage) o failed (error). Lo stesso Idempotency-Key risponde con la stessa Operation.

Operazione (application/json); intestazioni: Preference-Applied, RateLimit-Policy, RateLimit
402

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)
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)
500

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)
GET/api/media-folders

Elenca cartelle contenuti multimediali

Elenca tutte le cartelle multimediali nel progetto, massimo 1000, ordinate per nome. Le cartelle organizzano la libreria multimediale, e un selettore playlist by:folder riproduce i file direttamente dentro una cartella. Il parent_id di una cartella è null nella radice della libreria.

Costruisci l’albero da parent_id; la cartella di un file è Media.folder_id. library=true elenca invece le cartelle della Libreria dell’organizzazione (sola lettura; un selettore by:folder può indicarne una).

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listMediaFolders

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.
libraryqueryopzionale

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.

Modello richiesta e risposte
shell · modello richiesta
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media-folders'

Risposte

StatoSignificatoCorpo e intestazioni
200Cartelle mediaMediaFolderList (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)
POST/api/media-folders

Crea cartella contenuti multimediali

Crea una cartella media nella radice della libreria (parent_id nullo o assente) o dentro parent_id. I nomi sono privati di spazi, contengono da 1 a 100 caratteri Unicode senza controlli, non sono "." o ".." e possono ripetersi. Un’organizzazione contiene al massimo 1000 cartelle in tutti i suoi progetti (quota_exceeded) annidate al massimo 10 livelli (invalid_request). Emette media.folder_created.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaFolderCreate
ID operazione
createMediaFolder

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.
project_idqueryopzionale

Con dashboardSession, il progetto mostrato alla creazione della cartella. Se fornito, deve corrispondere al progetto selezionato nella sessione, altrimenti resource_conflict; un valore vuoto o ripetuto produce invalid_request. L’omissione mantiene la compatibilità con i vecchi client del pannello. Le richieste con token di progetto usano il progetto autorizzato.

Campi del corpo della richiesta

CampoDescrizione
nome (obbligatorio, stringa)Rifilato; da 1 a 100 caratteri Unicode, senza controlli, non . o .. minLength: 1 maxLength: 100
parent_id (opzionale, inline)La cartella in cui crearla; null o assente per la radice della libreria.
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://screenrig.ai/api/media-folders'

Risposte

StatoSignificatoCorpo e intestazioni
201Cartella creata.MediaFolder (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)
GET/api/media-folders/{id}

Ottieni cartella media

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
getMediaFolder

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://screenrig.ai/api/media-folders/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Una cartella media.MediaFolder (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)
PATCH/api/media-folders/{id}

Aggiorna cartella media

Rinomina una cartella (nome) o spostala con tutto il contenuto (parent_id, null per la radice della libreria). Una cartella non può spostarsi in se stessa o in una cartella al suo interno, e lo spostamento deve mantenere ogni cartella entro 10 livelli (invalid_request). Una modifica aggiorna la revisione della cartella ed emette media.folder_updated; gli stessi valori sono un’operazione nulla.

If-Match protegge opzionalmente la revisione.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaFolderPatch
ID operazione
updateMediaFolder

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
nome (opzionale, stringa)Rifilato; da 1 a 100 caratteri Unicode, senza controlli, non . o .. minLength: 1 maxLength: 100
parent_id (opzionale, inline)Sposta la cartella in questa; null per la radice della libreria.
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://screenrig.ai/api/media-folders/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Cartella aggiornata.MediaFolder (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)
ELIMINA/api/media-folders/{id}

Elimina cartella media

Elimina una cartella. Nulla al suo interno viene eliminato: i suoi file e cartelle vengono spostati nel genitore della cartella eliminata (la radice della libreria se non ne aveva uno), ogni file e cartella spostato avanza la sua revisione. Un selettore playlist by:folder che la nomina poi non corrisponde a nulla; gli schermi in riproduzione abbandonano quel primitivo alla prossima risoluzione del selettore.

Emette media.folder_deleted. If-Match protegge opzionalmente la revisione.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
deleteMediaFolder

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://screenrig.ai/api/media-folders/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
204Eliminato; i suoi contenuti ora sono nel genitore.nessun corpo
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/media/move

Sposta contenuti multimediali

Sposta file (media_ids) e cartelle (folder_ids) in una cartella (folder_id), o nella radice della libreria se folder_id è null, in una singola richiesta tutto o niente di massimo 1000 ID. Ogni ID deve esistere (not_found). Una cartella non può spostarsi in se stessa o in una cartella al suo interno, e lo spostamento deve mantenere ogni cartella entro 10 livelli (invalid_request).

Gli elementi già nella destinazione restano come sono; ogni file e cartella spostati avanzano la loro revisione. Spostare file cambia cosa riproducono i selettori by:folder delle loro vecchie e nuove cartelle, dalla risoluzione del selettore successivo di ogni schermo; spostare una cartella non cambia i file propri di nessuna cartella. Emette media.moved.

Lo spostamento di una credenziale Propose rende ogni file spostato in sospeso e mette in coda la sua revisione media, e i selettori delle playlist approvate la risolvono con la cartella con cui è stata approvata fino all’approvazione della modifica da parte di una persona (docs/reviews.md).

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaMove
ID operazione
moveMedia

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
folder_id (obbligatorio, inline)Cartella di destinazione; null per la radice della libreria.
media_ids (opzionale, array)
folder_ids (opzionale, array)
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://screenrig.ai/api/media/move'

Risposte

StatoSignificatoCorpo e intestazioni
200Quanti file e cartelle sono stati spostati.MediaMoveResult (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)
POST/api/media/uploads

Crea caricamento contenuti multimediali

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaUploadDeclaration
ID operazione
createMediaUpload

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-Keyintestazioneobbligatorio
project_idqueryopzionale

Obbligatorio con dashboardSession: il progetto dove il file è stato messo in coda. Deve corrispondere al progetto selezionato dalla sessione, altrimenti resource_conflict. Questo vincola l’ammissione upload tra schede. L’id upload restituito resta limitato al progetto per upload byte e commit. Omissibile con un bearer progetto.

Campi del corpo della richiesta

CampoDescrizione
nome_file (obbligatorio, stringa)Nome dei byte caricati, come saranno inviati: un semplice nome file di al massimo 255 byte UTF-8, senza directory, barra rovesciata o caratteri di controllo. minLength: 1 maxLength: 255
source_filename (opzionale, stringa)

Nome originale del file del chiamante prima di qualsiasi transcodifica lato client. Solo nome file semplice, al massimo 255 byte UTF-8. Memorizzato esattamente come source_filename sul contenuto pronto e usato per derivare filename. minLength: 1 maxLength: 255

content_type (obbligatorio, stringa)Consentito: "image/png", "image/jpeg", "image/webp", "image/gif", "video/mp4", "video/webm", "audio/mpeg"
bytes (obbligatorio, intero)minimo: 1 massimo: 1073741824
sha256 (obbligatorio, stringa)pattern: "^[a-f0-9]{64}$"
tag (opzionale, stringa)pattern: "^[A-Za-z0-9]{1,32}$"
folder_id (opzionale, stringa)

La cartella media in cui arriva il contenuto pronto; se omessa, arriva nella radice della libreria. La cartella deve esistere quando l’upload viene dichiarato (altrimenti invalid_request su folder_id) e quando viene confermato (l’operazione fallisce con invalid_request: dichiaralo di nuovo). Un uploader (docs/uploaders.md) deve inviare una delle sue cartelle (altrimenti outside_upload_scope).

Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/uploads'

Risposte

StatoSignificatoCorpo e intestazioni
201

Autorizzazione firmata di breve durata per esattamente un PUT di un oggetto privato. Invia il metodo restituito e ogni intestazione restituita alla lettera. Anche il dashboard carica in questo modo. Il suo browser invia i byte con PUT direttamente nel sistema di archiviazione degli oggetti, mai tramite l’API, perché un proxy davanti all’API rifiuta un corpo della richiesta superiore a 100 MB.

Un browser imposta Content-Length da sé in base al corpo, quindi invia ogni intestazione restituita tranne quella.

MediaUploadSession (application/json); intestazioni: Cache-Control, 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/media/uploads/{id}/commit

Commit Media Upload

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaCommit
ID operazione
commitMediaUpload

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-Keyintestazioneobbligatorio

Campi del corpo della richiesta

CampoDescrizione
content_type (obbligatorio, stringa)Consentito: "image/png", "image/jpeg", "image/webp", "image/gif", "video/mp4", "video/webm", "audio/mpeg"
bytes (obbligatorio, intero)minimo: 1 massimo: 1073741824
sha256 (obbligatorio, stringa)pattern: "^[a-f0-9]{64}$"
Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'Idempotency-Key: REQUEST_ID' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/uploads/RESOURCE_ID/commit'

Risposte

StatoSignificatoCorpo e intestazioni
202Dichiarazione esatta conservata per verifica asincrona e pubblicazione privata immutabile.Operazione (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)
POST/api/selectors/preview

Anteprima selettore

Anteprima in sola lettura delle corrispondenze di immagini o video pronte di proprietà del progetto corrente. Restituisce l’ordinamento dei nomi file e la politica normalizzata; la riproduzione casuale si mescola a ogni nuovo ciclo sul lettore. Non avanza i cursori, non crea concessioni di contenuti, né modifica i manifesti. Più di 1024 corrispondenze restituisce invalid_request.

Autenticazione
projectBearer
Corpo della richiesta
SelectorPreviewInput
ID operazione
previewSelector

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.

Campi del corpo della richiesta

CampoDescrizione
fuso orario (opzionale, stringa)Zona IANA in cui viene letta la disponibilità del media; predefinita UTC.
rect (opzionale, oggetto)La dimensione rect della primitiva; obbligatoria con selector.fit aspect.
primitivo (obbligatorio, stringa)Consentito: "image", "video"
selettore (obbligatorio, inline)
Modello richiesta e risposte
shell · modello richiesta
curl --request POST --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/selectors/preview'

Risposte

StatoSignificatoCorpo e intestazioni
200Corrispondenze selettore correnti.SelectorPreview (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)
GET/api/media/{id}

Ottieni contenuti multimediali

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
getMedia

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://screenrig.ai/api/media/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Metadati media privati pronti. I byte originali sono disponibili al progetto proprietario tramite la rotta di esportazione progetto e a uno schermo solo tramite una concessione manifesto runtime esatta.Contenuti multimediali (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)
PATCH/api/media/{id}

Patch media

Imposta o cancella il tag o i tag dell’elemento media. La modifica del set di tag di una credenziale Propose rende l’elemento in sospeso e mette in coda la sua revisione media; i selettori delle playlist approvate lo risolvono con i tag con cui è stato approvato finché una persona approva la modifica (docs/reviews.md). Una patch che mantiene lo stesso set di tag si applica e l’elemento resta approvato.

Autenticazione
projectBearer
Corpo della richiesta
MediaTagPatch
ID operazione
patchMedia

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 PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --header 'Content-Type: application/json' --data '@request.json' 'https://screenrig.ai/api/media/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Media pronti con il tag aggiornato. I selettori tag runtime osservano il cambiamento al prossimo aggiornamento del ciclo playlist.Contenuti multimediali (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)
ELIMINA/api/media/{id}

Elimina media

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
deleteMedia

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://screenrig.ai/api/media/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
204Contrassegnato come eliminato. Le concessioni desiderate o attive referenziate non possono essere eliminate.nessun corpo
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/media/{id}/tags

Patch tag media

Una persona connessa imposta i tag di un elemento multimediale. tags è il set completo nuovo, mantenuto ordinato: il singolo tag di un elemento, se presente, conta come uno dei suoi tag ed è sostituito con gli altri, quindi invialo di nuovo per mantenerlo. Un array vuoto cancella ogni tag, e un tag malformato o ripetuto, o più di 32, è invalid_request.

È la modifica tag che patchMedia fa sotto una credenziale Manage, nella sessione dashboard: la revisione media avanza di uno e media.updated riporta la persona come attore, indipendentemente dal cambiamento del set. Il cambiamento di una persona è live, mai una revisione.

I media in attesa di revisione da parte di una persona (review_state pending, lasciati da un caricamento o cambiamento con credenziali Propose) sono rifiutati con media_pending_review (409) e nulla cambia: decidi prima la revisione in Reviews, così una modifica tag non approva mai una proposta agente. I selettori playlist per tag osservano i nuovi tag al loro prossimo refresh del ciclo playlist.

Il corpo non ha altri membri. If-Match porta la revisione del media ed è obbligatorio (invalid_request se assente, revision_conflict se obsoleto). Solo sessione dashboard; gli agenti cambiano tag con patchMedia. listMedia con tag trova l’elemento tramite i nuovi tag.

Autenticazione
dashboardSession
Corpo della richiesta
MediaTagsPatch
ID operazione
patchMediaTags

Parametri

NomeInviaObbligatorio?Descrizione
idpathobbligatorio
If-MatchintestazioneobbligatorioLa revisione corrente dell’elemento multimediale, quotata o semplice (l’ETag dell’ultima lettura). Una revisione stale è revision_conflict con current_revision.
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
tag (obbligatorio, array)Set di tag sostitutivi; un array vuoto lo cancella.
Modello richiesta e risposte
shell · modello richiesta
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/media/RESOURCE_ID/tags'

Risposte

StatoSignificatoCorpo e intestazioni
200L’elemento multimediale pronto così come è memorizzato ora; ETag riporta la sua revisione.Contenuti multimediali (application/json); intestazioni: ETag
409media_pending_review — l’elemento attende la revisione di una persona; decidi prima.Problema (application/problem+json)
412revision_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)
PATCH/api/media/{id}/availability

Patch disponibilità media

Imposta quando un media può essere scelto dai selettori dinamici (all, tag e folder) che lo riproducono, oppure cancella la regola con availability null. La regola è quella della programmazione: from e until (civili, precisione al minuto, until escluso), occorrenze windows, monthly e dates e date except, lette nel fuso orario di ogni schermo che risolve il selettore.

Un file fuori dalla sua regola viene escluso dalla selezione al successivo confine del ciclo della playlist e ritorna quando la regola torna in vigore; il bordo di una finestra viene seguito entro un minuto dal ciclo successivo del Player. Nessuna revisione di playlist o manifest cambia. Gli id espliciti (selettore per id o ids) ignorano la regola, così come tutto ciò che non è un selettore dinamico.

Uno schermo offline mantiene l’ultima selezione finché non si riconnette. Impostare la regola che l’elemento ha già non cambia nulla. Una credenziale Propose non può impostarla (insufficient_access): decidere quando il media viene riprodotto spetta a una persona con accesso Manage. I media in attesa di revisione da parte di una persona vengono rifiutati con media_pending_review.

If-Match contiene la revisione del media ed è obbligatorio.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaAvailabilityPatch
ID operazione
patchMediaAvailability

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-MatchintestazioneobbligatorioLa revisione attuale del media, tra virgolette o senza (l’ETag dell’ultima lettura). Una revisione obsoleta dà 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
availability (obbligatorio, inline)La nuova regola, oppure null per rendere il file sempre disponibile.
Modello richiesta e risposte
shell · modello richiesta
curl --request PATCH --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt --header 'If-Match: "REVISION"' --header 'Content-Type: application/json' --data '@request.json' 'https://api.screenrig.ai/api/media/RESOURCE_ID/availability'

Risposte

StatoSignificatoCorpo e intestazioni
200L’elemento multimediale pronto così come è memorizzato ora; ETag riporta la sua revisione.Contenuti multimediali (application/json); intestazioni: ETag
409media_pending_review — l’elemento attende la revisione di una persona; decidi prima.Problema (application/problem+json)
412revision_conflict — If-Match è obsoleto.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/media/{id}/replace

Sostituisci media

Sostituisce sul posto il file di un elemento multimediale pronto con un caricamento dichiarato (createMediaUpload) i cui byte sono stati scritti, invece di confermarlo come nuovo media.

Il media mantiene il suo id, quindi ogni playlist e ogni programmazione che lo cita riproduce il nuovo file senza essere riprogrammata, e i selettori di cartella, tag e tutti i media che lo scelgono lo riproducono alla loro prossima risoluzione. La sostituzione deve essere dello stesso tipo di file (immagine per immagine, video per video, audio per audio); un altro tipo dà invalid_request.

Una modifica del rapporto d’aspetto è consentita: il risultato dell’operazione contiene una voce warnings aspect_ratio_changed che indica le playlist che usano l’elemento. Valgono tutte le regole di caricamento (il limite di byte video del piano, i limiti di dimensione, la quota di archiviazione).

Il file in uso resta nella cronologia delle versioni del media (listMediaVersions) e conta nei byte archiviati finché la sua versione non viene eliminata. If-Match, se inviato, è la revisione del media letta dal chiamante (revision_conflict se obsoleta).

La risposta è l’operazione del caricamento, come per commitMediaUpload: interroga getOperation; il risultato di un’operazione riuscita è {media_id, id, version, warnings}. Byte identici al file in uso non sostituiscono nulla e fanno fallire l’operazione con resource_conflict.

Con Propose effettivo la sostituzione attende invece la revisione: l’operazione riesce con result.status pending_review e result.review_id, il media continua a riprodurre il suo file finché una persona non approva, e una sostituzione più recente dello stesso media prende il posto di quella in attesa.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaReplace
ID operazione
replaceMedia

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-MatchintestazioneopzionaleLa revisione corrente dell’elemento multimediale, tra virgolette o senza. Se omessa, significa qualsiasi.
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
upload_id (obbligatorio, stringa)L’id di un caricamento dichiarato con createMediaUpload e scritto al suo upload_url, ma non confermato. minLength: 1
note (facoltativo, string)Una nota conservata con la nuova versione. maxLength: 280
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://screenrig.ai/api/media/RESOURCE_ID/replace'

Risposte

StatoSignificatoCorpo e intestazioni
202La sostituzione è stata registrata; l’operazione del caricamento ne riporta l’esito.Operazione (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)
GET/api/media/{id}/versions

Elenca versioni del media

Elenca le versioni di un elemento multimediale, dalla più recente, con la versione in uso per prima (current: true). Una versione è un file che l’elemento ha avuto: number è la sua epoca di contenuto più uno (1 per il caricamento, uno in più per ogni sostituzione, ripristino o modifica della sincronizzazione del media), e i suoi byte vengono conservati finché la versione non viene eliminata.

Leggi i byte di una versione con GET /api/media/{id}/content?version=N.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listMediaVersions

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
cursorequeryopzionaleIl next_cursor della pagina precedente.
limitequeryopzionale
Modello richiesta e risposte
shell · modello richiesta
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/versions'

Risposte

StatoSignificatoCorpo e intestazioni
200Una pagina di versioni.MediaVersionPage (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)
ELIMINA/api/media/{id}/versions/{version}

Elimina versione del media

Elimina una versione precedente: il suo record sparisce, i suoi byte escono subito dai byte archiviati del progetto e il suo oggetto viene rimosso dopo 24 ore, a meno che un’altra versione o la versione in uso contenga lo stesso file. La versione in uso non può essere eliminata (resource_conflict) e nessuna versione può essere eliminata mentre una sostituzione del media attende la revisione.

Una versione eliminata non può essere ripristinata.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
deleteMediaVersion

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
versionepathobbligatorioUn numero di versione dell’elemento multimediale (listMediaVersions).
Modello richiesta e risposte
shell · modello richiesta
curl --request DELETE --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/versions/VERSION'

Risposte

StatoSignificatoCorpo e intestazioni
204La versione è stata eliminata.nessun corpo
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/media/{id}/versions/{version}/restore

Ripristina versione del media

Rimette in uso una versione precedente come nuova versione, nella successiva epoca di contenuto del media: il media mantiene il suo id e la revisione avanza di uno, così ogni playlist e ogni programmazione che lo cita riproduce di nuovo quel file senza essere riprogrammata. La versione copiata resta nella cronologia e condivide i suoi byte; la nuova versione conta nei byte archiviati come ogni altra.

La versione in uso non può essere ripristinata (resource_conflict). If-Match, se inviato, è la revisione del media letta dal chiamante. Il corpo può contenere una nota. Con Propose effettivo il ripristino diventa una revisione: 202 pending_review, e il media mantiene il suo file finché una persona non approva.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaRestore
ID operazione
restoreMediaVersion

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
versionepathobbligatorioUn numero di versione dell’elemento multimediale (listMediaVersions).
If-MatchintestazioneopzionaleLa revisione corrente dell’elemento multimediale, tra virgolette o senza. Se omessa, significa qualsiasi.

Campi del corpo della richiesta

CampoDescrizione
note (facoltativo, string)Una nota conservata con la nuova versione. maxLength: 280
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://screenrig.ai/api/media/RESOURCE_ID/versions/VERSION/restore'

Risposte

StatoSignificatoCorpo e intestazioni
200Il media com’è ora e gli avvisi sul file ripristinato.MediaRestored (application/json); intestazioni: ETag
202Il ripristino attende la revisione di una persona.MediaRestorePending (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)
GET/api/media/{id}/content

Esporta contenuti multimediali

Esporta la resa immutabile originale di proprietà del progetto autenticato. Il bearer progetto paga il credito normale richiesta API autenticata, e i byte risposta completati sono registrati come project_media_export egress. L’identificatore media non è mai authority: l’identificatore di altro progetto restituisce not_found.

L’API trasmette dallo storage privato e non pubblica mai una chiave oggetto, URL di storage o GET firmato. Il nome del file allegato è l’identificatore del contenuto multimediale più l’estensione canonica per il tipo di contenuto verificato. La lettura dei contenuti non viene mai rifiutata per il saldo.

Una sessione dashboard visualizza gli stessi byte inline: i byte completati sono registrati come dashboard_media egress, e la risposta è privata, no-cache così il browser ne conserva una copia e la convalida con If-None-Match. Una risposta bearer progetto resta privata, no-store.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
exportMediaContent

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
IntervallointestazioneopzionaleV1 accetta solo un intervallo di byte.
If-None-MatchintestazioneopzionaleETag SHA-256 media forte esatto restituito da questa rotta.
versionequeryopzionaleLeggere questa versione del media (listMediaVersions) invece di quella in uso.
Modello richiesta e risposte
shell · modello richiesta
curl --request GET --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/content'

Risposte

StatoSignificatoCorpo e intestazioni
200Rendition originale completa.

stringa (image/png), stringa (image/jpeg), stringa (image/webp), stringa (image/gif), stringa (video/mp4), stringa (video/webm), stringa (audio/mpeg); intestazioni: Accept-Ranges, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options

206Un intervallo di byte conforme agli standard.

stringa (image/png), stringa (image/jpeg), stringa (image/webp), stringa (image/gif), stringa (video/mp4), stringa (video/webm), stringa (audio/mpeg); intestazioni: Accept-Ranges, Content-Range, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options

304L’ETag immutabile esatto dei contenuti multimediali corrisponde a If-None-Match. Non viene prodotto alcun corpo né incremento di uscita.nessun corpo; intestazioni: ETag, Cache-Control
402

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)
416Intervallo insoddisfacibile o malformato.Problema (application/problem+json); intestazioni: Accept-Ranges, Content-Range
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/media/{id}/content

Contenuto media principale

Applica le stesse regole di proprietà del progetto, condizionali, di intervallo e di archiviazione privata di exportMediaContent senza aprire o trasferire la resa archiviata.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
headMediaContent

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
IntervallointestazioneopzionaleV1 accetta solo un intervallo di byte.
If-None-MatchintestazioneopzionaleETag SHA-256 media forte esatto restituito da questa rotta.
versionequeryopzionaleLeggere questa versione del media (listMediaVersions) invece di quella in uso.
Modello richiesta e risposte
shell · modello richiesta
curl --request HEAD --header 'Authorization: Bearer [SCREENRIG_TOKEN]' --cookie cookies.txt --cookie-jar cookies.txt 'https://screenrig.ai/api/media/RESOURCE_ID/content'

Risposte

StatoSignificatoCorpo e intestazioni
200Metadati rendition completa senza corpo.nessun corpo; intestazioni: Accept-Ranges, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options
206Metadati byte-range senza corpo.nessun corpo; intestazioni: Accept-Ranges, Content-Range, Content-Length, Content-Type, Content-Disposition, ETag, Cache-Control, X-Content-Type-Options
304L’ETag immutabile esatto dei contenuti multimediali corrisponde a If-None-Match. Non viene prodotto alcun corpo.nessun corpo; intestazioni: ETag, Cache-Control
402Il contatore API da 1 credito ha rifiutato la richiesta bearer di un progetto Standard oltre la sua quota, senza credito. Una risposta HEAD non contiene corpo problema.nessun corpo
416Intervallo insoddisfacibile o malformato.Problema (application/problem+json); intestazioni: Accept-Ranges, Content-Range
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/media-sync-accounts

Elencare gli account di sincronizzazione media

Lists the project's media sync accounts, newest first (200 per page; next_cursor continues). Each shows its tenant and client id, its state and its last test; the client secret is never returned, only whether one is set and its last four characters.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listMediaSyncAccounts

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.
cursorequeryopzionaleIl next_cursor della pagina precedente.
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/media-sync-accounts'

Risposte

StatoSignificatoCorpo e intestazioni
200Gli account del progetto.MediaSyncAccountList (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/media-sync-accounts

Creare un account di sincronizzazione media

Aggiunge un account che sincronizza in lettura. kind microsoft365 memorizza le credenziali dell’app Microsoft Entra propria del progetto, così le sincronizzazioni possono leggere una cartella SharePoint o OneDrive for Business: config.tenant_id è l’ID della directory o il dominio principale del tenant (common, organizations e consumers vengono rifiutati), config.client_id l’ID applicazione dell’app, e secret il valore di uno dei segreti client dell’app; l’app richiede l’autorizzazione dell’applicazione Microsoft Graph Sites.Selected (concessa su ogni sito) o Files.Read.All, con il consenso dell’amministratore.

Al posto di quei tre, config.connection_id indica una connessione Microsoft del progetto (createConnection), in entrambe le modalità, che accede e conserva il segreto. kind canva accetta solo un nome: l’account è pending_consent e la risposta porta authorize_url, un link monouso (valido fino a authorize_expires_at) che la persona titolare dell’account Canva apre, connessa a Canva, per collegarlo tramite l’integrazione Canva di screenRIG.

La concessione appartiene al progetto, quindi le sue sincronizzazioni sopravvivono alla persona che l’ha collegata.

Un server senza l’integrazione Canva risponde 409 canva_not_configured. kind dropbox funziona come canva: l’account è pending_consent e authorize_url è un link monouso che la persona titolare dell’account Dropbox apre, dopo aver effettuato l’accesso a Dropbox, per concedere l’accesso in sola lettura (files.metadata.read, files.content.read, account_info.read, sharing.read).

Passa attraverso l’app Dropbox di screenRIG, oppure attraverso l’app Dropbox propria del cliente quando config.app_key la indica (PKCE, quindi senza app secret; l’app deve elencare https://API_ORIGIN/api/dropbox/callback come URI di reindirizzamento).

Un server senza l’app Dropbox di screenRIG risponde 409 dropbox_not_configured a un account dropbox senza app_key. kind google_drive è subito ready e legge le cartelle condivise con config.service_account_email: l’account di servizio di screenRIG, oppure quello proprio del cliente quando secret è la chiave JSON di quell’account di servizio.

Una cartella condivisa con l’account di servizio di screenRIG si sincronizza solo quando un membro del progetto con un’email verificata l’ha condivisa o ne è il proprietario. Un server senza l’account di servizio di screenRIG risponde 409 google_drive_not_configured a un account google_drive senza chiave. Un segreto è sigillato a riposo e non viene mai restituito né scritto nei log. Aggiunge media_sync_account.created.

Un nuovo tentativo identico con la stessa Idempotency-Key restituisce lo stesso account (un nuovo tentativo Canva o Dropbox riceve un nuovo link).

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaSyncAccountWrite
ID operazione
createMediaSyncAccount

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 (obbligatorio, stringa)Consentito: "microsoft365", "canva", "dropbox", "google_drive"
nome (obbligatorio, stringa)minLength: 1 maxLength: 80
config (opzionale, object)

Per microsoft365, tenant_id e client_id (entrambi) con secret, oppure connection_id da solo: l’ID di una connessione Microsoft di questo progetto. Per dropbox, app_key indica facoltativamente l’app Dropbox propria del cliente. Non accettato per canva o google_drive.

secret (opzionale, stringa)

Obbligatorio per microsoft365 con tenant_id e client_id: il valore di uno dei segreti client dell’app (non il suo ID), al massimo 1024 caratteri.

Per google_drive, facoltativa: la chiave JSON dell’account di servizio Google Cloud proprio del cliente (type service_account), il cui client_email diventa il service_account_email dell’account; senza di essa l’account legge tramite l’account di servizio di screenRIG. Non accettata con connection_id né per canva o dropbox. minLength: 1 maxLength: 8192

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/media-sync-accounts'

Risposte

StatoSignificatoCorpo e intestazioni
201Creato, con il segreto mascherato; un account Canva o Dropbox porta anche authorize_url.MediaSyncAccountConnect (application/json); intestazioni: ETag, Cache-Control
400invalid_request.Problema (application/problem+json)
402feature_not_in_plan — il piano del progetto non include la sincronizzazione media; required_plan indica il piano che la include.Problema (application/problem+json)
409

canva_not_configured (questo server non ha l’integrazione Canva; solo kind canva), dropbox_not_configured (nessuna app Dropbox di screenRIG e nessun config.app_key; solo kind dropbox), google_drive_not_configured (nessun account di servizio di screenRIG e nessuna chiave; solo kind google_drive), resource_conflict o idempotency_mismatch.

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/media-sync-accounts/{id}

Ottenere l’account di sincronizzazione media

Un account di sincronizzazione media, con il segreto mascherato.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
getMediaSyncAccount

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/media-sync-accounts/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Un account.MediaSyncAccount (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/media-sync-accounts/{id}

Aggiornare l’account di sincronizzazione media

Changes the name, tenant, client id or secret; an omitted secret keeps the stored one. A change of credentials discards the last test. A Canva account takes only a name; media sync account connect renews its connection. Appends media_sync_account.updated. If-Match guards the revision.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaSyncAccountPatch
ID operazione
updateMediaSyncAccount

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
nome (opzionale, stringa)minLength: 1 maxLength: 80
config (opzionale, MediaSyncAccountConfig)
secret (opzionale, stringa)

Sostituisce il segreto memorizzato (un segreto client microsoft365, oppure la chiave dell’account di servizio propria di un account google_drive, che deve appartenere allo stesso client_email); omettilo per mantenere quello memorizzato. minLength: 1 maxLength: 8192

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/media-sync-accounts/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Account aggiornato.MediaSyncAccount (application/json); intestazioni: ETag, Cache-Control
400invalid_request.Problema (application/problem+json)
402

feature_not_in_plan — il piano del progetto non include la sincronizzazione media; required_plan indica il piano che la include. Una modifica che sostituisce solo il segreto è sempre consentita, quindi un account il cui client secret è scaduto resta aggiornato.

Problema (application/problem+json)
412revision_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/api/media-sync-accounts/{id}

Eliminare l’account di sincronizzazione media

Deletes the account. Refused 409 resource_conflict while a sync reads through it; the detail names those syncs. Deleting a Canva account also revokes its tokens at Canva (a failure to revoke is logged and does not undo the delete). Appends media_sync_account.deleted. If-Match guards the revision.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
deleteMediaSyncAccount

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/media-sync-accounts/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
204Eliminato.nessun corpo
409resource_conflict (l’account è usato da sincronizzazioni) o idempotency_mismatch.Problema (application/problem+json)
412revision_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)
POST/api/media-sync-accounts/{id}/test

Testare l’account di sincronizzazione media

Signs in with the account's app and reports what Microsoft granted it: whether the credentials work and which Graph application permissions the token carries (Sites.Selected, Files.Read.All and the like). Sites.Selected is reported with a warning, because each site needs a grant for the app.

For a Canva account it reports whether Canva still accepts the connection. It does not judge a site's grant, a folder or a design, or consent beyond what the token carries. The result is stored as last_test. A failed check is ok false in the answer, not a problem.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
testMediaSyncAccount

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/media-sync-accounts/RESOURCE_ID/test'

Risposte

StatoSignificatoCorpo e intestazioni
200Cosa trasporta il token dell’app.MediaSyncTest (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/media-sync-accounts/{id}/connect

Collegare l’account di sincronizzazione media

Crea un nuovo link di consenso monouso (authorize_url, valido fino a authorize_expires_at) per un account Canva o Dropbox, da inviare alla persona titolare di quell’account, che lo apre dopo aver effettuato l’accesso a Canva o a Dropbox e concede l’accesso. Sostituisce qualsiasi link precedente.

Un account collegato resta collegato finché il nuovo consenso non è completato, quindi questa operazione rinnova anche una connessione (stato reconnect_required) o la sposta su un altro account Canva o Dropbox. Il link è una credenziale del consenso: invialo solo a quella persona.

Un server senza l’integrazione Canva risponde 409 canva_not_configured; un account Dropbox senza app_key su un server senza l’app Dropbox di screenRIG risponde 409 dropbox_not_configured.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
connectMediaSyncAccount

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/media-sync-accounts/RESOURCE_ID/connect'

Risposte

StatoSignificatoCorpo e intestazioni
200L’account con un nuovo authorize_url.MediaSyncAccountConnect (application/json); intestazioni: ETag, Cache-Control
400invalid_request — l’account non è un account Canva o Dropbox.Problema (application/problem+json)
409canva_not_configured (questo server non ha l’integrazione Canva) oppure dropbox_not_configured (nessuna app Dropbox di screenRIG e l’account non ha app_key).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/media-sync-accounts/{id}/designs

Elencare i design di sincronizzazione media

Lists the Canva designs the connected person can see, most recently changed first (50 per page; continuation continues), optionally those matching query. Each shows its id, title, last change, page count and a view address. An account that is not connected is 409 canva_reconnect_required; a server without the Canva integration is 409 canva_not_configured.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listMediaSyncDesigns

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
queryqueryopzionaleElenca solo i design il cui titolo o testo corrisponde.
continuazionequeryopzionaleLa continuazione della pagina precedente.
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/media-sync-accounts/RESOURCE_ID/designs'

Risposte

StatoSignificatoCorpo e intestazioni
200Una pagina di design.MediaSyncDesignList (application/json); intestazioni: Cache-Control
400invalid_request: l’account non è un account Canva, oppure query o continuation non è valido.Problema (application/problem+json)
409canva_reconnect_required (l’account non è connesso o Canva non onora più la connessione) o canva_not_configured (questo server non ha un’integrazione Canva).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/canva/callback

Completare il consenso di Canva

Dove Canva invia la persona dopo che ha consentito (o rifiutato) l’accesso in un link di consenso.

It carries no credential: the one-time state in the query finds the Canva account, must be unexpired and is used once, in the same write that stores the connection. screenRIG exchanges the code (PKCE, client authentication with the integration's credentials), reads whose Canva account it is, seals the tokens and appends media_sync_account.connected.

The answer is a short page naming the account and the project it was connected to; an error, an unknown, expired or used state, or a refused code renders the same page with the reason and changes nothing. Answers only on the API host.

Autenticazione
nessuno
Corpo della richiesta
nessuno
ID operazione
completeCanvaConsent

Parametri

NomeInviaObbligatorio?Descrizione
codicequeryopzionale
statoqueryopzionale
errorequeryopzionale
Modello richiesta e risposte
shell · modello richiesta
curl --request GET 'https://api.screenrig.ai/api/canva/callback'

Risposte

StatoSignificatoCorpo e intestazioni
200La pagina che indica che l’account è collegato.stringa (text/html)
400La pagina che indica perché non è stato collegato nulla.stringa (text/html)
502Canva non è raggiungibile; lo stesso link funziona di nuovo.stringa (text/html)
409Canva non è configurato su questo server.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)
GET/api/dropbox/callback

Completare il consenso di Dropbox

Dove Dropbox reindirizza la persona dopo che ha concesso (o rifiutato) l’accesso da un link di consenso.

Non porta alcuna credenziale: lo state monouso nella query individua l’account Dropbox, non deve essere scaduto e viene usato una sola volta, nella stessa scrittura che memorizza la connessione. screenRIG scambia il codice (PKCE, con l’app Dropbox di screenRIG o con l’app_key propria dell’account), legge di quale account Dropbox si tratta, sigilla i token e aggiunge media_sync_account.connected.

The answer is a short page naming the account and the project it was connected to; an error, an unknown, expired or used state, or a refused code renders the same page with the reason and changes nothing. Answers only on the API host.

Autenticazione
nessuno
Corpo della richiesta
nessuno
ID operazione
completeDropboxConsent

Parametri

NomeInviaObbligatorio?Descrizione
codicequeryopzionale
statoqueryopzionale
errorequeryopzionale
Modello richiesta e risposte
shell · modello richiesta
curl --request GET 'https://api.screenrig.ai/api/dropbox/callback'

Risposte

StatoSignificatoCorpo e intestazioni
200La pagina che indica che l’account è collegato.stringa (text/html)
400La pagina che indica perché non è stato collegato nulla.stringa (text/html)
502Dropbox non è raggiungibile; lo stesso link funziona di nuovo.stringa (text/html)
409L’account non ha app_key e l’app Dropbox di screenRIG non è configurata su questo server.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)
GET/api/media-syncs

Elencare le sincronizzazioni media

Lists the project's media syncs, newest first (200 per page; next_cursor continues), optionally of one account_id or state. Each shows its source folder, the media folder it fills, its cadence, state, next run and the summary of its last run.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listMediaSyncs

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.
cursorequeryopzionaleIl next_cursor della pagina precedente.
account_idqueryopzionaleElenca solo le sincronizzazioni che leggono tramite questo account.
statoqueryopzionaleElenca solo le sincronizzazioni in questo stato.
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/media-syncs'

Risposte

StatoSignificatoCorpo e intestazioni
200Le sincronizzazioni del progetto.MediaSyncList (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/media-syncs

Creare una sincronizzazione media

provider canva: legge il design (design è il suo id o il suo indirizzo canva.com/design/ID/...) tramite un account Canva connesso e memorizza la sincronizzazione, da eseguire ora.

Each run asks Canva for the design's last change and, when it moved, exports the pages (pages, default all; format png gives one image per page and mp4 one video) and imports them into the media folder, replacing the bytes of a page already imported under the same media id so the playlists that use it update; a page the design no longer has leaves play like a removed SharePoint file.

Un design che Canva non mostra più ferma la sincronizzazione nello stato error (errore di esecuzione design_unavailable) e mantiene i media.

Un design o una pagina che l’account non può vedere è 409 media_sync_source_refused. provider dropbox: url è l’indirizzo della cartella in Dropbox (https://www.dropbox.com/home/...), il link di una cartella condivisa che l’account collegato ha aggiunto al proprio Dropbox, oppure un percorso che inizia con /; viene letto una sola volta tramite un account Dropbox collegato e la sincronizzazione viene memorizzata, da eseguire subito.

Le cartelle in uno spazio del team vengono lette dalla radice del team. Ogni esecuzione riprende dalla posizione salvata di Dropbox nella cartella, quindi vengono lette solo le modifiche.

Una cartella che l’account non può aprire è 409 media_sync_source_refused; un account la cui connessione Dropbox non accetta più è 409 dropbox_reconnect_required. provider google_drive: url è l’indirizzo Google Drive della cartella (https://drive.google.com/drive/folders/ID) o il suo ID, condivisa (basta il ruolo Lettore) con il service_account_email dell’account.

Ogni esecuzione elenca la cartella e confronta il checksum di ogni file. I file di Google Documenti, Fogli e Presentazioni vengono saltati come unsupported_type. Una cartella che l’indirizzo non riesce ad aprire è 409 media_sync_source_refused.

Tramite l’account di servizio di screenRIG la cartella deve essere condivisa o di proprietà di un membro del progetto con un’email verificata (403 media_sync_sharer_not_member), e ogni esecuzione lo verifica di nuovo (l’errore di esecuzione sharer_not_member ferma la sincronizzazione nello stato error). provider sharepoint: legge l’indirizzo della cartella tramite l’account (un indirizzo di sito SharePoint come https://TENANT.sharepoint.com/sites/SITE/LIBRARY/FOLDER, oppure un link di condivisione; l’app deve poterlo vedere: Sites.Selected richiede una concessione sul sito, un link di condivisione richiede Files.Read.All) e memorizza la sincronizzazione, da eseguire subito. folder_id è la cartella media in cui vengono salvati i file; senza di esso la sincronizzazione ne crea una con il nome della cartella di origine.

Each run imports the images (png, jpeg, webp, gif), videos (mp4, webm) and audio (mp3) directly in the source folder, replaces the bytes of a file that changed under the same media id so playlists that use it update, and takes a file removed at the source out of play: its media is deleted, or, while screens still hold it, moved to a Removed subfolder and deleted later.

Subfolders are ignored; other files are listed as skipped with the reason. every is the seconds between runs, 300 to 86400, default 900. A folder the provider refuses is 409 media_sync_source_refused and one it cannot reach is 500 media_sync_source_unavailable; nothing is stored. Appends media_sync.created.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaSyncWrite
ID operazione
createMediaSync

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
provider (obbligatorio, stringa)Consentito: "sharepoint", "canva", "dropbox", "google_drive"
account_id (obbligatorio, stringa)Un account del tipo corrispondente al provider: microsoft365 per sharepoint, canva, dropbox o google_drive.
url (opzionale, stringa)

sharepoint (obbligatorio): l’indirizzo SharePoint della cartella o il link di condivisione, letto una sola volta per trovare la cartella e non memorizzato. dropbox (obbligatorio): l’indirizzo Dropbox della cartella, il link di una cartella condivisa che l’account ha aggiunto, oppure un percorso che inizia con /. google_drive (obbligatorio): l’indirizzo Google Drive della cartella o il suo ID. maxLength: 4096

design (opzionale, stringa)canva (obbligatorio): l’id del design o il suo indirizzo canva.com/design/ID/... maxLength: 2048
pages (opzionale, array)canva: le pagine da sincronizzare; omettilo per tutte le pagine. Un design che in seguito ha meno pagine toglie dalla riproduzione quelle mancanti.
format (opzionale, stringa)canva: png dà un’immagine per pagina; mp4 un video delle pagine. Allowed: "png", "mp4" default: "png"
folder_id (opzionale, stringa)La cartella media in cui arrivano i file. Omettila per crearne una con il nome della cartella di origine.
every (opzionale, intero)Secondi tra un’esecuzione e l’altra; 900 per impostazione predefinita. minimum: 300 maximum: 86400
nome (opzionale, stringa)Per impostazione predefinita, il nome della cartella di origine. minLength: 1 maxLength: 80
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/media-syncs'

Risposte

StatoSignificatoCorpo e intestazioni
201Creata, da eseguire ora.MediaSync (application/json); intestazioni: ETag, Cache-Control
400invalid_request.Problema (application/problem+json)
402feature_not_in_plan — il piano del progetto non include la sincronizzazione media; required_plan indica il piano che la include.Problema (application/problem+json)
403media_sync_sharer_not_member — una cartella Google Drive letta tramite l’account di servizio di screenRIG non è stata condivisa né è di proprietà di un membro del progetto con un’email verificata.Problema (application/problem+json)
409

media_sync_source_refused (il provider ha rifiutato l’app, la sua autorizzazione o la cartella), dropbox_reconnect_required (l’account Dropbox deve essere collegato di nuovo), dropbox_not_configured, google_drive_not_configured, resource_conflict (la stessa origine è già sincronizzata in quella cartella media) o idempotency_mismatch.

Problema (application/problem+json)
500media_sync_source_unavailable: il provider non è raggiungibile oppure ha risposto con un errore.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/media-syncs/{id}

Ottenere la sincronizzazione media

Una sincronizzazione media, con il riepilogo dell’ultima esecuzione.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
getMediaSync

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/media-syncs/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Una sincronizzazione.MediaSync (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/media-syncs/{id}

Aggiornare la sincronizzazione media

Changes the name, every (seconds between runs), state (active or paused; active also resumes a sync an error stopped) or folder_id. A new folder_id points the sync at another media folder and makes its next run read the whole source again, which puts every synced file there. Appends media_sync.updated. If-Match guards the revision.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
MediaSyncPatch
ID operazione
updateMediaSync

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
nome (opzionale, stringa)minLength: 1 maxLength: 80
every (opzionale, intero)Secondi tra un’esecuzione e l’altra. minimum: 300 maximum: 86400
state (opzionale, stringa)Consentiti: "active", "paused"
folder_id (opzionale, stringa)
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/media-syncs/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
200Sincronizzazione aggiornata.MediaSync (application/json); intestazioni: ETag, Cache-Control
400invalid_request.Problema (application/problem+json)
402feature_not_in_plan — il piano del progetto non include la sincronizzazione media; required_plan indica il piano che la include. Mettere in pausa una sincronizzazione è sempre consentito.Problema (application/problem+json)
412revision_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/api/media-syncs/{id}

Eliminare la sincronizzazione media

Ferma la sincronizzazione e dimentica quale file di origine è diventato quale media. I media e la loro cartella restano. Aggiunge media_sync.deleted. If-Match protegge la revisione.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
deleteMediaSync

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/media-syncs/RESOURCE_ID'

Risposte

StatoSignificatoCorpo e intestazioni
204Eliminato.nessun corpo
412revision_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)
POST/api/media-syncs/{id}/run

Eseguire la sincronizzazione media

Rende la sincronizzazione dovuta ora e risponde 202; un worker la esegue entro circa 30 secondi e la risposta di GET /api/media-syncs/{id} mostra il suo last_run.

Una sincronizzazione fermata da un errore viene eseguita di nuovo; una sincronizzazione in pausa viene rifiutata finché non è ripresa. force=true fa esportare il design a una sincronizzazione Canva anche quando Canva lo segnala come invariato (rifiutato per una SharePoint: scarica già ogni file modificato).

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
runMediaSync

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.
forzarequeryopzionaleUna sincronizzazione Canva esporta il design anche quando Canva lo segnala come invariato.
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/media-syncs/RESOURCE_ID/run'

Risposte

StatoSignificatoCorpo e intestazioni
202La sincronizzazione, da eseguire ora.MediaSync (application/json); intestazioni: ETag, Cache-Control
400invalid_request.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)