/api/currency/ex-table
GETVerfügbar

Börsentabelle der Coin-Seite

Börsentabelle der Coin-Seite (Preis, Volumen, OI, Funding je Börse; Spot oder Futures)

GET/api/currency/ex-table

Anfrage

Query-Parameter

NameTypErforderlichStandardZulässige WerteBeschreibung
coinstringErforderlich——Symbol des Basis-Coins (Großbuchstaben, z. B. BTC). Beispiel: BTC
marketstringOptionalfuturesfutures, spot, perpetual, delivery, all`futures` (default) and `spot` return one row per exchange (`futures` one row per contract with `group=pair`). `perpetual`, `delivery` and `all` always return one row per market: perpetual contracts only, dated futures only, or every spot, perpetual and delivery market of the coin in one list. Any other value is treated as `futures`. Beispiel: futures
groupstringOptional—pair`pair` returns one row per contract instead of one row per exchange. Each row then carries `status`, `status_reason`, `market_type`, `expiry_ts`, `expiry_date`, `native_symbol`, `quote`, `margin_type`, `price_source`, `price_at` and `rank`, and the response adds a `meta` object. Rows whose `status` is not `active` (no live quote, no feed, expired) carry no price.

Beispielanfrage

curl -s "https://www.coinboss.com/api/currency/ex-table?coin=BTC&market=futures"

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.

