/api/sd/etf/history
GETParzialePARTIAL

Storico degli ETF spot

Serie giornaliera di asset detenuti, patrimonio netto o flusso netto per un asset (somma dei fondi coperti) o per un singolo fondo. Ogni punto indica quanti fondi contiene.

GET/api/sd/etf/history
Copertura parziale. Copertura parziale: diversi grandi emittenti non offrono un'informativa pubblica leggibile dalla macchina che possa essere raccolta da un server. I loro fondi sono elencati come non disponibili e i totali coprono solo i fondi restanti. Confrontare `funds_covered` / `funds_total` prima di confrontare i totali con altre fonti.

Richiesta

Parametri di query

NomeTipoObbligatorioPredefinitoValori ammessiDescrizione
assetstringObbligatorio—BTC, ETH, SOL, HYPEAsset sottostante, senza distinzione tra maiuscole e minuscole. `coin` è accettato come alias. Esempio: BTC
metricstringObbligatorio—holdings, aum, flowSerie da restituire: asset detenuti (coin), patrimonio netto (USD) o flusso netto (USD). Esempio: flow
rangestringFacoltativo30d30d, 90d, allIntervallo retrospettivo.
tickerstringFacoltativo——Ticker del fondo registrato per l'asset (per esempio `ARKB`). Predefinito: somma di tutti i fondi coperti. Un ticker non registrato restituisce 404; un fondo registrato che non può essere raccolto restituisce 200 con `series: null`.

Richiesta di esempio

curl -s "https://www.coinboss.com/api/sd/etf/history?asset=BTC&metric=flow"

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.
assetstring—Asset sottostante.
metricstring—Serie selezionata dal parametro `metric`.
rangestring—Intervallo retrospettivo applicato.
tickerstring|null—Ticker del fondo.
unitstring—Unità dei valori della serie: `coin` o `USD`.
funds_totalnumber—Fondi registrati per l'asset.
funds_in_seriesarray—Fondi che contribuiscono alla serie.
funds_in_series[]string—Fondi che contribuiscono alla serie.
first_date_by_fundobject—Prima data disponibile per fondo (la chiave è il ticker). chiavi dinamiche: ARKB,EZBC
first_date_by_fund.{*}string—Prima data disponibile per fondo (la chiave è il ticker).
pointsnumber—Punti della serie, dal più vecchio.
seriesarray—Punti giornalieri, dal più vecchio; `null` quando il fondo non può essere raccolto.
series[]object—Punti giornalieri, dal più vecchio; `null` quando il fondo non può essere raccolto.
series[].datestring—Data di riferimento dell'emittente per il punto.
series[].valuenumber—Valore della metrica selezionata, sommato sui fondi presenti in quella data.
series[].fundsnumber—Una riga per fondo registrato, compresi i fondi che non possono essere raccolti. può essere assente
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[].issuerstring—ID dell'emittente del fondo.
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.valuestring—Nota sulla formula di `value`, in testo semplice.
method.fundsstring—Nota sulla formula di `funds`, in testo semplice.
method.multi_daystring—Nota sulla formula di `multi_day`, in testo semplice.
method.history_startstring—Nota sulla formula di `history_start`, 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_atnumbermsTimestamp 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/etf/history?asset=BTC&metric=flow · Risposta reale acquisita 2026-11-13 03:58:17 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: series conteneva 21 elementi; meta.source conteneva 5 elementi; first_date_by_fund conteneva 5 elementi; coverage.unavailable conteneva 7 elementi.

  • {
    • "success": true,
    • "schema": "coinboss.sd.etf/1",
    • "now": 1794542297946,
    • "asset": "BTC",
    • "metric": "flow",
    • "range": "30d",
    • "ticker": null,
    • "unit": "USD",
    • "funds_total": 12,
    • "funds_in_series": [
      • "ARKB",
      • "BITB",
      • "BTCO",
      • "EZBC",
      • "HODL"
      ],
    • "first_date_by_fund": {
      • "ARKB": "2026-10-14",
      • "BITB": "2026-11-11"
      },
    • "points": 21,
    • "series": [
      • { … 3 },
      • { … 3 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 5 ],
      • "unavailable": [ … 2 ],
      • "stale_excluded": []
      },
    • "method": {
      • "value": "own method, per fund between two consecutive issuer as-of rows: shares_x_nav = (shares_out[t] - shares_out[t-1]) x NAV[t], dated t; aum_nav_ratio_t1 (issuer pub…",
      • "funds": "number of funds contributing to that date; the aggregate is only comparable across dates with the same contributing funds (history starts on different dates per…",
      • "multi_day": "true when a contributing flow spans more than one trading day because the issuer history has no row for the day(s) in between",
      • "history_start": "issuer-provided official history is back-filled where it exists (21Shares valuation history, Franklin price history); other issuers start on the first collectio…"
      },
    • "meta": {
      • "schema": "coinboss.sd.etf/1",
      • "source": [ … 2 ],
      • "observed_at": 1794441600000,
      • "received_at": 1794537318126,
      • "fetched_at": 1794542297946,
      • "window": "30d",
      • "quality": "PARTIAL",
      • "is_stale": false,
      • "cache_ttl_s": 300,
      • "fallback": "collector failure keeps the last issuer row with its real as_of_date; a fund whose as_of_date is more than 1 trading day behind the expected as-of is flagged is…"
      }
    }

