/api/sd/quality
GETDisponibile

Matrice della qualità dei dati (vista del collector)

Livello dati proprio: matrice della qualità dei dati (exchange × famiglia di dati)

GET/api/sd/quality

Richiesta

Questo endpoint non accetta parametri.

Richiesta di esempio

curl -s "https://www.coinboss.com/api/sd/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.

CampoTipoUnitàDescrizione
successboolean—true quando la richiesta è riuscita. In caso di errore il corpo è `{ success: false, code, error, request_id }`.
nownumbermsOra del server al momento della composizione della risposta.
familiesarray—Famiglie di dati controllate per ogni exchange, in ordine di visualizzazione.
families[]string—ID della famiglia: `ticker`, `oi`, `funding`, `funding_settle`, `liquidation`, `ls`, `spot` o `sd_contracts`.
exchangesarray—Exchange.
exchanges[]string—Exchange.
matrixobject—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.{*}.tickerobject—Freschezza dei ticker futures dell'exchange: `status`, conteggi delle righe, `age_s` e le finestre di freschezza / di utilizzabilità. Le chiavi della mappa sono gli ID degli exchange. può essere assente
matrix.{*}.ticker.statusstring—Stato. può essere assente
matrix.{*}.ticker.rowsnumber—Righe del risultato. può essere assente
matrix.{*}.ticker.rows_freshnumber—Righe aggiornate entro la finestra di freschezza. può essere assente
matrix.{*}.ticker.rows_usablenumber—Righe entro la finestra di utilizzabilità. può essere assente
matrix.{*}.ticker.rows_orphannumber—Righe il cui contratto non è più quotato. può essere assente
matrix.{*}.ticker.rows_invalidnumber—Righe rifiutate dalla convalida. può essere assente
matrix.{*}.ticker.age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga. può essere assente
matrix.{*}.ticker.fresh_within_snumbersFinestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. può essere assente
matrix.{*}.ticker.usable_within_snumbersI dati più vecchi di questo valore non vengono usati affatto. può essere assente
matrix.{*}.oiobject—Open interest. può essere assente
matrix.{*}.oi.statusstring—Stato. può essere assente
matrix.{*}.oi.rowsnumber—Righe del risultato. può essere assente
matrix.{*}.oi.rows_freshnumber—Righe aggiornate entro la finestra di freschezza. può essere assente
matrix.{*}.oi.rows_usablenumber—Righe entro la finestra di utilizzabilità. può essere assente
matrix.{*}.oi.rows_orphannumber—Righe il cui contratto non è più quotato. può essere assente
matrix.{*}.oi.rows_invalidnumber—Righe rifiutate dalla convalida. può essere assente
matrix.{*}.oi.age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga. può essere assente
matrix.{*}.oi.fresh_within_snumbersFinestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. può essere assente
matrix.{*}.oi.usable_within_snumbersI dati più vecchi di questo valore non vengono usati affatto. può essere assente
matrix.{*}.fundingobject—Blocco o valore del tasso di finanziamento. può essere assente
matrix.{*}.funding.statusstring—Stato. può essere assente
matrix.{*}.funding.rowsnumber—Righe del risultato. può essere assente
matrix.{*}.funding.rows_freshnumber—Righe aggiornate entro la finestra di freschezza. può essere assente
matrix.{*}.funding.rows_usablenumber—Righe entro la finestra di utilizzabilità. può essere assente
matrix.{*}.funding.rows_orphannumber—Righe il cui contratto non è più quotato. può essere assente
matrix.{*}.funding.rows_invalidnumber—Righe rifiutate dalla convalida. può essere assente
matrix.{*}.funding.age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga. può essere assente
matrix.{*}.funding.fresh_within_snumbersFinestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. può essere assente
matrix.{*}.funding.usable_within_snumbersI dati più vecchi di questo valore non vengono usati affatto. può essere assente
matrix.{*}.funding.rows_unknown_intervalnumbercountRighe di finanziamento aggiornate nelle ultime 4 ore il cui intervallo di regolamento è sconosciuto, per cui non possono essere normalizzate a 8 ore; una qualsiasi di queste righe rende la cella `partial`. può essere assente
matrix.{*}.funding.rows_no_next_timenumbermsTimestamp. può essere assente
matrix.{*}.funding.rows_no_livenessnumbercountRighe di finanziamento aggiornate di recente su contratti senza alcuna evidenza di scambi attivi (rimossi dal listino o senza volume); escluse dal conteggio della freschezza. può essere assente
matrix.{*}.funding_settleobject—Freschezza dello storico dei regolamenti del finanziamento dell'exchange: `status`, `age_s` del regolamento più recente, `symbols` e `history_from`. può essere assente
matrix.{*}.funding_settle.statusstring—Stato. può essere assente
matrix.{*}.funding_settle.age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga. può essere assente
matrix.{*}.funding_settle.symbolsnumber—Simboli. può essere assente
matrix.{*}.funding_settle.history_fromnumbermsRecord più vecchio conservato. può essere assente
matrix.{*}.funding_settle.fresh_within_snumbersFinestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. può essere assente
matrix.{*}.liquidationobject—Blocco delle liquidazioni. può essere assente
matrix.{*}.liquidation.statusstring—Stato. può essere assente
matrix.{*}.liquidation.viastring—Percorso di raccolta. può essere assente
matrix.{*}.liquidation.last_event_age_snumber|nullsSecondi trascorsi dall'evento. può essere assente
matrix.{*}.liquidation.events_1hnumbercountOrdini di liquidazione memorizzati da questo exchange nell'ultima ora; le dimensioni minime degli ordini variano da un exchange all'altro, quindi i conteggi non sono confrontabili. può essere assente
matrix.{*}.liquidation.events_24hnumbercountOrdini di liquidazione memorizzati da questo exchange nelle ultime 24 ore; le dimensioni minime degli ordini variano da un exchange all'altro, quindi i conteggi non sono confrontabili. può essere assente
matrix.{*}.liquidation.ws_heartbeat_age_snumber|nullsSecondi trascorsi dall'evento. può essere assente
matrix.{*}.liquidation.judged_bystring—Timestamp in base al quale è stato valutato lo stato. può essere assente
matrix.{*}.liquidation.idle_ok_snumbersIntervallo più lungo senza liquidazioni che è ancora considerato normale per questo exchange; un intervallo più lungo contrassegna il feed come `stale`. può essere assente
matrix.{*}.lsobject—Freschezza delle righe del rapporto long/short dell'exchange: `status`, conteggi delle righe, `age_s` e le finestre di freschezza / di utilizzabilità. può essere assente
matrix.{*}.ls.statusstring—Stato. può essere assente
matrix.{*}.ls.reasonstring—Codice del motivo. può essere assente
matrix.{*}.spotobject—Blocco o valore del mercato spot. può essere assente
matrix.{*}.spot.statusstring—Stato. può essere assente
matrix.{*}.spot.reasonstring—Codice del motivo. può essere assente
matrix.{*}.sd_contractsobject—Freschezza delle righe dei contratti con margine in coin, con margine in USDC e a scadenza dell'exchange: `status`, conteggi delle righe e `age_s`. può essere assente
matrix.{*}.sd_contracts.statusstring—Stato. può essere assente
matrix.{*}.sd_contracts.reasonstring—Codice del motivo. può essere assente
matrix.{*}.funding_settle.reasonstring—Codice del motivo. può essere assente
matrix.{*}.liquidation.reasonstring—Codice del motivo. può essere assente
matrix.{*}.liquidation.notestring—Nota. può essere assente
matrix.{*}.ls.rowsnumber—Righe del risultato. può essere assente
matrix.{*}.ls.rows_freshnumber—Righe aggiornate entro la finestra di freschezza. può essere assente
matrix.{*}.ls.rows_usablenumber—Righe entro la finestra di utilizzabilità. può essere assente
matrix.{*}.ls.rows_orphannumber—Righe il cui contratto non è più quotato. può essere assente
matrix.{*}.ls.rows_invalidnumber—Righe rifiutate dalla convalida. può essere assente
matrix.{*}.ls.age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga. può essere assente
matrix.{*}.ls.fresh_within_snumbersFinestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. può essere assente
matrix.{*}.ls.usable_within_snumbersI dati più vecchi di questo valore non vengono usati affatto. può essere assente
matrix.{*}.spot.age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga. può essere assente
matrix.{*}.spot.coinsnumber—Monete. può essere assente
matrix.{*}.spot.fresh_within_snumbersFinestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. può essere assente
matrix.{*}.spot.notestring—Nota. può essere assente
matrix.{*}.sd_contracts.rowsnumber—Righe del risultato. può essere assente
matrix.{*}.sd_contracts.rows_freshnumber—Righe aggiornate entro la finestra di freschezza. può essere assente
matrix.{*}.sd_contracts.age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga. può essere assente
matrix.{*}.sd_contracts.rows_without_oinumbercountRighe dei contratti prive di un valore di open interest in USD. può essere assente
matrix.{*}.sd_contracts.rows_oi_promotednumbercountRighe dei contratti il cui open interest è conteggiato anche nei totali di open interest dell'intero sito. può essere assente
matrix.{*}.sd_contracts.fresh_within_snumbersFinestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. può essere assente
matrix.{*}.{*}object—Matrice indicizzata per riga e colonna.
matrix.{*}.{*}.statusstring—Stato.
matrix.{*}.{*}.reasonstring—Codice del motivo. può essere assente
matrix.{*}.{*}.age_snumbersSecondi trascorsi dall'ultimo aggiornamento di questa riga. può essere assente
matrix.{*}.{*}.coinsnumber—Monete. può essere assente
matrix.{*}.{*}.fresh_within_snumbersFinestra di freschezza: i dati più recenti di questo valore sono considerati aggiornati. può essere assente
matrix.{*}.{*}.notestring—Nota. può essere assente
matrix.{*}.oi.reasonstring—Codice del motivo. può essere assente
matrix.{*}.{*}.rowsnumber—Righe del risultato. può essere assente
matrix.{*}.{*}.rows_freshnumber—Righe aggiornate entro la finestra di freschezza. può essere assente
matrix.{*}.{*}.rows_usablenumber—Righe entro la finestra di utilizzabilità. può essere assente
matrix.{*}.{*}.rows_orphannumber—Righe il cui contratto non è più quotato. può essere assente
matrix.{*}.{*}.rows_invalidnumber—Righe rifiutate dalla convalida. può essere assente
matrix.{*}.{*}.usable_within_snumbersI dati più vecchi di questo valore non vengono usati affatto. può essere assente
matrix.{*}.ticker.deadboolean—Presente solo quando `status` è `stale`: true quando nessuna riga rientra nemmeno nella finestra di utilizzabilità, per cui l'exchange è escluso dagli aggregati. può essere assente
matrix.{*}.funding.reasonstring—Codice del motivo. può essere assente
matrix.{*}.liquidation.pipeline_last_event_age_snumbersSecondi trascorsi dall'evento. può essere assente
matrix.{*}.liquidation.node_heartbeat_age_snumbersSecondi trascorsi dall'evento. può essere assente
summaryobject—Blocco di riepilogo.
summary.freshnumbercountNumero di celle exchange × famiglia con stato `fresh`.
summary.partialnumber—true quando è presente solo una parte dei dati attesi.
summary.stalenumber—Righe o flag relativi ai dati più vecchi della finestra di freschezza.
summary.invalidnumbercountNumero di celle exchange × famiglia con stato `invalid`.
summary.unavailablenumber—Elementi per i quali non sono disponibili dati, con i motivi. Mai riportati come 0.
sourcesarray—Fonti dei dati.
sources[]object—Fonti dei dati.
sources[].exchangestring—ID dell'exchange, in minuscolo (per esempio `binance`).
sources[].familystring—Famiglia di dati del job del collector a cui appartiene il record di stato di salute, per esempio `oi`, `funding`, `ticker`.
sources[].endpointstring—Etichetta della chiamata a monte tracciata: host e percorso dell'API pubblica interrogata, oppure nome di un controllo interno.
sources[].okboolean—false quando il tentativo più recente è fallito, cioè l'ultimo errore è più recente dell'ultimo successo.
sources[].last_ok_age_snumber|nullsSecondi trascorsi dall'evento.
sources[].last_err_age_snumber|nullsSecondi trascorsi dall'evento.
sources[].last_statusnumber—Stato HTTP della chiamata più recente.
sources[].last_errorstring|null—Testo dell'errore dell'ultimo fallimento, troncato a 160 caratteri; null quando non ne è registrato alcuno.
sources[].last_msnumbermsDurata della chiamata più recente; null quando non è stata misurata.
sources[].fail_streaknumbercountChiamate fallite consecutive fino a questo momento; 0 dopo un successo.
sources[].ok_countnumbercountChiamate riuscite registrate nel registro dello stato di salute.
sources[].err_countnumbercountChiamate fallite registrate nel registro dello stato di salute.
sources[].http_429numbercountChiamate fallite con risposta HTTP 429 (limite di richieste superato).
sources[].http_403numbercountChiamate fallite con risposta HTTP 403 (accesso negato).
sources[].http_5xxnumbercountChiamate fallite con risposta HTTP di stato 5xx.
sources[].timeoutsnumbercountChiamate fallite per timeout.
errorsobject—Mappa dall'ID della famiglia al messaggio di errore per le famiglie il cui controllo stesso è fallito; vuota quando tutti i controlli sono stati eseguiti.
alertsarray—Avvisi del controllo periodico della qualità dei dati aperti o risolti nelle ultime 24 ore, prima quelli aperti (al massimo 200).
alerts[]object—Un avviso: `level`, `exchange`, `family`, `code`, `detail`, orari di apertura / ultima osservazione / risoluzione, `hits` e `open`.
alerts[].levelstring—Livello.
alerts[].exchangestring—ID dell'exchange, in minuscolo (per esempio `binance`).
alerts[].familystring—Famiglia di dati a cui si riferisce l'avviso.
alerts[].codestring—Codice.
alerts[].detailstring—Dettaglio.
alerts[].opened_atnumbermsTimestamp.
alerts[].last_seen_atnumbermsTimestamp.
alerts[].resolved_atnumber|nullmsTimestamp.
alerts[].hitsnumbercountNumero di esecuzioni del controllo periodico (una ogni 5 minuti) che hanno osservato la condizione dall'apertura dell'avviso.
alerts[].openboolean—Prezzo di apertura del periodo.
monitorobject—Stato di salute del monitoraggio stesso: età dell'ultima esecuzione del controllo periodico, età dell'heartbeat del collector e `patrol_ok`.
monitor.alert_job_age_snumbersSecondi trascorsi dall'evento.
monitor.collector_heartbeat_age_snumbersSecondi trascorsi dall'evento.
monitor.patrol_okboolean—true quando il controllo periodico è stato eseguito negli ultimi 15 minuti; quando è false l'elenco `alerts` può non essere aggiornato.
legendobject—Definizione in testo semplice di ogni stato di cella.
legend.freshstring—Definizione dello stato `fresh`.
legend.partialstring—true quando è presente solo una parte dei dati attesi.
legend.stalestring—Righe o flag relativi ai dati più vecchi della finestra di freschezza.
legend.invalidstring—Definizione dello stato `invalid`.
legend.unavailablestring—Elementi per i quali non sono disponibili dati, con i motivi. Mai riportati come 0.