FeldTypEinheitBeschreibung
successboolean—true, wenn die Anfrage erfolgreich war. Im Fehlerfall lautet der Body `{ success: false, code, error, request_id }`.
coinstring—Coin-Symbol in Großbuchstaben (zum Beispiel BTC).
marketstring—Markt.
dataarray—Nutzdaten.
data[]object—Nutzdaten.
data[].exchangestring—Börsenkennung in Kleinbuchstaben (zum Beispiel `binance`).
data[].namestring—Name.
data[].pairstring|null—Exchange symbol of the row's contract: the highest-volume contract of the exchange, or the exact contract with `group=pair` (the symbol as CoinBoss normalises it; the name used by the exchange is `native_symbol`); null when the exchange has open interest but no ticker.
data[].pricenumber|null—Letzter Preis in der Kurswährung (USD oder USDT, sofern nicht anders angegeben).
data[].change_pctnumber|null%Prozentuale Veränderung.
data[].volume_usdnumber|nullUSDVolumen als Nominalwert in USD.
data[].oi_usdnumber|nullUSDOpen Interest als Nominalwert in USD.
data[].ls_rationumber|null—Long/Short-Verhältnis.
data[].liq_longnumber|null—Liquidierte Long-Positionen.
data[].liq_shortnumber|null—Liquidierte Short-Positionen.
data[].fundingnumber|null—Block oder Wert der Funding-Rate.
data[].funding_interval_hnumber|nullhFunding-Intervall. kann fehlen
data[].funding_8hnumber|nullfraction`funding`, auf ein 8-Stunden-Intervall normalisiert: Rate × 8 ÷ `funding_interval_h` (0.0001 = 0,01 %); null, wenn das Abrechnungsintervall unbekannt ist. kann fehlen
data[].next_funding_timenumber|nullmsZeitstempel. kann fehlen
data[].multipliernumberxAnzahl der Coins, die eine notierte Einheit des Kontrakts repräsentiert (1000 bei Kontrakten nach dem Muster 1000PEPE, sonst 1). kann fehlen
data[].vol_change_pctnumber|null%Veränderung des 24h-Volumens der Börse gegenüber ihrem stündlichen Snapshot von vor 23–25 Stunden; null ohne Snapshot oder bei Zeilen, die nicht den Hauptkontrakt betreffen.
data[].oi_change_pctnumber|null%Veränderung des Open Interest der Börse gegenüber dem stündlichen Snapshot derselben Kontrakte, der dem Zeitpunkt vor 24 Stunden am nächsten liegt (±1 h); null, wenn keine Vergleichsbasis existiert.
data[].oi_vol_change_pctnumber|null%Veränderung des Verhältnisses Open Interest ÷ 24h-Volumen gegenüber demselben Verhältnis 24 Stunden zuvor.
data[].price_rawnumber|nullUSDLetzter Preis genau so, wie die Börse den Kontrakt notiert, vor der Division durch `multiplier`; entspricht `price`, wenn `multiplier` gleich 1 ist. kann fehlen
data[].liquidity_usdnumber|nullUSDNominalwert von Bid plus Ask im Orderbuch innerhalb von ±1 % um den Mittelkurs an dieser Börse; eine Untergrenze, wenn `liquidity_complete` false ist. kann fehlen
data[].liquidity_reach_pctnumber%Abstand vom Mittelkurs, den das von der Börse gelieferte Orderbuch tatsächlich abdeckt; der kleinere Wert von Bid- und Ask-Seite. kann fehlen
data[].liquidity_completeboolean—True, wenn das gelieferte Orderbuch auf beiden Seiten das volle Band von ±1 % erreicht; false bedeutet, dass `liquidity_usd` zu niedrig ausfällt. kann fehlen
data[].oi_vol_rationumber|null—Open Interest geteilt durch das 24h-Volumen.
data[].pair_dispstring—Anzeigeform des Paars als Basis/Kurswährung (`BTC/USDT`, `1000PEPE/USDT`, `BTC/USD` für CME und USD-marginierte Handelsplätze).
data[].contract_typestring|null—`perpetual` or `delivery` (dated futures); null on spot rows. With `group=pair` it comes from the exchange's contract specification where CoinBoss has one, otherwise from the expiry code in the symbol.
data[].expirystring(decimal)|null—Expiry date code YYMMDD of a dated contract. With `group=pair` it is derived from `expiry_ts` for every contract that has an expiry; otherwise it is the six-digit symbol suffix. Null for contracts without an expiry and for CME rows.
data[].market_typestring—`spot`, `perpetual` or `delivery`. kann fehlen
data[].expiry_tsnumber|nullmsExpiry / delivery time of the contract, Unix milliseconds; null when the contract has no expiry or the exchange does not publish one. kann fehlen
data[].expiry_datestring|null—Expiry date as YYYY-MM-DD (UTC); null when the contract has no expiry. kann fehlen
data[].native_symbolstring|null—Contract name exactly as the exchange lists it (`BTCUSDT_270326`, `BTC-PERPETUAL`, `XBTMZ26`); null when CoinBoss holds no contract specification for the venue and on spot rows. kann fehlen
data[].quotestring|null—Quote currency of the contract or spot pair (`USDT`, `USDC`, `USD`, …). kann fehlen
data[].margin_typestring|null—Margin asset class from the contract specification: `usdt`, `usdc`, `coin`, `usd` or `other`; null when unknown and on spot rows. kann fehlen
data[].statusstring—Market state of the row (only with `group=pair` and `market=spot`): `active` = a real quote received within the last hour and a 24h volume above zero; `no_quote` = the contract is listed but has no usable quote, see `status_reason`; `not_provided` = the exchange publishes no real-time ticker that CoinBoss collects (CME); `expired` = the contract is past its expiry. Rows that are not `active` carry no price. kann fehlen
data[].status_reasonstring|null—Why a row is not `active`: `expired`, `no_realtime_feed`, `quote_stale` (last quote older than one hour), `no_price`, `no_volume` (the exchange reports no 24h volume) or `no_trades_24h` (the reported 24h volume is zero). Null on active rows. kann fehlen
data[].price_sourcestring|null—Dataset the row's price and volume were read from: `market_tickers`, `sd_contract_latest` or `spot_coin_ex_vol`; null when no ticker exists for the contract. kann fehlen
data[].price_atnumber|nullmsTime the row's ticker was received, Unix milliseconds. On rows that are not `active` it is the time of the last ticker seen (no price is returned for it), or null. kann fehlen
data[].symbolstring—Symbol of the row as CoinBoss stores it (`BTCUSDT`, `BTCUSD_270326`, `BTC-27NOV26`); same value as `pair` on contract rows, base + quote on spot rows. The name used by the exchange is `native_symbol`. kann fehlen
data[].basestring—Underlying of the contract or spot pair as traded. Contracts quoted in multiples of the coin keep the multiplier (`1000PEPE`). kann fehlen
data[].market_statusstring—State of the market: `ACTIVE` = not expired, a quote of this market received within the last hour and a 24h volume above zero; `EXPIRING` = active and the exchange lists its expiry within the next 24 hours; `EXPIRED` = past its expiry; `STALE` = the last quote is older than one hour; `NO_QUOTE` = no usable quote, see `reason_code`. Only `ACTIVE` and `EXPIRING` rows carry a price and a `rank`. kann fehlen
data[].reason_codestring|null—Why the row carries no price: `NO_QUOTE` (listed, but no trades in 24h or no last price / volume reported), `EXPIRED`, `STALE`, or `UNAVAILABLE` (CoinBoss collects no real-time ticker for this market, e.g. CME). Null on `ACTIVE` and `EXPIRING` rows. The finer cause is in `status_reason`. kann fehlen
data[].source_atnumber|nullmsTime the ticker behind this row was received from the exchange, Unix milliseconds; null when no ticker exists. Same value as `price_at`. kann fehlen
data[].qualitystring—`live` = `source_at` within the last hour, `stale` = older, `none` = no ticker for this market. kann fehlen
data[].is_staleboolean—True when `quality` is `stale`. kann fehlen
data[].expires_in_snumber|nullsSeconds until the expiry of the contract at the time the table was assembled; negative once expired; null when the contract has no expiry. kann fehlen
data[].ranknumber|null—Position among rankable rows (`market_status` `ACTIVE` or `EXPIRING`) ordered by `volume_usd` descending, starting at 1 and counted inside the requested view; null on rows that are not rankable. kann fehlen
data[].marketstring—Markt. kann fehlen
metaobject—Table-level information: grouping, freshness and volume windows, sort rule and row counts. Present with `group=pair` and with `market=spot`, `perpetual`, `delivery` or `all`. kann fehlen
meta.groupstring—`pair` = one row per contract, `exchange` = one row per spot venue. kann fehlen
meta.as_ofnumbermsTime the table was assembled, Unix milliseconds. kann fehlen
meta.fresh_window_snumbersMaximum age of a quote for a row to count as `active`. kann fehlen
meta.expiring_window_snumbersA contract whose expiry is closer than this is reported as `EXPIRING`. kann fehlen
meta.volume_windowstring—Window of `volume_usd`: `24h_rolling`, the rolling 24-hour turnover each exchange reports. kann fehlen
meta.volume_unitstring—Unit of `volume_usd`. kann fehlen
meta.sortstring—Row order of the response in words. kann fehlen
meta.countsobject—Number of rows per `status`. kann fehlen
meta.counts.activenumbercountRows with `status=active`. kann fehlen
meta.counts.no_quotenumbercountRows with `status=no_quote`. kann fehlen
meta.counts.not_providednumbercountRows with `status=not_provided`. kann fehlen
meta.counts.expirednumbercountRows with `status=expired`. kann fehlen
meta.market_status_countsobject—Number of rows per `market_status`. kann fehlen
meta.market_status_counts.ACTIVEnumbercountRows with `market_status=ACTIVE`. kann fehlen
meta.market_status_counts.EXPIRINGnumbercountRows with `market_status=EXPIRING`. kann fehlen
meta.market_status_counts.EXPIREDnumbercountRows with `market_status=EXPIRED`. kann fehlen
meta.market_status_counts.NO_QUOTEnumbercountRows with `market_status=NO_QUOTE`. kann fehlen
meta.market_status_counts.STALEnumbercountRows with `market_status=STALE`. kann fehlen
meta.type_countsobject—Number of rows per market type. kann fehlen
meta.type_counts.spotnumbercountSpot rows in the response. kann fehlen
meta.type_counts.perpetualnumbercountPerpetual rows in the response. kann fehlen
meta.type_counts.deliverynumbercountDelivery (dated futures) rows in the response. kann fehlen
meta.type_rankableobject—Number of rankable rows (`ACTIVE` or `EXPIRING`) per market type. kann fehlen
meta.type_rankable.spotnumbercountSpot rows that are rankable (`ACTIVE` or `EXPIRING`). kann fehlen
meta.type_rankable.perpetualnumbercountPerpetual rows that are rankable. kann fehlen
meta.type_rankable.deliverynumbercountDelivery rows that are rankable. kann fehlen

