Riferimento API

API Conteggi riproduzioni

Aggregati di riproduzione

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

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

Aggregati di riproduzione

GET/api/playback

Elenca gli aggregati di riproduzione

Aggregati giornalieri di riproduzione.

JSON restituisce al massimo 200 righe e non è limitato da rate. format=csv (o Accept text/csv senza application/json) trasmette ogni riga corrispondente dentro day_from a day_to (giorni UTC inclusi; default day_to oggi e day_from 30 giorni prima; massimo 366 giorni, altrimenti invalid_request) come CSV con riga intestazione fissa (PlaybackAggregateCsv); solo la forma CSV consuma i budget playback-export-org (30 al minuto) e playback-export-ip (60 al minuto).

Entrambe le forme sono una richiesta API conteggiata. Le risposte includono Vary Accept. Un chiamante limitato agli schermi (docs/screen-scope.md) deve inviare screen_id, che deve essere uno schermo dentro il suo ambito (altrimenti outside_screen_scope); le forme CSV seguono la stessa regola.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listPlaybackAggregates

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.
screen_idqueryopzionale
media_idqueryopzionale
giornoqueryopzionaleGiorno del calendario UTC dell’aggregato.
day_fromqueryopzionalePrimo giorno UTC, incluso. Esclude day. Con day_to copre al massimo 366 giorni. CSV lo predefinisce a 30 giorni prima di day_to.
day_toqueryopzionaleUltimo giorno UTC, incluso. Esclude il giorno. CSV lo predefinisce a oggi (UTC).
formatoqueryopzionalejson (predefinito), csv, xlsx o pdf. Se omesso, un'intestazione Accept che nomina text/csv ma non application/json seleziona csv. xlsx e pdf scrivono le prime 50000 righe dello stesso elenco.
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/playback'

Risposte

StatoSignificatoCorpo e intestazioni
200

Aggregati giornalieri di riproduzione per il progetto chiamante, immagini e video inclusi. Una riga per schermo, contenuto multimediale e giorno UTC. I giorni più recenti per primi. Gli identificatori filtrano solo le righe del chiamante e non sono mai una ricerca cross-progetto.

PlaybackAggregateList (application/json), PlaybackAggregateCsv (text/csv); intestazioni: Vary, RateLimit-Policy, RateLimit
400

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

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

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

outside_screen_scope - il chiamante è limitato agli schermi e lo schermo, la cartella di schermi, il selettore o il pubblico che la richiesta nomina o raggiunge è fuori da essi (docs/screen-scope.md). Un id fuori dall’ambito e un id che non esiste ricevono la stessa risposta; errors[0].screen_scope riporta l’ambito del chiamante, e la scrittura viene rifiutata per intero, mai ridotta.

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/playback/plays

Elenca le riproduzioni di playback

Record per riproduzione: una riga per ogni playback.media_started accettato (o playback.video_started legacy) e una riga per ogni playback.application_started accettato (release_id impostato, campi media vuoti) del progetto chiamante, dal più vecchio per received_at, in caso di parità per inserimento. Da (incluso) e a (escluso) limite received_at; a predefinito ora, da a 24 ore prima di a, e l’intervallo è al massimo 31 giorni (invalid_request altrimenti).

Gli ultimi 5 secondi non sono ancora restituiti: il to effettivo è al massimo ora meno 5 secondi (settle lag), quindi una coda live non salta mai una riga che si impegna dietro il suo cursore. Filtrano screen_id, media_id, playlist_id (la playlist da cui è stato mostrato l’inizio) e tag (un tag schermo che lo schermo aveva quando è stato ricevuto il play).

Una pagina playlist_id può contenere meno di limit righe, anche nessuna, con next_cursor quando è stata scansionata una lunga serie di riproduzioni di altre playlist; null indica comunque la fine dell’intervallo.

JSON è una pagina di al massimo limit righe (default 200, massimo 1000) con next_cursor, null alla fine dell’intervallo; restituiscilo come cursor con gli stessi filtri. order=desc (o before) pagina i più recenti per primi nello stesso intervallo: next_cursor è allora il cursore della riga più vecchia restituita, null all’inizio dell’intervallo, e viene restituito come before (esclusivo) con gli stessi filtri; order=asc con before è rifiutato con invalid_request che nomina order, e cursor con una pagina newest-first che nomina cursor.

Una pagina più recente può contenere meno di limit righe, anche nessuna, con next_cursor; null indica comunque la fine.