Generata 2026-11-11 23:01 UTC da 1 risposte reali.

Risposta di esempio

/api/sd/quality · Risposta reale acquisita 2026-11-13 03:53:45 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: alerts conteneva 3 elementi; matrix conteneva 29 elementi; sources conteneva 262 elementi; exchanges conteneva 29 elementi.

  • {
    • "success": true,
    • "now": 1794542017525,
    • "families": [
      • "ticker",
      • "oi",
      • "funding",
      • "funding_settle",
      • "liquidation",
      • "ls",
      • "spot",
      • "sd_contracts"
      ],
    • "exchanges": [
      • "aster",
      • "backpack",
      • "binance",
      • "bingx",
      • "bitfinex",
      • "bitget",
      • "bitstamp",
      • "bitunix"
      ],
    • "matrix": {
      • "aster": { … 8 },
      • "backpack": { … 8 }
      },
    • "summary": {
      • "fresh": 123,
      • "partial": 7,
      • "stale": 1,
      • "invalid": 0,
      • "unavailable": 101
      },
    • "sources": [
      • { … 16 },
      • { … 16 }
      ],
    • "errors": {},
    • "alerts": [
      • { … 10 },
      • { … 10 }
      ],
    • "monitor": {
      • "alert_job_age_s": 280,
      • "collector_heartbeat_age_s": 35,
      • "patrol_ok": true
      },
    • "legend": {
      • "fresh": "data timestamps within the fresh window",
      • "partial": "some rows outside the fresh window or missing a required field",
      • "stale": "no row within the fresh window (dead=true: also outside the usable window, excluded from aggregates)",
      • "invalid": "more than half of usable rows fail sanity checks",
      • "unavailable": "no public source or not collected; shown as —, never 0"
      }
    }

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
matrice calcolata su richiesta (memoizzazione in-process di 20 s); job degli avvisi ogni 5 min
Finestra
ultimo stato; avvisi aperti o risolti nelle ultime 24 h
Fonti dei dati
Matrice di freschezza dei dati (exchange x famiglia di dati) calcolata internamente dai timestamp delle tabelle raccolte da CoinBoss.
Copertura degli exchange
tutti gli exchange presenti in una qualsiasi famiglia raccolta; le fonti mancanti sono riportate come non disponibili con il motivo
Paginazione
avvisi limitati a 200
Unità
status per cell: fresh | partial | stale | invalid | unavailable; ages in seconds
Metodo
fresh = >= 90% of live rows inside the family's freshness window (tickers 5 min, OI 15 min / cme 36 h, funding 15 min, long/short 90 min); liquidation feeds judged by WebSocket heartbeat or time since last event; funding settlements fresh within 9 h; spot snapshots within 30 min
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

