/api/sd/basis/history
GETParzialeFRESH

Storico della base (orario)

Serie oraria della base per exchange e come aggregato tra exchange (mediana, media, ponderata per OI) per una moneta.

GET/api/sd/basis/history
Copertura parziale. La raccolta è iniziata il 2026-11-11. La risposta riporta `history.available_from`, `n_hours` rispetto a `expected_hours` e `complete`; le ore senza dati sono assenti, non interpolate.

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
kindstringFacoltativoperpperp, spot_perp`perp`: prezzo mark rispetto al prezzo dell'indice dello stesso exchange. `spot_perp`: prezzo del perpetuo rispetto al prezzo spot dello stesso exchange.
rangestringFacoltativo24h24h, 7d, 30dIntervallo retrospettivo, un punto all'ora.
exchangestringFacoltativo——Un ID di exchange. Predefinito: tutti gli exchange. Un ID sconosciuto restituisce 400.

Richiesta di esempio

curl -s "https://www.coinboss.com/api/sd/basis/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).
kindstring—`perp` o `spot_perp`.
rangestring—Intervallo retrospettivo applicato.
intervalstring—Distanza tra i punti della serie.
exchangestring|null—ID dell'exchange (in minuscolo).
aggregatearray—Aggregato tra exchange della sezione.
aggregate[]object—Aggregato tra exchange della sezione.
aggregate[].tnumbermsInizio del bucket temporale.
aggregate[].median_pctnumber%Mediana della base su un contratto principale per exchange.
aggregate[].mean_pctnumber%Media semplice sullo stesso insieme della mediana.
aggregate[].oi_weighted_pctnumber%Base ponderata per open interest; le righe senza un peso OI sono escluse.
aggregate[].n_exchangesnumber—Exchange inclusi nell'aggregato.
seriesarray—Una serie per exchange.
series[]object—Una serie per exchange.
series[].exchangestring—ID dell'exchange (in minuscolo).
series[].symbolstring—Simbolo del contratto nella forma di archiviazione di CoinBoss.
series[].primaryboolean—True per il contratto che rappresenta il proprio exchange nella mediana e nella media.
series[].in_aggregateboolean—True quando la riga ha superato le regole di inclusione.
series[].pointsarray—Coppie `[hour start in ms, basis in %]`, dalla più vecchia.
series[].points[]array—Coppie `[hour start in ms, basis in %]`, dalla più vecchia.
series[].points[][]number—Coppie `[hour start in ms, basis in %]`, dalla più vecchia.
historyobject—Quanta parte dell'intervallo richiesto è disponibile.
history.requested_fromnumbermsInizio dell'intervallo richiesto.
history.available_fromnumbermsPrima ora archiviata.
history.available_tonumbermsUltima ora archiviata.
history.n_hoursnumber—Ore disponibili nell'intervallo.
history.expected_hoursnumber—Ore che l'intervallo contiene quando è completo.
history.completeboolean—True quando ogni ora dell'intervallo richiesto è archiviata.
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.
coverage.unavailable[]object—Fonti che non è stato possibile includere, ciascuna con il motivo. Non vengono mai conteggiate come 0.
coverage.unavailable[].exchangestring—ID dell'exchange (in minuscolo).
coverage.unavailable[].reasonstring—Codice del motivo leggibile dalla macchina.
coverage.unavailable[].detailstring—Spiegazione del motivo in linguaggio naturale.
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.series.pointsstring—Nota sulla formula di `series.points`, in testo semplice.
method.aggregate.median_pctstring—Nota sulla formula di `aggregate.median_pct`, in testo semplice.
method.aggregate.oi_weighted_pctstring—Nota sulla formula di `aggregate.oi_weighted_pct`, in testo semplice.
method.intervalstring—Nota sulla formula di `interval`, 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[].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.

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

Risposta di esempio

