Matrice della qualità dei dati
Matrice exchange × famiglia di dati con FRESH / PARTIAL / STALE / BROKEN / UNAVAILABLE, timestamp della fonte e del recupero, ritardo, copertura e motivo di ogni lacuna.
/api/meta/qualityRichiesta
Parametri di query
| Nome | Tipo | Obbligatorio | Predefinito | Valori ammessi | Descrizione |
|---|---|---|---|---|---|
| exchange | string | Facoltativo | — | — | Restituisce solo questo exchange (ID in minuscolo, per esempio `binance`). |
| family | string | Facoltativo | — | — | Restituisce solo questa famiglia di dati (per esempio `oi`, `funding`, `liquidation`). |
Richiesta di esempio
curl -s "https://www.coinboss.com/api/meta/quality"Campi della risposta
La tabella dei campi è generata da risposte reali, quindi elenca esattamente ciò che l'endpoint restituisce. I percorsi usano a[] per gli elementi di un array e {*} per gli oggetti indicizzati da un nome dinamico, come una moneta o un exchange.
| Campo | Tipo | Unità | Descrizione |
|---|---|---|---|
| success | boolean | — | true quando la richiesta è riuscita. In caso di errore il corpo è `{ success: false, code, error, request_id }`. |
| schema | string | — | ID dello schema di questa risposta (`coinboss.meta.quality/1`). |
| now | number | ms | Ora del server al momento della composizione della risposta. |
| families | array | — | Famiglie di dati valutate per exchange (ticker, open interest, finanziamento, liquidazioni, book degli ordini, opzioni e altre). |
| families[] | object | — | Una famiglia: `id`, `scope`, `title`, `what`, `table`, `cadence` e `fresh_within_s`. |
| families[].id | string | — | Identificatore. |
| families[].scope | string | — | `exchange` per le famiglie valutate per exchange in `matrix`. |
| families[].title | string | — | Titolo visualizzato della famiglia. |
| families[].what | string | — | Breve descrizione dei dati coperti dalla famiglia. |
| families[].table | string | — | Nome del dataset interno in base al quale viene valutata la famiglia; solo a scopo informativo. |
| families[].cadence | string | — | Pianificazione della raccolta della famiglia, in testo semplice; null quando non è indicata. |
| families[].fresh_within_s | number | s | Finestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. |
| exchanges | array | — | Exchange. |
| exchanges[] | string | — | Exchange. |
| matrix | object | — | Matrice indicizzata per riga e colonna. chiavi dinamiche: aster,backpack,binance,bingx,bitfinex,bitget |
| matrix.{*} | object | — | Matrice indicizzata per riga e colonna. chiavi dinamiche: ticker,oi,funding,funding_settle,liquidation,ls |
| matrix.{*}.{*} | object | — | Matrice indicizzata per riga e colonna. |
| matrix.{*}.{*}.status | string | — | Stato. |
| matrix.{*}.{*}.lag_s | number|null | s | Ora attuale meno il timestamp dei dati memorizzati più recenti di quell'exchange (prima chiave) e di quella famiglia (seconda chiave); null quando la famiglia non è disponibile su quell'exchange. |
| matrix.{*}.{*}.source_at | number|null | ms | Timestamp. |
| matrix.{*}.{*}.fetched_at | number|null | ms | Momento in cui CoinBoss ha recuperato i dati dalla fonte. |
| matrix.{*}.{*}.fresh_within_s | number|null | s | Finestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. |
| matrix.{*}.{*}.coverage | object|null | — | Che cosa è incluso e che cosa manca. |
| matrix.{*}.{*}.coverage.rows | number | — | Righe del risultato. può essere assente |
| matrix.{*}.{*}.coverage.rows_fresh | number | — | Righe aggiornate entro la finestra di freschezza. può essere assente |
| matrix.{*}.{*}.coverage.rows_usable | number | — | Righe entro la finestra di utilizzabilità. può essere assente |
| matrix.{*}.{*}.coverage.rows_orphan | number | — | Righe il cui contratto non è più quotato. può essere assente |
| matrix.{*}.{*}.coverage.rows_invalid | number | — | Righe rifiutate dalla convalida. può essere assente |
| matrix.{*}.{*}.reason | string|null | — | Codice del motivo. |
| matrix.{*}.{*}.coverage.rows_no_liveness | number | count | Righe di finanziamento su contratti senza alcuna evidenza di scambi attivi (rimossi dal listino o senza volume); escluse dal conteggio della freschezza. può essere assente |
| matrix.{*}.{*}.coverage.rows_unknown_interval | number | count | Righe di finanziamento aggiornate di recente il cui intervallo di regolamento è sconosciuto, per cui non possono essere normalizzate a 8 ore. può essere assente |
| matrix.{*}.{*}.coverage.symbols | number | — | Simboli. può essere assente |
| matrix.{*}.{*}.coverage.events_1h | number | count | Ordini di liquidazione memorizzati dall'exchange nell'ultima ora; le dimensioni minime degli ordini variano da un exchange all'altro. può essere assente |
| matrix.{*}.{*}.coverage.events_24h | number | count | Ordini di liquidazione memorizzati dall'exchange nelle ultime 24 ore; le dimensioni minime degli ordini variano da un exchange all'altro. può essere assente |
| matrix.{*}.{*}.via | string | — | Percorso di raccolta. può essere assente |
| matrix.{*}.{*}.coverage.books | number | count | Numero di book degli ordini tracciati. può essere assente |
| matrix.{*}.{*}.coverage.books_fresh | number | count | Numero di book degli ordini aggiornati entro la finestra di freschezza. può essere assente |
| matrix.{*}.{*}.coverage.books_reaching_2pct | number | count | Numero di book degli ordini abbastanza profondi da coprire ±2 % attorno al prezzo mid. può essere assente |
| matrix.{*}.{*}.coverage.contracts | number | — | Righe per contratto. può essere assente |
| matrix.{*}.{*}.coverage.contracts_fresh | number | count | Numero di contratti aggiornati entro la finestra di freschezza. può essere assente |
| matrix.{*}.{*}.coverage.with_mark_and_index | number | count | Numero di contratti che hanno sia un prezzo mark sia un prezzo index. può essere assente |
| matrix.{*}.{*}.coverage.delivery_contracts | number | count | Numero di contratti a scadenza (con data). può essere assente |
| matrix.{*}.{*}.note | string | — | Nota. può essere assente |
| matrix.{*}.{*}.coverage.coins | number | — | Monete. può essere assente |
| matrix.{*}.{*}.coverage.rows_without_oi | number | count | Righe dei contratti con margine in coin, con margine in USDC o a scadenza prive di un valore di open interest in USD. può essere assente |
| matrix.{*}.{*}.coverage.with_mark_iv | number | count | Numero di contratti di opzione che hanno una volatilità implicita mark. può essere assente |
| matrix.{*}.{*}.coverage.with_greeks | number | count | Numero di contratti di opzione che hanno le greche. può essere assente |
| datasets | array | — | Controlli di qualità dei dataset che non sono per exchange (per esempio i dati giornalieri degli ETF spot e del CME), ciascuno con stato, ritardo, copertura e motivo. |
| datasets[] | object | — | Un dataset relativo all'intero mercato e non legato a un singolo exchange (opzioni, ETF spot, CME, book degli ordini, base). |
| datasets[].family | string | — | ID del dataset, per esempio `etf` o `cme`. |
| datasets[].id | string | — | Identificatore. |
| datasets[].title | string | — | Nome visualizzato del dataset. |
| datasets[].source | string | — | Provenienza del valore. |
| datasets[].endpoint | string | — | Endpoint pubblico che serve il dataset. |
| datasets[].status | string | — | Stato. |
| datasets[].lag_s | number | s | Età del punto dati più recente al momento della generazione della risposta. |
| datasets[].source_at | number | ms | Timestamp. |
| datasets[].fetched_at | number | ms | Momento in cui CoinBoss ha recuperato i dati dalla fonte. |
| datasets[].fresh_within_s | number | s | Finestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. |
| datasets[].coverage | object | — | Che cosa è incluso e che cosa manca. |
| datasets[].coverage.funds_total | number | count | Numero di fondi tracciati. può essere assente |
| datasets[].coverage.funds_covered | number | count | Numero di fondi con un'informativa utilizzabile. può essere assente |
| datasets[].coverage.funds_unavailable | number | count | Numero di fondi il cui emittente non pubblica alcuna informativa leggibile dalla macchina. può essere assente |
| datasets[].coverage.funds_failing | number | count | Numero di fondi la cui informativa non è stata leggibile nell'ultimo ciclo di raccolta. può essere assente |
| datasets[].coverage.as_of | string | — | Data dell'informativa più recente tra i fondi coperti (YYYY-MM-DD). può essere assente |
| datasets[].coverage.as_of_min | string | — | Data dell'informativa più vecchia tra i fondi coperti (YYYY-MM-DD). può essere assente |
| datasets[].reason | string|null | — | Codice del motivo. |
| datasets[].coverage.contracts | number | — | Righe per contratto. può essere assente |
| datasets[].coverage.report_date | string | — | Data del report Commitments of Traders della CFTC più recente (YYYY-MM-DD). può essere assente |
| datasets[].coverage.products | number | count | Numero di prodotti del CME coperti. può essere assente |
| datasets[].coverage.trade_date | string | — | Data di contrattazione del report giornaliero del CME più recente (YYYY-MM-DD). può essere assente |
| summary | object | — | Blocco di riepilogo. chiavi dinamiche: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE |
| summary.{*} | number | — | Blocco di riepilogo. |
| by_family | object | — | Numero di exchange in ciascuno stato, per famiglia. Le chiavi esterne sono gli ID delle famiglie. chiavi dinamiche: ticker,oi,funding,funding_settle,liquidation,ls |
| by_family.{*} | object | — | Conteggi degli stati di una famiglia, indicizzati per stato (`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`). chiavi dinamiche: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE |
| by_family.{*}.{*} | number | count | Numero di exchange con quello stato per quella famiglia. |
| alerts | array | — | Avvisi del controllo periodico della qualità dei dati aperti o risolti negli ultimi 7 giorni, prima quelli aperti; filtrati in base ai parametri della richiesta. |
| alerts[] | object | — | Un avviso: `level`, `exchange`, `family`, `code`, `detail`, orari di apertura / ultima osservazione / risoluzione, `hits` e `open`. |
| alerts[].level | string | — | Livello. |
| alerts[].exchange | string | — | ID dell'exchange, in minuscolo (per esempio `binance`). |
| alerts[].family | string | — | Famiglia di dati a cui si riferisce l'avviso. |
| alerts[].code | string | — | Codice. |
| alerts[].detail | string | — | Dettaglio. |
| alerts[].opened_at | number | ms | Timestamp. |
| alerts[].last_seen_at | number | ms | Timestamp. |
| alerts[].resolved_at | number|null | ms | Timestamp. |
| alerts[].hits | number | count | Numero di esecuzioni del controllo periodico (una ogni 5 minuti) che hanno osservato la condizione dall'apertura dell'avviso. |
| alerts[].open | boolean | — | Prezzo di apertura del periodo. |
| monitor | object | — | Stato di salute del monitoraggio stesso: ora ed età dell'ultima esecuzione del controllo periodico, `patrol_ok` ed età dell'heartbeat del collector. |
| monitor.patrol_last_run_at | number | ms | Timestamp. |
| monitor.patrol_age_s | number | s | Secondi trascorsi dall'evento. |
| monitor.patrol_ok | boolean | — | true quando il controllo periodico è stato eseguito negli ultimi 15 minuti; quando è false l'elenco `alerts` può non essere aggiornato, mentre la matrice resta in tempo reale. |
| monitor.collector_heartbeat_age_s | number | s | Secondi trascorsi dall'evento. |
| errors | null | — | Mappa dall'ID della famiglia a un codice di errore per le famiglie il cui controllo di qualità stesso è fallito; null quando tutti i controlli sono stati eseguiti. |
| legend | object | — | Definizione in testo semplice di ogni stato di cella. chiavi dinamiche: FRESH,PARTIAL,STALE,BROKEN,UNAVAILABLE |
| legend.{*} | string | — | Definizione dello stato indicato dalla chiave (`FRESH`, `PARTIAL`, `STALE`, `BROKEN`, `UNAVAILABLE`). |
| method | object | — | Note su formula / metodo. |
| method.status | string | — | Stato. |
| method.lag_s | string | — | Enunciato in testo semplice di come viene calcolato `lag_s`. |
| method.source_at | string | — | Stringa di data e ora. |
| method.fetched_at | string | — | Stringa di data e ora. |
| meta | object | — | Envelope di questa risposta: ID dello schema, sistema di origine, timestamp, durata della cache e freschezza. |
| meta.schema | string | — | ID dello schema di questa risposta; stesso valore del campo di primo livello `schema`. |
| meta.source | array | — | Provenienza del valore. |
| meta.source[] | object | — | Provenienza del valore. |
| meta.source[].system | string | — | Sistema che ha prodotto i dati; sempre `coinboss` per gli endpoint del centro sviluppatori. |
| meta.source[].component | string | — | Componente alla base dei dati: la sonda degli endpoint e il controllo periodico della qualità dei dati. |
| meta.observed_at | null | — | Timestamp. |
| meta.received_at | number | ms | Timestamp. |
| meta.fetched_at | number | ms | Momento in cui CoinBoss ha recuperato i dati dalla fonte. |
| meta.window | string | — | Finestra. |
| meta.cache_ttl_s | number | s | Durata della cache lato server di questa risposta. |
| meta.quality | string | — | Normalmente `FRESH`; `PARTIAL` quando il controllo periodico della qualità non è stato eseguito negli ultimi 15 minuti (ne risente solo l'elenco degli avvisi). |
| meta.is_stale | boolean | — | true quando la riga è più vecchia della finestra di freschezza; le righe obsolete non vengono usate nei totali. |
| meta.fallback | string | — | Nota in testo semplice su ciò che questo endpoint restituisce quando i suoi dati di ingresso sono obsoleti o mancanti. |
Generata 2026-11-11 23:01 UTC da 3 risposte reali.
Risposta di esempio
/api/meta/quality · Risposta reale acquisita 2026-11-13 03:53:46 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: alerts conteneva 11 elementi; legend conteneva 5 elementi; matrix conteneva 30 elementi; summary conteneva 5 elementi; datasets conteneva 12 elementi; families conteneva 12 elementi.
- "success"true
- "schema""coinboss.meta.quality/1"
- "now"1794542026126
- "families"
- "exchanges"
- "aster"
- "backpack"
- "binance"
- "bingx"
- "bitfinex"
- "bitget"
- "bitstamp"
- "bitunix"
- "matrix"
- "aster"
- "backpack"
- "datasets"
- "summary"
- "FRESH"161
- "PARTIAL"7
- "by_family"
- "ticker"
- "oi"
- "alerts"
- "monitor"
- "patrol_last_run_at"1794541745827
- "patrol_age_s"281
- "patrol_ok"true
- "collector_heartbeat_age_s"36
- "errors"null
- "legend"
- "FRESH""newest stored data point is inside the fresh window for this family"
- "PARTIAL""some contracts / rows are outside the fresh window or miss a required field"
- "method"
- "status""judged from data timestamps in CoinBoss storage every request (30 s in-process cache); a running collector process is not treated as evidence"
- "lag_s""now − newest stored data timestamp for the exchange / family"
- "source_at""newest stored data timestamp (exchange timestamp when the exchange provides one, otherwise collector receive time)"
- "fetched_at""last successful upstream call recorded by the collector health log; null for WebSocket feeds and collectors that do not log per-call health"
- "meta"
- "schema""coinboss.meta.quality/1"
- "source"
- "observed_at"null
- "received_at"1794542026978
- "fetched_at"1794542026126
- "window""latest"
- "cache_ttl_s"20
- "quality""FRESH"
- "is_stale"false
- "fallback""matrix is always computed from storage; when the 5-minute patrol itself stops (monitor.patrol_ok=false) only the alerts list may be outdated"
Campioni verificati
Oltre all'esempio qui sopra, la sonda chiama questo endpoint con i parametri seguenti e ogni volta ne verifica lo schema.
| Parametri | HTTP | Latenza | Risultato |
|---|---|---|---|
| exchange=binance | 200 | 1 ms | Superato FRESH |
| family=funding | 200 | 1 ms | Superato FRESH |
Verificato 2026-11-13 03:29:27 UTC
Dettagli
- Autenticazione
- Nessuna. Endpoint pubblico.
- Limite di richieste
- 1200 richieste al minuto per IP
- Cache del server
- 20s
- Micro-cache edge
- 10s
- Frequenza di aggiornamento
- Valutato su richiesta dal timestamp dei dati più recente di ogni coppia exchange × famiglia.
- Fonti dei dati
- Tabelle grezze di CoinBoss (timestamp delle righe più recenti), log di salute dei collector. Un processo in esecuzione non viene mai conteggiato come dato sano.
- Timestamp
- Millisecondi dall'epoca Unix (UTC), salvo diversa indicazione nella descrizione del campo
- Formato della risposta
- json
- Stabilità
- Stabile
- Disponibile dal
- 2026-11-11
Stato in tempo reale
Disponibilità, ultimi 30 giorni
100% di 407 verifiche superate
Errori
Le chiamate non riuscite hanno la stessa struttura su tutti gli endpoint. L'elenco completo è nella pagina degli errori. Errori e limiti di richieste →
| Codice | HTTP | Significato | Che cosa fare |
|---|---|---|---|
| INVALID_PARAM | 400 | Manca un parametro obbligatorio oppure un valore non è accettato. `param` indica il nome del parametro quando è noto. | Non riprovare senza modifiche; correggere la richiesta. |
| UNAUTHORIZED | 401 | L'header `CB-API-KEY` è stato inviato ma la chiave è sconosciuta o revocata. I dati pubblici non richiedono alcuna chiave: rimuovere l'header o usare una chiave valida. | Non riprovare senza modifiche. |
| FORBIDDEN | 403 | La route non fa parte dell'API pubblica (interna o riservata agli account). | Non riprovare. |
| NOT_FOUND | 404 | Route sconosciuta, oppure la moneta / l'exchange / il fondo richiesto non esiste. | Non riprovare; verificare il percorso e gli identificatori nel catalogo. |
| RATE_LIMITED | 429 | Più richieste del limite al minuto. `Retry-After` indica i secondi da attendere. | Attendere `Retry-After`, poi riprovare con backoff. |
| INTERNAL | 500 | Errore imprevisto del server. Il messaggio è volutamente generico; citare `request_id` quando lo si segnala. | Riprovare una volta dopo qualche secondo; se persiste, segnalarlo con l'ID della richiesta. |
| UPSTREAM_FAILED | 503 | La fonte di dati alla base di questo endpoint non ha risposto in tempo. Al suo posto non vengono restituiti numeri obsoleti o sostitutivi. | Riprovare con backoff; controllare la pagina di stato. |
| UNAVAILABLE | 501 / 503 | Il dataset è temporaneamente non pronto (riscaldamento della cache) oppure l'endpoint non ha ancora una fonte pubblica lecita. | Riprovare più tardi; il catalogo contrassegna gli endpoint non disponibili per scelta progettuale. |
| REQUEST_FAILED | 200 | Alcuni endpoint meno recenti rispondono HTTP 200 con `success: false`. Controllare sempre `success`, non solo lo stato HTTP. | Dipende dal messaggio; trattare come una richiesta non riuscita. |
Prova
/api/meta/qualityDisponibilestring — Return only this exchange (lower-case id, for example `binance`).
string — Return only this data family (for example `oi`, `funding`, `liquidation`).
https://www.coinboss.com/api/meta/qualityAltro in questa categoria
- Matrice della qualità dei dati (vista del collector) /api/sd/quality
- Catalogo dell'API /api/meta/catalog
- Registro delle modifiche e politica di versionamento /api/meta/changelog
- Documentazione di un endpoint /api/meta/endpoint
- Documento OpenAPI /api/meta/openapi
- Matrice della qualità dei dati /api/meta/quality
- Stato del servizio /api/meta/status
- Verifica se il simbolo di una moneta è noto alla piattaforma /api/coin-exists
- Mappa dal simbolo della moneta al percorso dell'icona ospitata in locale /api/coin-icons
- Riepilogo aggregato della pagina moneta /api/content/coin
- Riepilogo delle sezioni dell'intero sito /api/content/summary
- Tabella dei tassi di cambio fiat /api/currency/fx
- Mappa dall'ID dell'exchange al percorso dell'icona ospitata in locale /api/exchange-icons
- Controllo di liveness /api/health
- Statistiche della pagina di ricerca /api/research/stats