Campioni verificati

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

ParametriHTTPLatenzaRisultato
asset=ETH&range=90d&metric=aum2005 msSuperato PARTIAL
asset=BTC&metric=holdings&ticker=ARKB2004 msSuperato FRESH
asset=BTC4001 msSuperato restituisce l'errore previsto

Verificato 2026-11-13 03:58:17 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
Tre cicli del collector al giorno (02:35, 10:35, 16:35 UTC). Gli emittenti pubblicano una volta per giornata di negoziazione statunitense, di solito la sera della data di negoziazione.
Finestra
30d / 90d / all, un punto per data di riferimento dell'emittente.
Fonti dei dati
Informative giornaliere pubblicate direttamente dagli emittenti dei fondi (asset detenuti, patrimonio netto, quote in circolazione, NAV), raccolte e archiviate da CoinBoss (sd_etf_fund_daily). Il flusso netto è calcolato da CoinBoss a partire da tali informative.
Copertura degli exchange
Sono coperti solo i fondi il cui emittente pubblica dati giornalieri leggibili dalla macchina. `funds_total` e `funds_covered` indicano quanti sono; ogni fondo non coperto è elencato in `coverage.unavailable` con il motivo. I totali sono somme sui soli fondi coperti (`totals_scope = "covered_funds_only"`), non sull'intero mercato.
Paginazione
Nessuna paginazione; `range` determina il numero di punti.
Ordinamento
Data crescente.
Unità
Amounts in USD; holdings in units of the underlying coin; NAV and market price in USD per share; `premium_pct` and `fee_pct` in percent.
Metodo
A point sums the funds that have a row on that date; `funds` is that count. Points with different `funds` are not directly comparable. Flow is bucketed by its booking date.
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:17 UTCHTTP 2005 msSchema conformeDato più recente risalente a 83m fa

L'endpoint segnala una qualità dei dati PARTIAL — Copertura parziale: diversi grandi emittenti non offrono un'informativa pubblica leggibile dalla macchina che possa essere raccolta da un server. I loro fondi sono elencati come non disponibili e i totali coprono solo i fondi restanti. Confrontare `funds_covered` / `funds_total` prima di confrontare i totali con altre fonti.

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

string — Underlying asset, case-insensitive. `coin` is accepted as an alias.

string — Series to return: holdings (coin), net assets (USD) or net flow (USD).

string · predefinito 30d — Look-back range.

string — Fund ticker registered for the asset (for example `ARKB`). Default: all covered funds summed. An unregistered ticker returns 404; a registered fund that cannot be collected returns 200 with `series: null`.

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