DisponibileVerificato 2026-11-13 03:53:45 UTCHTTP 2004 msSchema conformeDato più recente risalente a 5m fa

Disponibilità, ultimi 30 giorni

100% di 407 verifiche superate

Deriva dello schema rilevata dall'ultima verifica della sonda
  • Restituito ma non documentato: matrix.{*}.{*}.rows_unknown_interval, matrix.{*}.{*}.rows_no_next_time, matrix.{*}.{*}.rows_no_liveness, matrix.{*}.{*}.symbols, matrix.{*}.{*}.history_from, matrix.{*}.{*}.via, matrix.{*}.{*}.last_event_age_s, matrix.{*}.{*}.events_1h, matrix.{*}.{*}.events_24h, matrix.{*}.{*}.ws_heartbeat_age_s, matrix.{*}.{*}.judged_by, matrix.{*}.{*}.idle_ok_s

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 →

CodiceHTTPSignificatoChe cosa fare
INVALID_PARAM400Manca un parametro obbligatorio oppure un valore non è accettato. `param` indica il nome del parametro quando è noto.Non riprovare senza modifiche; correggere la richiesta.
UNAUTHORIZED401L'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.
FORBIDDEN403La route non fa parte dell'API pubblica (interna o riservata agli account).Non riprovare.
NOT_FOUND404Route sconosciuta, oppure la moneta / l'exchange / il fondo richiesto non esiste.Non riprovare; verificare il percorso e gli identificatori nel catalogo.
RATE_LIMITED429Più richieste del limite al minuto. `Retry-After` indica i secondi da attendere.Attendere `Retry-After`, poi riprovare con backoff.
INTERNAL500Errore 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_FAILED503La 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.
UNAVAILABLE501 / 503Il 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_FAILED200Alcuni 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

GET/api/sd/qualityDisponibile
Parametri

Nessun parametro.

URL della richiestahttps://www.coinboss.com/api/sd/quality
Scegliere un endpoint e premere «Invia richiesta». La risposta, gli header e i tempi compariranno qui.