Basis-Historie (stündlich)
Stündliche Basis-Zeitreihe je Börse und als börsenübergreifendes Aggregat (Median, Mittelwert, OI-gewichtet) für einen Coin.
/api/sd/basis/historyAnfrage
Query-Parameter
| Name | Typ | Erforderlich | Standard | Zulässige Werte | Beschreibung |
|---|---|---|---|---|---|
| coin | string | Erforderlich | — | — | Coin-Symbol, Groß-/Kleinschreibung wird nicht beachtet (zum Beispiel `BTC`). Fehlende oder fehlerhafte Werte liefern 400. Beispiel: BTC |
| kind | string | Optional | perp | perp, spot_perp | `perp`: Mark-Preis gegenüber dem Indexpreis derselben Börse. `spot_perp`: Perpetual-Preis gegenüber dem Spot-Preis derselben Börse. |
| range | string | Optional | 24h | 24h, 7d, 30d | Rückblickzeitraum, ein Punkt pro Stunde. |
| exchange | string | Optional | — | — | Eine Börsenkennung. Standard: alle Börsen. Eine unbekannte Kennung liefert 400. |
Beispielanfrage
curl -s "https://www.coinboss.com/api/sd/basis/history?coin=BTC"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. |
| coin | string | — | Coin-Symbol (Großbuchstaben). |
| kind | string | — | `perp` oder `spot_perp`. |
| range | string | — | Angewendeter Rückblickzeitraum. |
| interval | string | — | Abstand zwischen den Punkten der Reihe. |
| exchange | string|null | — | Börsenkennung (Kleinbuchstaben). |
| aggregate | array | — | Börsenübergreifendes Aggregat des Abschnitts. |
| aggregate[] | object | — | Börsenübergreifendes Aggregat des Abschnitts. |
| aggregate[].t | number | ms | Beginn des Zeit-Buckets. |
| aggregate[].median_pct | number | % | Median der Basis über einen Hauptkontrakt je Börse. |
| aggregate[].mean_pct | number | % | Einfacher Mittelwert über dieselbe Menge wie beim Median. |
| aggregate[].oi_weighted_pct | number | % | Mit dem Open Interest gewichtete Basis; Zeilen ohne OI-Gewicht bleiben unberücksichtigt. |
| aggregate[].n_exchanges | number | — | Börsen im Aggregat. |
| series | array | — | Eine Reihe je Börse. |
| series[] | object | — | Eine Reihe je Börse. |
| series[].exchange | string | — | Börsenkennung (Kleinbuchstaben). |
| series[].symbol | string | — | Kontraktsymbol in der CoinBoss-Speicherform. |
| series[].primary | boolean | — | True für den Kontrakt, der seine Börse in Median und Mittelwert repräsentiert. |
| series[].in_aggregate | boolean | — | True, wenn die Zeile die Einbeziehungsregeln erfüllt hat. |
| series[].points | array | — | Paare `[hour start in ms, basis in %]`, älteste zuerst. |
| series[].points[] | array | — | Paare `[hour start in ms, basis in %]`, älteste zuerst. |
| series[].points[][] | number | — | Paare `[hour start in ms, basis in %]`, älteste zuerst. |
| history | object | — | Wie viel vom angefragten Zeitraum verfügbar ist. |
| history.requested_from | number | ms | Beginn des angefragten Zeitraums. |
| history.available_from | number | ms | Erste gespeicherte Stunde. |
| history.available_to | number | ms | Letzte gespeicherte Stunde. |
| history.n_hours | number | — | Im Zeitraum verfügbare Stunden. |
| history.expected_hours | number | — | Stunden, die der Zeitraum bei Vollständigkeit enthält. |
| history.complete | boolean | — | True, wenn jede Stunde des angefragten Zeitraums gespeichert ist. |
| 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[].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.series.points | string | — | Formelhinweis zu `series.points`, Klartext. |
| method.aggregate.median_pct | string | — | Formelhinweis zu `aggregate.median_pct`, Klartext. |
| method.aggregate.oi_weighted_pct | string | — | Formelhinweis zu `aggregate.oi_weighted_pct`, Klartext. |
| method.interval | string | — | Formelhinweis zu `interval`, 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 | null | — | 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/basis/history?coin=BTC · Echte Antwort, erfasst 2026-11-13 01:42:45 UTC. Lange Arrays und Maps sind für die Anzeige gekürzt: series hatte 20 Elemente; aggregate hatte 25 Elemente; meta.source hatte 20 Elemente; series[].points hatte 25 Elemente; coverage.included_exchanges hatte 20 Elemente.
- "success"true
- "schema""coinboss.sd.basis/1"
- "now"1794533867130
- "coin""BTC"
- "kind""perp"
- "range""24h"
- "interval""1h"
- "exchange"null
- "aggregate"
- "series"
- "history"
- "requested_from"1794445200000
- "available_from"1794445200000
- "available_to"1794531600000
- "n_hours"25
- "expected_hours"24
- "complete"true
- "coverage"
- "included_exchanges"
- "unavailable"
- "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"
- "observed_at"null
- "received_at"1794531617374
- "fetched_at"1794533867130
- "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"
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 |
|---|---|---|---|
| coin=ETH&kind=spot_perp | 200 | 41 ms | Bestanden FRESH |
| coin=BTC&exchange=binance | 200 | 40 ms | Bestanden FRESH |
| coin=BTC&range=1y | 400 | 1 ms | Bestanden liefert den erwarteten Fehler |
Geprüft 2026-11-13 01:28:05 UTC
Details
- Authentifizierung
- Keine. Öffentlicher Endpunkt.
- Rate-Limit
- 1200 Anfragen pro Minute und IP
- Server-Cache
- 5m
- Edge-Micro-Cache
- 10s
- Aktualisierungsintervall
- Collector-Durchlauf alle 60 Sekunden; eine Zeile gilt 180 Sekunden lang als aktuell. Stündliche Snapshots speisen die Historie.
- Zeitfenster
- 24h / 7d / 30d, Stunden-Buckets.
- Datenquellen
- Mark-Preis, Indexpreis und letzter Preis, veröffentlicht von 21 Derivatebörsen, dazu der Spot-Preis derselben Börse, von CoinBoss erhoben und gespeichert (sd_px_latest, sd_px_hourly).
- Börsenabdeckung
- 21 Börsen. Börsen, die keinen Index- oder Mark-Preis veröffentlichen, sind unter `coverage.unavailable` aufgeführt; Zeilen, deren zwei Preis-Legs mehr als 60 Sekunden auseinanderliegen, liefern `null`. Zeilen, die im Aggregat unberücksichtigt bleiben, sind mit Begründung unter `coverage.excluded_from_aggregate` aufgeführt.
- Paginierung
- Keine Paginierung; `range` begrenzt die Anzahl der Punkte.
- Sortierung
- Zeit aufsteigend.
- Einheiten
- All basis values in percent. Prices in the quote currency of the contract (USDT / USDC / USD). `oi_usd` single-sided.
- Methode
- 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`.
- 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
Die Erhebung begann am 2026-11-11. Die Antwort meldet `history.available_from`, `n_hours` gegenüber `expected_hours` sowie `complete`; Stunden ohne Daten fehlen und werden nicht interpoliert.
Verfügbarkeit, letzte 30 Tage
100 % von 380 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/basis/historyTeilweisestring — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.
string · Standard 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 · Standard 24h — Look-back range, one point per hour.
string — One exchange id. Default: all exchanges. An unknown id returns 400.
https://www.coinboss.com/api/sd/basis/history?coin=BTCMehr in dieser Kategorie
- Futures-Basis (alle Börsen) /api/sd/basis
- Basis-Historie (stündlich) /api/sd/basis/history
- Coin-Ranking nach Basis /api/sd/basis/rank
- Liste der Futures-Spot-Basis /api/derivatives/basis
- Täglicher BTC-Preisspread zwischen Coinbase und Kraken /api/p3/cb-kr-spread
- Coinbase-Bitcoin-Premium-Index /api/p3/coinbase-premium
- Premium-Index-Liste für Perpetual-Kontrakte /api/p3/premium-index
- Premium-Index-Historie für einen Coin /api/p3/premium-index/history
- Premium-Index-Kerzen /api/p3/premium-index/klines
- USDT-OTC-Prämie gegenüber Fiat-Wechselkursen /api/usdt-premium
- Vollständige Liste der Futures-Spot-Basis /api/basis/list