/api/currency/ex-table
GETDisponible

Tabla de exchanges de la página de moneda

Tabla de exchanges de la página de moneda (precio, volumen, OI y financiación por plataforma; spot o futuros)

GET/api/currency/ex-table

Solicitud

Parámetros de consulta

NombreTipoObligatorioValor por defectoValores admitidosDescripción
coinstringObligatorio——Símbolo de la moneda base (en mayúsculas, p. ej. BTC). Ejemplo: BTC
marketstringOpcionalfuturesfutures, 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`. Ejemplo: futures
groupstringOpcional—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.

Solicitud de ejemplo

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

Campos de la respuesta

La tabla de campos se genera a partir de respuestas reales, por lo que recoge exactamente lo que devuelve el endpoint. Las rutas usan a[] para los elementos de un array y {*} para los objetos cuya clave es un nombre dinámico, como una moneda o un exchange.

CampoTipoUnidadDescripción
successboolean—true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`.
coinstring—Símbolo de la moneda, en mayúsculas (por ejemplo BTC).
marketstring—Mercado.
dataarray—Carga útil.
data[]object—Carga útil.
data[].exchangestring—Id del exchange, en minúsculas (por ejemplo `binance`).
data[].namestring—Nombre.
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—Último precio en la moneda de cotización (USD o USDT salvo que se indique otra cosa).
data[].change_pctnumber|null%Variación porcentual.
data[].volume_usdnumber|nullUSDVolumen en nocional USD.
data[].oi_usdnumber|nullUSDInterés abierto en nocional USD.
data[].ls_rationumber|null—Ratio largos/cortos.
data[].liq_longnumber|null—Largos liquidados.
data[].liq_shortnumber|null—Cortos liquidados.
data[].fundingnumber|null—Bloque o valor de la tasa de financiación.
data[].funding_interval_hnumber|nullhIntervalo de financiación. puede faltar
data[].funding_8hnumber|nullfraction`funding` normalizado a un intervalo de 8 horas: tasa × 8 ÷ `funding_interval_h` (0.0001 = 0.01 %); null cuando se desconoce el intervalo de pago. puede faltar
data[].next_funding_timenumber|nullmsMarca de tiempo. puede faltar
data[].multipliernumberxNúmero de monedas que representa una unidad cotizada del contrato (1000 en los contratos del tipo 1000PEPE; en los demás, 1). puede faltar
data[].vol_change_pctnumber|null%Variación del volumen de 24h del exchange frente a su instantánea horaria tomada entre 23 y 25 horas antes; null si no hay instantánea o en las filas no principales.
data[].oi_change_pctnumber|null%Variación del interés abierto del exchange frente a la instantánea horaria de los mismos contratos más cercana a hace 24 horas (±1 h); null cuando no existe referencia.
data[].oi_vol_change_pctnumber|null%Variación del ratio interés abierto ÷ volumen de 24h frente al mismo ratio 24 horas antes.
data[].price_rawnumber|nullUSDÚltimo precio exactamente como el exchange cotiza el contrato, antes de dividirlo entre `multiplier`; es igual a `price` cuando `multiplier` es 1. puede faltar
data[].liquidity_usdnumber|nullUSDNocional de compra más venta del libro de órdenes dentro del ±1 % del precio medio en este exchange; es un límite inferior cuando `liquidity_complete` es false. puede faltar
data[].liquidity_reach_pctnumber%Distancia desde el precio medio que cubre realmente el libro de órdenes devuelto por el exchange: la menor entre el lado de compra y el de venta. puede faltar
data[].liquidity_completeboolean—True cuando el libro de órdenes devuelto alcanza la banda completa del ±1 % en ambos lados; false significa que `liquidity_usd` se queda corto. puede faltar
data[].oi_vol_rationumber|null—Interés abierto dividido entre el volumen de 24h.
data[].pair_dispstring—Forma de presentación del par como base/cotización (`BTC/USDT`, `1000PEPE/USDT`, `BTC/USD` para CME y las plataformas con margen en USD).
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`. puede faltar
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. puede faltar
data[].expiry_datestring|null—Expiry date as YYYY-MM-DD (UTC); null when the contract has no expiry. puede faltar
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. puede faltar
data[].quotestring|null—Quote currency of the contract or spot pair (`USDT`, `USDC`, `USD`, …). puede faltar
data[].margin_typestring|null—Margin asset class from the contract specification: `usdt`, `usdc`, `coin`, `usd` or `other`; null when unknown and on spot rows. puede faltar
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. puede faltar
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. puede faltar
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. puede faltar
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. puede faltar
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`. puede faltar
data[].basestring—Underlying of the contract or spot pair as traded. Contracts quoted in multiples of the coin keep the multiplier (`1000PEPE`). puede faltar
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`. puede faltar
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`. puede faltar
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`. puede faltar
data[].qualitystring—`live` = `source_at` within the last hour, `stale` = older, `none` = no ticker for this market. puede faltar
data[].is_staleboolean—True when `quality` is `stale`. puede faltar
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. puede faltar
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. puede faltar
data[].marketstring—Mercado. puede faltar
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`. puede faltar
meta.groupstring—`pair` = one row per contract, `exchange` = one row per spot venue. puede faltar
meta.as_ofnumbermsTime the table was assembled, Unix milliseconds. puede faltar
meta.fresh_window_snumbersMaximum age of a quote for a row to count as `active`. puede faltar
meta.expiring_window_snumbersA contract whose expiry is closer than this is reported as `EXPIRING`. puede faltar
meta.volume_windowstring—Window of `volume_usd`: `24h_rolling`, the rolling 24-hour turnover each exchange reports. puede faltar
meta.volume_unitstring—Unit of `volume_usd`. puede faltar
meta.sortstring—Row order of the response in words. puede faltar
meta.countsobject—Number of rows per `status`. puede faltar
meta.counts.activenumbercountRows with `status=active`. puede faltar
meta.counts.no_quotenumbercountRows with `status=no_quote`. puede faltar
meta.counts.not_providednumbercountRows with `status=not_provided`. puede faltar
meta.counts.expirednumbercountRows with `status=expired`. puede faltar
meta.market_status_countsobject—Number of rows per `market_status`. puede faltar
meta.market_status_counts.ACTIVEnumbercountRows with `market_status=ACTIVE`. puede faltar
meta.market_status_counts.EXPIRINGnumbercountRows with `market_status=EXPIRING`. puede faltar
meta.market_status_counts.EXPIREDnumbercountRows with `market_status=EXPIRED`. puede faltar
meta.market_status_counts.NO_QUOTEnumbercountRows with `market_status=NO_QUOTE`. puede faltar
meta.market_status_counts.STALEnumbercountRows with `market_status=STALE`. puede faltar
meta.type_countsobject—Number of rows per market type. puede faltar
meta.type_counts.spotnumbercountSpot rows in the response. puede faltar
meta.type_counts.perpetualnumbercountPerpetual rows in the response. puede faltar
meta.type_counts.deliverynumbercountDelivery (dated futures) rows in the response. puede faltar
meta.type_rankableobject—Number of rankable rows (`ACTIVE` or `EXPIRING`) per market type. puede faltar
meta.type_rankable.spotnumbercountSpot rows that are rankable (`ACTIVE` or `EXPIRING`). puede faltar
meta.type_rankable.perpetualnumbercountPerpetual rows that are rankable. puede faltar
meta.type_rankable.deliverynumbercountDelivery rows that are rankable. puede faltar