Erzeugt 2026-11-12 10:57 UTC aus 9 echten Antworten.

Beispielantwort

/api/currency/ex-table?coin=BTC&market=futures · Echte Antwort, erfasst 2026-11-13 03:57:28 UTC. Lange Arrays und Maps sind für die Anzeige gekürzt: data hatte 24 Elemente.

  • {
    • "success": true,
    • "coin": "BTC",
    • "market": "futures",
    • "data": [
      • { … 26 },
      • { … 26 }
      ]
    }

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.

ParameterHTTPLatenzErgebnis
coin=BTC&market=all200139 msBestanden
coin=BTC&market=perpetual2001 msBestanden
coin=BTC&market=delivery2002 msBestanden
coin=BTC&group=pair&market=futures2002 msBestanden
coin=BTC&market=spot2001 msBestanden
coin=ETH&market=futures200105 msBestanden
coin=SOL&market=futures20067 msBestanden
coin=ARKM&market=futures20055 msBestanden

Geprüft 2026-11-13 03:57:28 UTC

Details

Authentifizierung
Keine. Öffentlicher Endpunkt.
Rate-Limit
1200 Anfragen pro Minute und IP
Server-Cache
30s
Edge-Micro-Cache
10s
Aktualisierungsintervall
Ticker / OI / Funding alle 60 s bis 5 min; Orderbuchtiefe alle 5 min; Spot-Volumen alle 10 min; Liquidationen in Echtzeit
Zeitfenster
letzter Snapshot (Ticker 1 h, OI 3 h, Funding 4 h, Long/Short 24 h, Tiefe 30 min); 24-h-Veränderungen gegenüber stündlichen Archiven
Datenquellen
Futures- und Spot-Statistiken je Börse für einen Coin, zusammengestellt von den CoinBoss-eigenen Collectoren, die die öffentlichen APIs von rund 30 Börsen abfragen (z. B. binance, okx, bybit, bitget, gate, hyperliquid).
Börsenabdeckung
Futures: alle Börsen mit einem aktuellen Ticker für den Coin (bis zu 24); Tiefe von 15 Börsen für rund 28 Coins; Spot (market=spot): 14 Spot-Börsen
Sortierung
volume_usd desc. With `group=pair` and with `market=spot|perpetual|delivery|all`: rankable rows (`market_status` ACTIVE or EXPIRING) first by volume_usd desc (these carry `rank`), then rows without a live quote by oi_usd desc, expired contracts last; ties by expiry, exchange and symbol, so every request made at the same moment gets the same order
Einheiten
price in USD (multiplier contracts normalized to one coin); volume / OI / liquidations / depth in USD; funding as raw fraction and 8 h-normalized fraction; changes in percent
Methode
per exchange (futures): volume = SUM(volume_usd); funding_8h = rate x 8 / interval_hours of the largest-OI contract; depth_1pct_usd = bid + ask notional within +/- 1% of mid; OI 24 h change by same-contract pairing; volume change vs the ticker archive 23-25 h earlier; liquidations = 24 h SUM(value_usd)
Zeitstempel
Unix-Epoche in Millisekunden (UTC), sofern die Feldbeschreibung nichts anderes angibt
Antwortformat
json
Stabilität
Stabil

