/api/sd/liquidity/history
GETParzialeFRESH

Storico della profondità del book degli ordini

Serie temporale della profondità aggregata in acquisto (bid) e in vendita (ask) entro una fascia per una moneta, per tutti gli exchange coperti o per un solo exchange. Ogni punto indica quanti contratti contiene.

GET/api/sd/liquidity/history
Copertura parziale. La raccolta è iniziata il 2026-11-11, quindi gli intervalli più lunghi vengono riempiti progressivamente. I bucket mancanti sono assenti, non interpolati; una variazione di `n_included` tra due punti indica che è cambiato l'insieme dei contratti che contribuiscono.

Richiesta

Parametri di query

NomeTipoObbligatorioPredefinitoValori ammessiDescrizione
coinstringObbligatorio——Simbolo della moneta, senza distinzione tra maiuscole e minuscole (per esempio `BTC`). I valori mancanti o malformati restituiscono 400. Esempio: BTC
marketstringFacoltativoperpperp, spotTipo di mercato. I book dei perpetui e quelli spot non vengono mai sommati.
bandstringFacoltativo10.5, 1, 2Distanza dal prezzo mid in percentuale.
rangestringFacoltativo24h24h, 7d, 30dIntervallo retrospettivo: 24h (punti ogni 30 minuti), 7d (punti ogni 2 ore) o 30d (punti ogni 6 ore).
exchangestringFacoltativo——Un ID di exchange coperto per questo mercato (per esempio `gate`). Predefinito: tutti gli exchange. Un exchange non coperto restituisce 400.

Richiesta di esempio