Generada 2026-11-12 10:57 UTC a partir de 9 respuestas reales.

Respuesta de ejemplo

/api/currency/ex-table?coin=BTC&market=futures · Respuesta real capturada 2026-11-13 03:57:28 UTC. Los arrays y mapas largos se abrevian para su visualización: data tenía 24 elementos.

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

Muestras verificadas

Además del ejemplo anterior, la sonda llama a este endpoint con estos parámetros y comprueba el esquema en cada ocasión.

ParámetrosHTTPLatenciaResultado
coin=BTC&market=all200139 msCorrecto
coin=BTC&market=perpetual2001 msCorrecto
coin=BTC&market=delivery2002 msCorrecto
coin=BTC&group=pair&market=futures2002 msCorrecto
coin=BTC&market=spot2001 msCorrecto
coin=ETH&market=futures200105 msCorrecto
coin=SOL&market=futures20067 msCorrecto
coin=ARKM&market=futures20055 msCorrecto

Comprobado 2026-11-13 03:57:28 UTC

Detalles

Autenticación
Ninguna. Endpoint público.
Límite de solicitudes
1200 solicitudes por minuto por IP
Caché del servidor
30s
Microcaché de borde
10s
Frecuencia de actualización
tickers / OI / financiación cada 60 s a 5 min; profundidad del libro de órdenes cada 5 min; volumen spot cada 10 min; liquidaciones en tiempo real
Ventana
última instantánea (tickers 1 h, OI 3 h, financiación 4 h, largos/cortos 24 h, profundidad 30 min); variaciones de 24 h frente a los archivos horarios
Fuentes de datos
Estadísticas de futuros y spot por exchange de una moneda, compuestas a partir de los recolectores propios de CoinBoss, que consultan las API públicas de unas 30 plataformas (p. ej. binance, okx, bybit, bitget, gate, hyperliquid).
Cobertura de exchanges
futuros: todas las plataformas con un ticker fresco de la moneda (hasta 24); profundidad de 15 plataformas para unas 28 monedas; spot (market=spot): 14 plataformas spot
Ordenación
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
Unidades
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
Método
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)
Marcas de tiempo
Milisegundos de época Unix (UTC), salvo que la descripción del campo indique otra cosa
Formato de respuesta
json
Estabilidad
Estable