Una pagina successiva non salta mai una riga esistente quando la pagina precedente è stata letta e non ne ripete una, tranne che un avvio che il Player ha reinviato dopo un report non riconosciuto (lo stesso play_id, ricevuto poco dopo) può apparire di nuovo in una pagina successiva; il flusso CSV lo elenca una volta. format=csv (o Accept text/csv senza application/json) trasmette ogni riproduzione dal cursore alla fine dell’intervallo come CSV (PlaybackPlayCsv), più recente prima sotto con order=desc; limit è rifiutato con CSV.

La misurazione è per richiesta: ogni pagina JSON costa un credito richiesta API, mentre un flusso CSV dell’intervallo completo costa uno. Ogni richiesta plays (pagina o flusso) consuma i budget playback-export-org (30 al minuto) e playback-export-ip (60 al minuto).

Uno stream limita ogni scrittura (15 secondi) e termina quando il client si disconnette; se fallisce dopo l’header 200 la connessione è abortita, quindi un export che legge fino a una fine pulita è completo. Le risposte portano Vary Accept. Le riproduzioni sono conservate per la durata di conservazione eventi del piano (30 giorni è il minimo fornito; la conservazione basata sul piano usa la finestra di 7 o 90 giorni del piano).

Un chiamante limitato agli schermi (docs/screen-scope.md) deve inviare screen_id, che deve essere uno schermo dentro il suo ambito (altrimenti outside_screen_scope); le forme CSV seguono la stessa regola.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
listPlaybackPlays

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.
daqueryopzionaleLimite inferiore inclusivo su received_at. Predefinito a 24 ore prima di to.
aqueryopzionaleLimite superiore esclusivo su received_at. Predefinito ora. to - from è al massimo 31 giorni.
screen_idqueryopzionale
media_idqueryopzionale
playlist_idqueryopzionaleSolo riproduzioni mostrate da questa playlist.
tagqueryopzionaleUn tag dello schermo che lo schermo portava quando è stata ricevuta la riproduzione.
cursorequeryopzionalenext_cursor della pagina precedente, con gli stessi filtri. Opaco.
ordinequeryopzionaleasc pagine dalla più vecchia con cursore; desc pagine dalla più nuova con before. before implica desc; order=asc con before è rifiutato.
beforequeryopzionalePagine più recenti per prime, strettamente più vecchie di questa posizione: il next_cursor di una pagina più recente per prima, con gli stessi filtri. Opaco.
limitequeryopzionaleDimensione pagina JSON. Rifiutato con CSV.
formatoqueryopzionalejson (predefinito), csv, xlsx o pdf. Se omesso, un'intestazione Accept che nomina text/csv ma non application/json seleziona csv. xlsx e pdf scrivono le prime 50000 righe dello stesso elenco.
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/playback/plays'

Risposte

StatoSignificatoCorpo e intestazioni
200Una pagina di riproduzioni, o il flusso CSV.PlaybackPlayList (application/json), PlaybackPlayCsv (text/csv); intestazioni: Cache-Control, Vary, RateLimit-Policy, RateLimit
400

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

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

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

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

outside_screen_scope - il chiamante è limitato agli schermi e lo schermo, la cartella di schermi, il selettore o il pubblico che la richiesta nomina o raggiunge è fuori da essi (docs/screen-scope.md). Un id fuori dall’ambito e un id che non esiste ricevono la stessa risposta; errors[0].screen_scope riporta l’ambito del chiamante, e la scrittura viene rifiutata per intero, mai ridotta.

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/playback/totals

Ottieni totali riproduzione

Totali di riproduzione del progetto chiamante su giorni UTC inclusivi, letti dai rollup giornalieri: by=day restituisce una riga per giorno con riproduzioni (screen_id o media_id limita a uno schermo o media), by=screen e by=media classificano gli schermi o media più attivi (top, massimo 100), e by=screen_day restituisce la serie giornaliera degli schermi top (top massimo 10). day_to predefinito oggi (UTC) e day_from 29 giorni prima.

Una serie di giorni copre al massimo 366 giorni (92 se limitata a uno schermo o media); un ranking al massimo 92. I conteggi includono ogni inizio registrato dal progetto, inclusi quelli memorizzati prima che esistessero i rollup di riproduzione.

I rollup seguono l’ingestione fino a circa 21 minuti. truncated è true quando un ranking è stato costruito da fette di una finestra troppo grande per una lettura: copre le migliori chiavi di ogni fetta. Non è limitato da rate limit. Una richiesta API conteggiata.

