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.
/api/sd/liquidity/historyRichiesta
Parametri di query
| Nome | Tipo | Obbligatorio | Predefinito | Valori ammessi | Descrizione |
|---|---|---|---|---|---|
| coin | string | Obbligatorio | — | — | Simbolo della moneta, senza distinzione tra maiuscole e minuscole (per esempio `BTC`). I valori mancanti o malformati restituiscono 400. Esempio: BTC |
| market | string | Facoltativo | perp | perp, spot | Tipo di mercato. I book dei perpetui e quelli spot non vengono mai sommati. |
| band | string | Facoltativo | 1 | 0.5, 1, 2 | Distanza dal prezzo mid in percentuale. |
| range | string | Facoltativo | 24h | 24h, 7d, 30d | Intervallo retrospettivo: 24h (punti ogni 30 minuti), 7d (punti ogni 2 ore) o 30d (punti ogni 6 ore). |
| exchange | string | Facoltativo | — | — | 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.
| 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. Cambia solo quando un campo esistente cambia significato o tipo. |
| now | number | ms | Ora del server al momento della composizione della risposta. |
| coin | string | — | Simbolo della moneta (in maiuscolo). |
| market | string | — | `perp` o `spot`. |
| band_pct | number | % | Fascia selezionata: distanza dal prezzo mid. |
| range | string | — | Intervallo retrospettivo applicato. |
| exchange | string|null | — | ID dell'exchange (in minuscolo). |
| interval_s | number | s | Distanza tra i punti. |
| points | array | — | Punti della serie, dal più vecchio. |
| points[] | object | — | Punti della serie, dal più vecchio. |
| points[].t | number | ms | Inizio del bucket temporale. |
| points[].bid_depth_usd | number | USD | Nozionale degli ordini bid in attesa tra il prezzo mid e il bordo inferiore della fascia. Un limite inferiore quando `complete` è false. |
| points[].ask_depth_usd | number | USD | Nozionale degli ordini ask in attesa tra il prezzo mid e il bordo superiore della fascia. Un limite inferiore quando `complete` è false. |
| points[].n_included | number | — | Righe incluse nella somma della profondità: aggiornate e complete per la fascia. Va letto insieme al valore di profondità. |
| points[].n_rows | number | — | Righe trovate, comprese quelle obsolete. |
| points[].mid | number | USD | (miglior bid + miglior ask) ÷ 2, prezzo di una moneta. |
| points[].uses_aggregated_buckets | boolean | — | True quando una riga inclusa ha usato bucket aggregati per prezzo, il che rende la somma un limite inferiore. |
| points_expected | number | — | Numero di punti che l'intervallo contiene quando è completo. |
| first_t | number | ms | Ora del primo punto restituito. |
| last_t | number | ms | Ora dell'ultimo punto restituito. |
| exchange_points | object | — | 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). |
| coverage | object | — | Che cosa è incluso e che cosa non è incluso nei numeri. Confrontare questo dato prima di confrontare i totali con un'altra fonte. |
| coverage.included_exchanges | array | — | Fonti i cui dati aggiornati sono inclusi. |
| coverage.included_exchanges[] | string | — | Fonti i cui dati aggiornati sono inclusi. |
| coverage.unavailable | array | — | 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_excluded | array | — | Righe escluse perché il loro ultimo aggiornamento è fuori dalla finestra di freschezza. vuoto nei campioni usati per generare questa tabella |
| method | object | — | Enunciato in testo semplice delle formule usate per questa risposta, una voce per campo. |
| method.bid_depth_usd | string | — | Nota sulla formula di `bid_depth_usd`, in testo semplice. |
| method.ask_depth_usd | string | — | Nota sulla formula di `ask_depth_usd`, in testo semplice. |
| method.complete | string | — | Nota sulla formula di `complete`, in testo semplice. |
| method.history | string | — | Nota sulla formula di `history`, in testo semplice. |
| method.exchange_points | string | — | Nota sulla formula di `exchange_points`, in testo semplice. |
| meta | object | — | Provenienza e freschezza di questa risposta. |
| meta.schema | string | — | ID dello schema di questa risposta. Cambia solo quando un campo esistente cambia significato o tipo. |
| meta.source | array | — | 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[].exchange | string | — | ID dell'exchange (in minuscolo). |
| meta.source[].market | string | — | `perp` o `spot`. |
| meta.source[].endpoint | string | — | Endpoint pubblico della fonte letto dal collector (mostrato a scopo di provenienza; i client non lo chiamano mai). |
| meta.observed_at | null | — | Timestamp indicato dalla fonte per i dati. |
| meta.received_at | number | ms | Ora in cui il collector di CoinBoss ha ricevuto i dati. |
| meta.fetched_at | number | ms | Ora in cui questa risposta è stata composta. |
| meta.window | string | — | Finestra temporale coperta dai numeri. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN o UNAVAILABLE, valutato dai timestamp dei dati e dalla copertura. |
| meta.is_stale | boolean | — | True quando i dati sono più vecchi della loro finestra di freschezza. |
| meta.cache_ttl_s | number | s | Durata in cache di questa risposta. |
| meta.fallback | string | — | Che cosa restituisce l'endpoint quando il collector o una fonte non funziona. |
| meta.collector_heartbeat_age_s | number | s | Secondi 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"
- "points_expected"48
- "first_t"1794457800000
- "last_t"1794542400000
- "exchange_points"
- "deribit"96
- "aster"48
- "coverage"
- "included_exchanges"
- "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"
- "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.
| Parametri | HTTP | Latenza | Risultato |
|---|---|---|---|
| band=2&coin=ETH&market=spot | 200 | 6 ms | Superato FRESH |
| coin=SOL&exchange=gate | 200 | 2 ms | Superato FRESH |
| band=3&coin=BTC | 400 | 1 ms | Superato 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
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 →
| 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/sd/liquidity/historyParzialestring — 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.
https://www.coinboss.com/api/sd/liquidity/history?coin=BTCAltro in questa categoria
- Profondità del book degli ordini e slippage /api/sd/liquidity
- Storico della profondità del book degli ordini /api/sd/liquidity/history
- Monete classificate per profondità del book degli ordini /api/sd/liquidity/rank
- Monitor dei grandi ordini in attesa /api/indicators/large-orderbook