curl -s "https://www.coinboss.com/api/sd/liquidity/history?coin=BTC"

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 }`.
schemastring—ID dello schema di questa risposta. Cambia solo quando un campo esistente cambia significato o tipo.
nownumbermsOra del server al momento della composizione della risposta.
coinstring—Simbolo della moneta (in maiuscolo).
marketstring—`perp` o `spot`.
band_pctnumber%Fascia selezionata: distanza dal prezzo mid.
rangestring—Intervallo retrospettivo applicato.
exchangestring|null—ID dell'exchange (in minuscolo).
interval_snumbersDistanza tra i punti.
pointsarray—Punti della serie, dal più vecchio.
points[]object—Punti della serie, dal più vecchio.
points[].tnumbermsInizio del bucket temporale.
points[].bid_depth_usdnumberUSDNozionale degli ordini bid in attesa tra il prezzo mid e il bordo inferiore della fascia. Un limite inferiore quando `complete` è false.
points[].ask_depth_usdnumberUSDNozionale degli ordini ask in attesa tra il prezzo mid e il bordo superiore della fascia. Un limite inferiore quando `complete` è false.
points[].n_includednumber—Righe incluse nella somma della profondità: aggiornate e complete per la fascia. Va letto insieme al valore di profondità.
points[].n_rowsnumber—Righe trovate, comprese quelle obsolete.
points[].midnumberUSD(miglior bid + miglior ask) ÷ 2, prezzo di una moneta.
points[].uses_aggregated_bucketsboolean—True quando una riga inclusa ha usato bucket aggregati per prezzo, il che rende la somma un limite inferiore.
points_expectednumber—Numero di punti che l'intervallo contiene quando è completo.
first_tnumbermsOra del primo punto restituito.
last_tnumbermsOra dell'ultimo punto restituito.
exchange_pointsobject—Numero di punti in cui compare ciascun exchange (la chiave è l'ID dell'exchange). chiavi dinamiche: deribit,aster,backpack,bitfinex,bitget,bitunix
exchange_points.{*}number—Numero di punti in cui compare ciascun exchange (la chiave è l'ID dell'exchange).
coverageobject—Che cosa è incluso e che cosa non è incluso nei numeri. Confrontare questo dato prima di confrontare i totali con un'altra fonte.
coverage.included_exchangesarray—Fonti i cui dati aggiornati sono inclusi.
coverage.included_exchanges[]string—Fonti i cui dati aggiornati sono inclusi.
coverage.unavailablearray—Fonti che non è stato possibile includere, ciascuna con il motivo. Non vengono mai conteggiate come 0. vuoto nei campioni usati per generare questa tabella
coverage.stale_excludedarray—Righe escluse perché il loro ultimo aggiornamento è fuori dalla finestra di freschezza. vuoto nei campioni usati per generare questa tabella
methodobject—Enunciato in testo semplice delle formule usate per questa risposta, una voce per campo.
method.bid_depth_usdstring—Nota sulla formula di `bid_depth_usd`, in testo semplice.
method.ask_depth_usdstring—Nota sulla formula di `ask_depth_usd`, in testo semplice.
method.completestring—Nota sulla formula di `complete`, in testo semplice.
method.historystring—Nota sulla formula di `history`, in testo semplice.
method.exchange_pointsstring—Nota sulla formula di `exchange_points`, in testo semplice.
metaobject—Provenienza e freschezza di questa risposta.
meta.schemastring—ID dello schema di questa risposta. Cambia solo quando un campo esistente cambia significato o tipo.
meta.sourcearray—Endpoint pubblici a monte da cui sono stati raccolti i dati.
meta.source[]object—Endpoint pubblici a monte da cui sono stati raccolti i dati.
meta.source[].exchangestring—ID dell'exchange (in minuscolo).
meta.source[].marketstring—`perp` o `spot`.
meta.source[].endpointstring—Endpoint pubblico della fonte letto dal collector (mostrato a scopo di provenienza; i client non lo chiamano mai).
meta.observed_atnull—Timestamp indicato dalla fonte per i dati.
meta.received_atnumbermsOra in cui il collector di CoinBoss ha ricevuto i dati.
meta.fetched_atnumbermsOra in cui questa risposta è stata composta.
meta.windowstring—Finestra temporale coperta dai numeri.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN o UNAVAILABLE, valutato dai timestamp dei dati e dalla copertura.
meta.is_staleboolean—True quando i dati sono più vecchi della loro finestra di freschezza.
meta.cache_ttl_snumbersDurata in cache di questa risposta.
meta.fallbackstring—Che cosa restituisce l'endpoint quando il collector o una fonte non funziona.
meta.collector_heartbeat_age_snumbersSecondi trascorsi dall'ultima volta in cui il collector ha segnalato di essere in esecuzione.

Generata 2026-11-11 23:00 UTC da 3 risposte reali.

Risposta di esempio

/api/sd/liquidity/history?coin=BTC · Risposta reale acquisita 2026-11-13 04:02:45 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: points conteneva 48 elementi; meta.source conteneva 19 elementi; exchange_points conteneva 19 elementi; coverage.included_exchanges conteneva 19 elementi.

  • {
    • "success": true,
    • "schema": "coinboss.sd.liquidity/1",
    • "now": 1794542565889,
    • "coin": "BTC",
    • "market": "perp",
    • "band_pct": 1,
    • "range": "24h",
    • "exchange": null,
    • "interval_s": 1800,
    • "points": [
      • { … 7 },
      • { … 7 }
      ],
    • "points_expected": 48,
    • "first_t": 1794457800000,
    • "last_t": 1794542400000,
    • "exchange_points": {
      • "deribit": 96,
      • "aster": 48
      },
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "unavailable": [],
      • "stale_excluded": []
      },
    • "method": {
      • "bid_depth_usd": "sum of resting bid notional with price >= mid * (1 - band%), in USD; notional = price * size * contract_value (inverse contracts: size * contract_value); USDT /…",
      • "ask_depth_usd": "sum of resting ask notional with price <= mid * (1 + band%), in USD; same notional rule as bid_depth_usd",
      • "complete": "true when BOTH sides of the snapshot reach the band edge (reach_pct >= band) or the whole side of the book was returned; when false the depth values are lower b…",
      • "history": "sd_book_hist keeps the first snapshot of every 15-minute bucket per contract; each returned point takes, per contract, the first stored snapshot inside the poin…",
      • "exchange_points": "number of returned points in which each exchange had a row that was complete for the band; a changing venue set moves the aggregate, so compare n_included acros…"
      },
    • "meta": {
      • "schema": "coinboss.sd.liquidity/1",
      • "source": [ … 2 ],
      • "observed_at": null,
      • "received_at": 1794542400000,
      • "fetched_at": 1794542565889,
      • "window": "24h",
      • "quality": "FRESH",
      • "is_stale": false,
      • "cache_ttl_s": 120,
      • "fallback": "history is append-only (first snapshot of each 15-minute bucket per contract, 30-day retention); buckets the collector missed are simply absent, never interpola…",
      • "collector_heartbeat_age_s": 3
      }
    }

Campioni verificati

Oltre all'esempio qui sopra, la sonda chiama questo endpoint con i parametri seguenti e ogni volta ne verifica lo schema.

ParametriHTTPLatenzaRisultato
band=2&coin=ETH&market=spot2006 msSuperato FRESH
coin=SOL&exchange=gate2002 msSuperato FRESH
band=3&coin=BTC4001 msSuperato restituisce l'errore previsto

Verificato 2026-11-13 03:58:06 UTC

Dettagli

Autenticazione
Nessuna. Endpoint pubblico.
Limite di richieste
1200 richieste al minuto per IP
Cache del server
2m
Micro-cache edge
10s
Frequenza di aggiornamento
Viene archiviata un'istantanea ogni 15 minuti per contratto; ogni punto usa la prima istantanea del proprio bucket (un valore puntuale, non una media).
Finestra
24h / 7d / 30d.
Fonti dei dati
Istantanee REST pubbliche del book degli ordini di 24 exchange (mercati perpetui e spot), raccolte e archiviate da CoinBoss (sd_book_latest, sd_book_hist). Profondità e slippage sono calcolati da CoinBoss a partire dai livelli di prezzo grezzi.
Copertura degli exchange
24 exchange, 38 combinazioni exchange × mercato. Quando un'istantanea pubblica non raggiunge ±0.5 / 1 / 2 % dal prezzo mid (limite di livelli dell'exchange), quella fascia è contrassegnata con `complete: false`, il suo valore è un limite inferiore ed è esclusa dall'aggregato; `n_included` / `n_fresh` indicano il denominatore e `excluded_incomplete` elenca ciò che è stato escluso.
Paginazione
Nessuna paginazione; `range` determina il numero di punti (48 / 84 / 120).
Ordinamento
Tempo crescente.
Unità
Depth in USD notional, bid and ask side reported separately and never added. Spread and slippage in basis points (1 bp = 0.01 %). USDT / USDC / USD quotes are counted 1:1 as USD.
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

ParzialeVerificato 2026-11-13 04:02:45 UTCHTTP 20012 msSchema conformeDato più recente risalente a 3m fa

La raccolta è iniziata il 2026-11-11, quindi gli intervalli più lunghi vengono riempiti progressivamente. I bucket mancanti sono assenti, non interpolati; una variazione di `n_included` tra due punti indica che è cambiato l'insieme dei contratti che contribuiscono.

Disponibilità, ultimi 30 giorni

100% di 408 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 →

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/liquidity/historyParziale
Parametri

string — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.

string · predefinito perp — Market type. Perpetual and spot books are never added together.

string · predefinito 1 — Distance from mid price in percent.

string · predefinito 24h — Look-back range: 24h (30-minute points), 7d (2-hour points) or 30d (6-hour points).

string — One exchange id covered for this market (for example `gate`). Default: all exchanges. An exchange that is not covered returns 400.

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