Un chiamante limitato agli schermi (docs/screen-scope.md) deve inviare screen_id, che deve essere uno schermo dentro il suo ambito (altrimenti outside_screen_scope); le forme CSV seguono la stessa regola.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
getPlaybackTotals

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.
formatoqueryopzionalejson (predefinito) restituisce il report come JSON. csv, xlsx e pdf restituiscono le stesse righe come allegato (ogni pagina di un report a pagine, fino a 50000 righe).
daqueryopzionalegiorno: riproduzioni per giorno; schermo, contenuti multimediali: le chiavi più intense; screen_day: la serie giornaliera degli schermi principali.
day_fromqueryopzionalePrimo giorno UTC, incluso. Predefinito a 29 giorni prima di day_to. Una serie di giorni copre al massimo 366 giorni (92 se limitata a uno schermo o contenuto multimediale), una classifica al massimo 92.
day_toqueryopzionaleUltimo giorno UTC, incluso. Predefinito a oggi (UTC).
screen_idqueryopzionale
media_idqueryopzionale
topqueryopzionaleQuanti schermi o contenuti multimediali restituisce una classifica (al massimo 10 per by=screen_day). Rifiutato con by=day.
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/playback/totals'

Risposte

StatoSignificatoCorpo e intestazioni
200Totali del raggruppamento richiesto.PlaybackTotals (application/json); intestazioni: Cache-Control
400

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

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

outside_screen_scope - il chiamante è limitato agli schermi e lo schermo, la cartella di schermi, il selettore o il pubblico che la richiesta nomina o raggiunge è fuori da essi (docs/screen-scope.md). Un id fuori dall’ambito e un id che non esiste ricevono la stessa risposta; errors[0].screen_scope riporta l’ambito del chiamante, e la scrittura viene rifiutata per intero, mai ridotta.

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/playback/completeness

Ottieni completezza della riproduzione

Quante delle riproduzioni effettuate dagli schermi sono arrivate al backend e dove si trovavano quelle mancanti. I Player numerano gli avvii dei contenuti multimediali, quindi un avvio che non è mai arrivato lascia un buco nella numerazione, ad esempio quando uno schermo resta offline oltre la sua coda di report di 24 ore o la coda scarta dei report.

Nei giorni UTC da day_from a day_to inclusi (day_to è per impostazione predefinita oggi, in UTC, e day_from 29 giorni prima; la finestra copre al massimo 92 giorni) la risposta contiene measured_plays, le riproduzioni numerate arrivate; missing_plays, i numeri saltati dai Player; completeness, il rapporto tra measured_plays e la loro somma, null quando entrambi sono 0; days, gli stessi tre valori per ogni giorno che ne ha, dal più vecchio, con un buco contato nel giorno UTC della riproduzione successiva; e gaps, i buchi dal più recente, ciascuno con screen_id, day, from e to (gli orari di avvio delle riproduzioni ai due lati del buco) e missing_plays. screen_id restringe days e gaps a un solo schermo; limit (predefinito 100, al massimo 500) limita gaps, e truncated è true quando ne esistono altri.

Uno schermo spento non genera riproduzioni e non lascia lacune. Le riproduzioni senza numero (Player meno recenti, avvii memorizzati prima dei numeri di riproduzione) non vengono misurate: rientrano in play_count di GET /api/playback/totals e in nessuno di questi valori. Senza limiti di frequenza. Una richiesta API conteggiata.

Un chiamante limitato agli schermi (docs/screen-scope.md) deve inviare screen_id, che deve essere uno schermo dentro il suo ambito (altrimenti outside_screen_scope); le forme CSV seguono la stessa regola.

Autenticazione
projectBearer O dashboardSession
Corpo della richiesta
nessuno
ID operazione
getPlaybackCompleteness

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.
formatoqueryopzionalejson (predefinito) restituisce il report come JSON. csv, xlsx e pdf restituiscono le stesse righe come allegato (ogni pagina di un report a pagine, fino a 50000 righe).
day_fromqueryopzionalePrimo giorno UTC, incluso. Predefinito: 29 giorni prima di day_to. Con day_to, l'intervallo copre al massimo 92 giorni.
day_toqueryopzionaleUltimo giorno UTC, incluso. Predefinito a oggi (UTC).
screen_idqueryopzionale
limitequeryopzionaleIl numero massimo di lacune da elencare, dalla più recente.
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/playback/completeness'

Risposte

StatoSignificatoCorpo e intestazioni
200La completezza della finestra e le sue lacune.PlaybackCompleteness (application/json); intestazioni: Cache-Control
400

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

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

outside_screen_scope - il chiamante è limitato agli schermi e lo schermo, la cartella di schermi, il selettore o il pubblico che la richiesta nomina o raggiunge è fuori da essi (docs/screen-scope.md). Un id fuori dall’ambito e un id che non esiste ricevono la stessa risposta; errors[0].screen_scope riporta l’ambito del chiamante, e la scrittura viene rifiutata per intero, mai ridotta.

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)