Live-Status

VerfügbarGeprüft 2026-11-13 03:57:28 UTCHTTP 200139 msSchema stimmt überein

Verfügbarkeit, letzte 30 Tage

99.76 % von 411 Prüfungen bestanden

Fehler

Fehlgeschlagene Aufrufe haben auf jedem Endpunkt denselben Aufbau. Die vollständige Liste steht auf der Fehlerseite. Fehler und Rate-Limits →

CodeHTTPBedeutungEmpfohlene Reaktion
INVALID_PARAM400Ein erforderlicher Parameter fehlt oder ein Wert wird nicht akzeptiert. `param` nennt den Parameter, sofern er bekannt ist.Nicht unverändert wiederholen; die Anfrage korrigieren.
UNAUTHORIZED401Der 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.
FORBIDDEN403Die Route gehört nicht zur öffentlichen API (intern oder nur für Konten).Nicht wiederholen.
NOT_FOUND404Unbekannte Route, oder der angefragte Coin / die Börse / der Fonds existiert nicht.Nicht wiederholen; Pfad und Kennungen mit dem Katalog abgleichen.
RATE_LIMITED429Mehr Anfragen, als das Limit pro Minute zulässt. `Retry-After` gibt die Wartezeit in Sekunden an.`Retry-After` abwarten, dann mit Backoff wiederholen.
INTERNAL500Unerwarteter 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_FAILED503Die 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.
UNAVAILABLE501 / 503Der 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_FAILED200Einige ä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

GET/api/currency/ex-tableVerfügbar
Parameter

string — Base coin symbol (uppercase, e.g. BTC).

string · Standard futures — `futures` (default) and `spot` return one row per exchange (`futures` one row per contract with `group=pair`). `perpetual`, `delivery` and `all` always return one row per market: perpetual contracts only, dated futures only, or every spot, perpetual and delivery market of the coin in one list. Any other value is treated as `futures`.

string — `pair` returns one row per contract instead of one row per exchange. Each row then carries `status`, `status_reason`, `market_type`, `expiry_ts`, `expiry_date`, `native_symbol`, `quote`, `margin_type`, `price_source`, `price_at` and `rank`, and the response adds a `meta` object. Rows whose `status` is not `active` (no live quote, no feed, expired) carry no price.

Anfrage-URLhttps://www.coinboss.com/api/currency/ex-table?coin=BTC&market=futures
Wählen Sie einen Endpunkt und klicken Sie auf „Anfrage senden“. Antwort, Header und Laufzeit erscheinen hier.