Spot-ETF-Historie
Tagesreihe der Bestände, des Nettovermögens oder des Nettoflusses für ein Asset (Summe der abgedeckten Fonds) oder für einen einzelnen Fonds. Jeder Punkt gibt an, wie viele Fonds er enthält.
/api/sd/etf/historyAnfrage
Query-Parameter
| Name | Typ | Erforderlich | Standard | Zulässige Werte | Beschreibung |
|---|---|---|---|---|---|
| asset | string | Erforderlich | — | BTC, ETH, SOL, HYPE | Basiswert, Groß-/Kleinschreibung wird nicht beachtet. `coin` wird als Alias akzeptiert. Beispiel: BTC |
| metric | string | Erforderlich | — | holdings, aum, flow | Zurückzugebende Reihe: Bestände (Coin), Nettovermögen (USD) oder Nettofluss (USD). Beispiel: flow |
| range | string | Optional | 30d | 30d, 90d, all | Rückblickzeitraum. |
| ticker | string | Optional | — | — | Für das Asset registrierter Fonds-Ticker (zum Beispiel `ARKB`). Standard: Summe aller abgedeckten Fonds. Ein nicht registrierter Ticker liefert 404; ein registrierter Fonds, der nicht erhoben werden kann, liefert 200 mit `series: null`. |
Beispielanfrage
curl -s "https://www.coinboss.com/api/sd/etf/history?asset=BTC&metric=flow"Antwortfelder
Die Feldtabelle wird aus echten Antworten erzeugt und führt daher genau das auf, was der Endpunkt zurückgibt. In Pfaden steht a[] für Array-Elemente und {*} für Objekte, deren Schlüssel ein dynamischer Name ist, etwa ein Coin oder eine Börse.
| Feld | Typ | Einheit | Beschreibung |
|---|---|---|---|
| success | boolean | — | true, wenn die Anfrage erfolgreich war. Im Fehlerfall lautet der Body `{ success: false, code, error, request_id }`. |
| schema | string | — | Schema-ID dieser Antwort. Sie ändert sich nur, wenn ein bestehendes Feld seine Bedeutung oder seinen Typ ändert. |
| now | number | ms | Serverzeit beim Erstellen der Antwort. |
| asset | string | — | Basiswert. |
| metric | string | — | Über den Parameter `metric` ausgewählte Reihe. |
| range | string | — | Angewendeter Rückblickzeitraum. |
| ticker | string|null | — | Ticker des Fonds. |
| unit | string | — | Einheit der Werte der Reihe: `coin` oder `USD`. |
| funds_total | number | — | Für das Asset registrierte Fonds. |
| funds_in_series | array | — | Fonds, die zur Reihe beitragen. |
| funds_in_series[] | string | — | Fonds, die zur Reihe beitragen. |
| first_date_by_fund | object | — | Erstes verfügbares Datum je Fonds (der Schlüssel ist der Ticker). dynamische Schlüssel: ARKB,EZBC |
| first_date_by_fund.{*} | string | — | Erstes verfügbares Datum je Fonds (der Schlüssel ist der Ticker). |
| points | number | — | Punkte der Reihe, älteste zuerst. |
| series | array | — | Tagespunkte, älteste zuerst; `null`, wenn der Fonds nicht erhoben werden kann. |
| series[] | object | — | Tagespunkte, älteste zuerst; `null`, wenn der Fonds nicht erhoben werden kann. |
| series[].date | string | — | Stichtag des Emittenten für den Punkt. |
| series[].value | number | — | Wert der ausgewählten Kennzahl, summiert über die an diesem Datum vorhandenen Fonds. |
| series[].funds | number | — | Eine Zeile je registriertem Fonds, einschließlich der Fonds, die nicht erhoben werden können. kann fehlen |
| coverage | object | — | Was in den Zahlen enthalten ist und was nicht. Vergleichen Sie dies, bevor Sie Summen mit einer anderen Quelle vergleichen. |
| coverage.included_exchanges | array | — | Quellen, deren aktuelle Daten einbezogen sind. |
| coverage.included_exchanges[] | string | — | Quellen, deren aktuelle Daten einbezogen sind. |
| coverage.unavailable | array | — | Quellen, die nicht einbezogen werden konnten, jeweils mit Begründung. Sie werden nie als 0 gezählt. |
| coverage.unavailable[] | object | — | Quellen, die nicht einbezogen werden konnten, jeweils mit Begründung. Sie werden nie als 0 gezählt. |
| coverage.unavailable[].exchange | string | — | Börsenkennung (Kleinbuchstaben). |
| coverage.unavailable[].issuer | string | — | Kennung des Fondsemittenten. |
| coverage.unavailable[].reason | string | — | Maschinenlesbarer Begründungscode. |
| coverage.unavailable[].detail | string | — | Für Menschen lesbare Erläuterung der Begründung. |
| coverage.stale_excluded | array | — | Zeilen, die unberücksichtigt bleiben, weil ihre letzte Aktualisierung außerhalb des Aktualitätsfensters liegt. leer in den Stichproben, aus denen diese Tabelle erzeugt wurde |
| method | object | — | Klartextangabe der für diese Antwort verwendeten Formeln, ein Eintrag je Feld. |
| method.value | string | — | Formelhinweis zu `value`, Klartext. |
| method.funds | string | — | Formelhinweis zu `funds`, Klartext. |
| method.multi_day | string | — | Formelhinweis zu `multi_day`, Klartext. |
| method.history_start | string | — | Formelhinweis zu `history_start`, Klartext. |
| meta | object | — | Datenherkunft und Aktualität dieser Antwort. |
| meta.schema | string | — | Schema-ID dieser Antwort. Sie ändert sich nur, wenn ein bestehendes Feld seine Bedeutung oder seinen Typ ändert. |
| meta.source | array | — | Öffentliche Upstream-Endpunkte, von denen die Daten erhoben wurden. |
| meta.source[] | object | — | Öffentliche Upstream-Endpunkte, von denen die Daten erhoben wurden. |
| meta.source[].exchange | string | — | Börsenkennung (Kleinbuchstaben). |
| meta.source[].endpoint | string | — | Öffentlicher Endpunkt der Quelle, den der Collector liest (zur Datenherkunft angegeben; Clients rufen ihn nie auf). |
| meta.observed_at | number | ms | Von der Quelle für die Daten angegebener Zeitstempel. |
| meta.received_at | number | ms | Zeitpunkt, zu dem der CoinBoss-Collector die Daten empfangen hat. |
| meta.fetched_at | number | ms | Zeitpunkt, zu dem diese Antwort zusammengestellt wurde. |
| meta.window | string | — | Zeitfenster, das die Zahlen abdecken. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN oder UNAVAILABLE, beurteilt anhand der Datenzeitstempel und der Abdeckung. |
| meta.is_stale | boolean | — | True, wenn die Daten älter als ihr Aktualitätsfenster sind. |
| meta.cache_ttl_s | number | s | Cache-Lebensdauer dieser Antwort. |
| meta.fallback | string | — | Was der Endpunkt zurückgibt, wenn der Collector oder eine Quelle ausfällt. |
Erzeugt 2026-11-11 23:00 UTC aus 3 echten Antworten.
Beispielantwort
/api/sd/etf/history?asset=BTC&metric=flow · Echte Antwort, erfasst 2026-11-13 03:17:50 UTC. Lange Arrays und Maps sind für die Anzeige gekürzt: series hatte 21 Elemente; meta.source hatte 5 Elemente; first_date_by_fund hatte 5 Elemente; coverage.unavailable hatte 7 Elemente.
- "success"true
- "schema""coinboss.sd.etf/1"
- "now"1794539870897
- "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"1794539870897
- "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…"
Geprüfte Stichproben
Neben dem obigen Beispiel ruft die Prüfsonde diesen Endpunkt mit den folgenden Parametern auf und prüft jedes Mal das Schema.
| Parameter | HTTP | Latenz | Ergebnis |
|---|---|---|---|
| asset=ETH&range=90d&metric=aum | 200 | 5 ms | Bestanden PARTIAL |
| asset=BTC&metric=holdings&ticker=ARKB | 200 | 7 ms | Bestanden FRESH |
| asset=BTC | 400 | 2 ms | Bestanden liefert den erwarteten Fehler |
Geprüft 2026-11-13 02:58:13 UTC
Details
- Authentifizierung
- Keine. Öffentlicher Endpunkt.
- Rate-Limit
- 1200 Anfragen pro Minute und IP
- Server-Cache
- 5m
- Edge-Micro-Cache
- 10s
- Aktualisierungsintervall
- Drei Collector-Durchläufe pro Tag (02:35, 10:35, 16:35 UTC). Die Emittenten veröffentlichen einmal pro US-Handelstag, in der Regel am Abend des Handelstags.
- Zeitfenster
- 30d / 90d / all, ein Punkt je Stichtag des Emittenten.
- Datenquellen
- Tägliche Offenlegungen, die von den Fondsemittenten selbst veröffentlicht werden (Bestände, Nettovermögen, ausstehende Anteile, NAV), von CoinBoss erhoben und gespeichert (sd_etf_fund_daily). Den Nettofluss berechnet CoinBoss aus diesen Offenlegungen.
- Börsenabdeckung
- Abgedeckt sind nur Fonds, deren Emittent maschinenlesbare Tagesdaten veröffentlicht. `funds_total` und `funds_covered` geben an, wie viele es sind; jeder nicht abgedeckte Fonds ist mit Begründung unter `coverage.unavailable` aufgeführt. Summen beziehen sich nur auf die abgedeckten Fonds (`totals_scope = "covered_funds_only"`), nicht auf den Gesamtmarkt.
- Paginierung
- Keine Paginierung; `range` begrenzt die Anzahl der Punkte.
- Sortierung
- Datum aufsteigend.
- Einheiten
- 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.
- Methode
- 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.
- Zeitstempel
- Unix-Epoche in Millisekunden (UTC), sofern die Feldbeschreibung nichts anderes angibt
- Antwortformat
- json
- Stabilität
- Stabil
- Verfügbar seit
- 2026-11-11
Live-Status
Der Endpunkt meldet die Datenqualität PARTIAL — Teilweise Abdeckung: Mehrere große Emittenten bieten keine öffentliche maschinenlesbare Offenlegung an, die von einem Server aus erhoben werden kann. Ihre Fonds werden als nicht verfügbar aufgeführt, und die Summen umfassen nur die übrigen Fonds. Vergleichen Sie `funds_covered` / `funds_total`, bevor Sie Summen mit anderen Quellen vergleichen.
Verfügbarkeit, letzte 30 Tage
100 % von 399 Prüfungen bestanden
Fehler
Fehlgeschlagene Aufrufe haben auf jedem Endpunkt denselben Aufbau. Die vollständige Liste steht auf der Fehlerseite. Fehler und Rate-Limits →
| Code | HTTP | Bedeutung | Empfohlene Reaktion |
|---|---|---|---|
| INVALID_PARAM | 400 | Ein erforderlicher Parameter fehlt oder ein Wert wird nicht akzeptiert. `param` nennt den Parameter, sofern er bekannt ist. | Nicht unverändert wiederholen; die Anfrage korrigieren. |
| UNAUTHORIZED | 401 | Der Header `CB-API-KEY` wurde gesendet, der Schlüssel ist jedoch unbekannt oder widerrufen. Öffentliche Daten erfordern keinen Schlüssel – lassen Sie den Header weg oder verwenden Sie einen gültigen Schlüssel. | Nicht unverändert wiederholen. |
| FORBIDDEN | 403 | Die Route gehört nicht zur öffentlichen API (intern oder nur für Konten). | Nicht wiederholen. |
| NOT_FOUND | 404 | Unbekannte Route, oder der angefragte Coin / die Börse / der Fonds existiert nicht. | Nicht wiederholen; Pfad und Kennungen mit dem Katalog abgleichen. |
| RATE_LIMITED | 429 | Mehr Anfragen, als das Limit pro Minute zulässt. `Retry-After` gibt die Wartezeit in Sekunden an. | `Retry-After` abwarten, dann mit Backoff wiederholen. |
| INTERNAL | 500 | Unerwarteter Serverfehler. Die Meldung ist bewusst allgemein gehalten; geben Sie `request_id` an, wenn Sie den Fehler melden. | Einmal nach einigen Sekunden wiederholen; wenn der Fehler bestehen bleibt, mit der Request-ID melden. |
| UPSTREAM_FAILED | 503 | Die Datenquelle hinter diesem Endpunkt hat nicht rechtzeitig geantwortet. Es werden ersatzweise keine veralteten oder stellvertretenden Zahlen zurückgegeben. | Mit Backoff wiederholen; die Statusseite prüfen. |
| UNAVAILABLE | 501 / 503 | Der Datensatz ist vorübergehend nicht bereit (Cache wird aufgewärmt), oder der Endpunkt hat noch keine rechtmäßige öffentliche Quelle. | Später wiederholen; der Katalog kennzeichnet Endpunkte, die konzeptbedingt nicht verfügbar sind. |
| REQUEST_FAILED | 200 | Einige ältere Endpunkte antworten mit HTTP 200 und `success: false`. Prüfen Sie immer `success`, nicht nur den HTTP-Status. | Hängt von der Meldung ab; als fehlgeschlagene Anfrage behandeln. |
Ausprobieren
/api/sd/etf/historyTeilweisestring — Underlying asset, case-insensitive. `coin` is accepted as an alias.
string — Series to return: holdings (coin), net assets (USD) or net flow (USD).
string · Standard 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=flowMehr in dieser Kategorie
- Spot-ETF-Fonds /api/sd/etf/funds
- Spot-ETF-Historie /api/sd/etf/history
- Spot-ETF-Übersicht (Emittentenangaben) /api/sd/etf/overview
- Tägliche Spot-ETF-Nettoflüsse je Fonds /api/etf/detail
- Historie der täglichen Spot-ETF-Nettoflüsse /api/etf/flows
- Details zu einem einzelnen ETF /api/etf/fund/:ticker
- Liste der ETF-Fonds /api/etf/funds
- Coin-Bestände der ETFs je Fonds /api/etf/holdings
- ETF- / Trust-Produkte eines Emittenten /api/etf/issuer
- ETF-Übersicht /api/etf/overview
- Auf- / Abschlag der Grayscale-Trusts /api/grayscale/premium
- Volumen futuresbasierter ETFs /api/indicators/futures-etf-volumes