Estado en vivo

DisponibleComprobado 2026-11-13 03:57:28 UTCHTTP 200139 msEl esquema coincide

Disponibilidad, últimos 30 días

99.76% de 411 comprobaciones superadas

Errores

Las llamadas fallidas tienen la misma estructura en todos los endpoints. La lista completa está en la página de errores. Errores y límites de solicitudes →

CódigoHTTPSignificadoQué hacer
INVALID_PARAM400Falta un parámetro obligatorio o un valor no se acepta. `param` indica el nombre del parámetro cuando se conoce.No reintente sin cambios; corrija la solicitud.
UNAUTHORIZED401Se envió la cabecera `CB-API-KEY`, pero la clave es desconocida o está revocada. Los datos públicos no necesitan clave: elimine la cabecera o use una clave válida.No reintente sin cambios.
FORBIDDEN403La ruta no forma parte de la API pública (interna o solo para cuentas).No reintente.
NOT_FOUND404Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe.No reintente; compruebe la ruta y los identificadores en el catálogo.
RATE_LIMITED429Más solicitudes que el límite por minuto. `Retry-After` indica los segundos de espera.Espere el tiempo de `Retry-After` y después reintente con espera progresiva.
INTERNAL500Error inesperado del servidor. El mensaje es genérico por diseño; cite `request_id` al informar del error.Reintente una vez tras unos segundos; si persiste, infórmelo con el ID de solicitud.
UPSTREAM_FAILED503La fuente de datos de este endpoint no respondió a tiempo. No se devuelven cifras desactualizadas ni sustitutas en su lugar.Reintente con espera progresiva; consulte la página de estado.
UNAVAILABLE501 / 503El conjunto de datos no está listo temporalmente (calentamiento de la caché) o el endpoint aún no tiene una fuente pública lícita.Reintente más tarde; el catálogo marca los endpoints que no están disponibles por diseño.
REQUEST_FAILED200Algunos endpoints antiguos responden HTTP 200 con `success: false`. Compruebe siempre `success`, no solo el estado HTTP.Depende del mensaje; trátelo como una solicitud fallida.

Pruébelo

GET/api/currency/ex-tableDisponible
Parámetros

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

string · por defecto 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.

URL de la solicitudhttps://www.coinboss.com/api/currency/ex-table?coin=BTC&market=futures
Elija un endpoint y pulse «Enviar solicitud». Aquí aparecerán la respuesta, las cabeceras y los tiempos.