/api/sd/basis/history?coin=BTC · Risposta reale acquisita 2026-11-13 03:58:08 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: series conteneva 20 elementi; aggregate conteneva 25 elementi; meta.source conteneva 20 elementi; series[].points conteneva 25 elementi; coverage.included_exchanges conteneva 20 elementi.

  • {
    • "success": true,
    • "schema": "coinboss.sd.basis/1",
    • "now": 1794542288014,
    • "coin": "BTC",
    • "kind": "perp",
    • "range": "24h",
    • "interval": "1h",
    • "exchange": null,
    • "aggregate": [
      • { … 5 },
      • { … 5 }
      ],
    • "series": [
      • { … 5 },
      • { … 5 }
      ],
    • "history": {
      • "requested_from": 1794452400000,
      • "available_from": 1794452400000,
      • "available_to": 1794538800000,
      • "n_hours": 25,
      • "expected_hours": 24,
      • "complete": true
      },
    • "coverage": {
      • "included_exchanges": [ … 8 ],
      • "unavailable": [ … 2 ],
      • "stale_excluded": []
      },
    • "method": {
      • "series.points": "[hour_ts, (mark_price - index_price) / index_price * 100] from the first collector round after each full hour; hours where the two timestamps were more than 60 …",
      • "aggregate.median_pct": "median over one primary contract per exchange in that hour; excluded: |value| > 10, contracts with no trade in 24 h, exchanges whose index is not a comparable i…",
      • "aggregate.oi_weighted_pct": "sum(value * oi_usd) / sum(oi_usd) over all included contracts that have an OI snapshot for the same hour (oi_history / sd_contract_hourly, single-sided); null w…",
      • "interval": "fixed 1 h buckets, no interpolation; missing hours are simply absent"
      },
    • "meta": {
      • "schema": "coinboss.sd.basis/1",
      • "source": [ … 2 ],
      • "observed_at": null,
      • "received_at": 1794538827406,
      • "fetched_at": 1794542288014,
      • "window": "24h",
      • "quality": "FRESH",
      • "is_stale": false,
      • "cache_ttl_s": 300,
      • "fallback": "history is served as stored; hours without a snapshot are absent, never interpolated"
      }
    }

Campioni verificati

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

ParametriHTTPLatenzaRisultato
coin=ETH&kind=spot_perp20041 msSuperato FRESH
coin=BTC&exchange=binance20032 msSuperato FRESH
coin=BTC&range=1y4001 msSuperato restituisce l'errore previsto

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

Dettagli

Autenticazione
Nessuna. Endpoint pubblico.
Limite di richieste
1200 richieste al minuto per IP
Cache del server
5m
Micro-cache edge
10s
Frequenza di aggiornamento
Ciclo del collector ogni 60 secondi; una riga è aggiornata per 180 secondi. Le istantanee orarie alimentano lo storico.
Finestra
24h / 7d / 30d, bucket orari.
Fonti dei dati
Prezzo mark, prezzo dell'indice e ultimo prezzo pubblicati da 21 exchange di derivati, più il prezzo spot dello stesso exchange, raccolti e archiviati da CoinBoss (sd_px_latest, sd_px_hourly).
Copertura degli exchange
21 exchange. Gli exchange che non pubblicano un prezzo dell'indice o un prezzo mark sono elencati in `coverage.unavailable`; le righe le cui due gambe di prezzo distano più di 60 secondi restituiscono `null`. Le righe escluse dall'aggregato sono elencate in `coverage.excluded_from_aggregate` con il motivo.
Paginazione
Nessuna paginazione; `range` determina il numero di punti.
Ordinamento
Tempo crescente.
Unità
All basis values in percent. Prices in the quote currency of the contract (USDT / USDC / USD). `oi_usd` single-sided.
Metodo
Each point is the snapshot taken in the first ten minutes of the hour. The OI weight of a historical hour is the open interest recorded in that hour; without it `oi_weighted_pct` is `null`.
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 03:58:08 UTCHTTP 20045 msSchema conformeDato più recente risalente a 58m fa

La raccolta è iniziata il 2026-11-11. La risposta riporta `history.available_from`, `n_hours` rispetto a `expected_hours` e `complete`; le ore senza dati sono assenti, non interpolate.

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 →

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

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

string · predefinito perp — `perp`: mark price against the index price of the same exchange. `spot_perp`: perpetual price against the spot price of the same exchange.

string · predefinito 24h — Look-back range, one point per hour.

string — One exchange id. Default: all exchanges. An unknown id returns 400.

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