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.
/api/sd/etf/historyRichiesta
Parametri di query
| Nome | Tipo | Obbligatorio | Predefinito | Valori ammessi | Descrizione |
|---|---|---|---|---|---|
| asset | string | Obbligatorio | — | BTC, ETH, SOL, HYPE | Asset sottostante, senza distinzione tra maiuscole e minuscole. `coin` è accettato come alias. Esempio: BTC |
| metric | string | Obbligatorio | — | holdings, aum, flow | Serie da restituire: asset detenuti (coin), patrimonio netto (USD) o flusso netto (USD). Esempio: flow |
| range | string | Facoltativo | 30d | 30d, 90d, all | Intervallo retrospettivo. |
| ticker | string | Facoltativo | — | — | 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.
| 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. |
| asset | string | — | Asset sottostante. |
| metric | string | — | Serie selezionata dal parametro `metric`. |
| range | string | — | Intervallo retrospettivo applicato. |
| ticker | string|null | — | Ticker del fondo. |
| unit | string | — | Unità dei valori della serie: `coin` o `USD`. |
| funds_total | number | — | Fondi registrati per l'asset. |
| funds_in_series | array | — | Fondi che contribuiscono alla serie. |
| funds_in_series[] | string | — | Fondi che contribuiscono alla serie. |
| first_date_by_fund | object | — | 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). |
| points | number | — | Punti della serie, dal più vecchio. |
| series | array | — | 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[].date | string | — | Data di riferimento dell'emittente per il punto. |
| series[].value | number | — | Valore della metrica selezionata, sommato sui fondi presenti in quella data. |
| series[].funds | number | — | Una riga per fondo registrato, compresi i fondi che non possono essere raccolti. può essere assente |
| 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. |
| coverage.unavailable[] | object | — | Fonti che non è stato possibile includere, ciascuna con il motivo. Non vengono mai conteggiate come 0. |
| coverage.unavailable[].exchange | string | — | ID dell'exchange (in minuscolo). |
| coverage.unavailable[].issuer | string | — | ID dell'emittente del fondo. |
| coverage.unavailable[].reason | string | — | Codice del motivo leggibile dalla macchina. |
| coverage.unavailable[].detail | string | — | Spiegazione del motivo in linguaggio naturale. |
| 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.value | string | — | Nota sulla formula di `value`, in testo semplice. |
| method.funds | string | — | Nota sulla formula di `funds`, in testo semplice. |
| method.multi_day | string | — | Nota sulla formula di `multi_day`, in testo semplice. |
| method.history_start | string | — | Nota sulla formula di `history_start`, 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[].endpoint | string | — | Endpoint pubblico della fonte letto dal collector (mostrato a scopo di provenienza; i client non lo chiamano mai). |
| meta.observed_at | number | ms | 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. |
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"
- "coverage"
- "included_exchanges"
- "unavailable"
- "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"
- "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.
| Parametri | HTTP | Latenza | Risultato |
|---|---|---|---|
| asset=ETH&range=90d&metric=aum | 200 | 5 ms | Superato PARTIAL |
| asset=BTC&metric=holdings&ticker=ARKB | 200 | 4 ms | Superato FRESH |
| asset=BTC | 400 | 1 ms | Superato 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
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 →
| 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/etf/historyParzialestring — 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`.
https://www.coinboss.com/api/sd/etf/history?asset=BTC&metric=flowAltro in questa categoria
- Fondi ETF spot /api/sd/etf/funds
- Storico degli ETF spot /api/sd/etf/history
- Panoramica degli ETF spot (comunicazioni degli emittenti) /api/sd/etf/overview
- Flussi netti giornalieri degli ETF spot per fondo /api/etf/detail
- Storico dei flussi netti giornalieri degli ETF spot /api/etf/flows
- Dettaglio di un singolo ETF /api/etf/fund/:ticker
- Elenco dei fondi ETF /api/etf/funds
- Monete detenute dagli ETF per fondo /api/etf/holdings
- Prodotti ETF / trust di un emittente /api/etf/issuer
- Panoramica degli ETF /api/etf/overview
- Premio / sconto dei trust Grayscale /api/grayscale/premium
- Volumi degli ETF basati su futures /api/indicators/futures-etf-volumes