Base de futuros (todas las plataformas)
Base de perpetuos (precio de marca frente a precio del índice), base perpetuo-spot en el mismo exchange y base de futuros con vencimiento con tasa anualizada, por contrato, además de agregados ponderados por OI, ponderados por volumen y de mediana.
/api/sd/basisSolicitud
Parámetros de consulta
| Nombre | Tipo | Obligatorio | Valor por defecto | Valores admitidos | Descripción |
|---|---|---|---|---|---|
| coin | string | Obligatorio | — | — | Símbolo de la moneda, sin distinción entre mayúsculas y minúsculas (por ejemplo `BTC`). Los valores ausentes o mal formados devuelven 400. Ejemplo: BTC |
Solicitud de ejemplo
curl -s "https://www.coinboss.com/api/sd/basis?coin=BTC"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.
| Campo | Tipo | Unidad | Descripción |
|---|---|---|---|
| success | boolean | — | true cuando la solicitud se completó correctamente. En caso de fallo, el cuerpo es `{ success: false, code, error, request_id }`. |
| schema | string | — | Id de esquema de esta respuesta. Solo cambia cuando un campo existente cambia de significado o de tipo. |
| now | number | ms | Hora del servidor en el momento de generar la respuesta. |
| coin | string | — | Símbolo de la moneda (en mayúsculas). |
| perp | object | — | Base de perpetuos: precio de marca frente al precio del índice del mismo exchange. |
| perp.unit | string | — | Unidad de los valores de base (porcentaje). |
| perp.aggregate | object | — | Agregado entre exchanges de la sección. |
| perp.aggregate.oi_weighted_pct | number | % | Base ponderada por interés abierto; las filas sin ponderación por OI quedan fuera. |
| perp.aggregate.oi_weight_usd | number | USD | Suma de las ponderaciones por interés abierto utilizadas. |
| perp.aggregate.n_oi_weighted | number | — | Filas que tenían ponderación por OI. |
| perp.aggregate.vol_weighted_pct | number | % | Base ponderada por volumen nocional de 24h. |
| perp.aggregate.vol_weight_usd | number | USD | Suma de las ponderaciones por volumen utilizadas. |
| perp.aggregate.n_vol_weighted | number | — | Filas que tenían ponderación por volumen. |
| perp.aggregate.median_pct | number | % | Mediana de la base sobre un contrato principal por exchange. |
| perp.aggregate.mean_pct | number | % | Media simple sobre el mismo conjunto que la mediana. |
| perp.aggregate.n_exchanges | number | — | Exchanges incluidos en el agregado. |
| perp.aggregate.n_contracts | number | — | Contratos incluidos en el agregado. |
| perp.aggregate.min | object | — | Exchange y contrato con la base más baja. |
| perp.aggregate.min.exchange | string | — | Id del exchange (en minúsculas). |
| perp.aggregate.min.symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| perp.aggregate.min.basis_pct | number | % | (marca − índice) ÷ índice × 100 para perpetuos y futuros con vencimiento; en los rankings, la mediana entre exchanges. |
| perp.aggregate.max | object | — | Exchange y contrato con la base más alta. |
| perp.aggregate.max.exchange | string | — | Id del exchange (en minúsculas). |
| perp.aggregate.max.symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| perp.aggregate.max.basis_pct | number | % | (marca − índice) ÷ índice × 100 para perpetuos y futuros con vencimiento; en los rankings, la mediana entre exchanges. |
| perp.aggregate.median_last_pct | number | % | Mediana de la base sobre el último precio. |
| perp.aggregate.n_exchanges_last | number | — | Exchanges incluidos en la mediana sobre el último precio. |
| perp.aggregate.weights | object | — | De dónde proceden las ponderaciones, su ventana de frescura y la antigüedad de la ponderación más antigua. |
| perp.aggregate.weights.oi | object | — | Interés abierto. |
| perp.aggregate.weights.oi.source | string | — | Endpoints públicos de origen de los que se recopilaron los datos. |
| perp.aggregate.weights.oi.fresh_window_s | number | s | Una ponderación más antigua que este valor no se utiliza. |
| perp.aggregate.weights.oi.oldest_age_s | number | s | Antigüedad de la ponderación más antigua utilizada. |
| perp.aggregate.weights.oi.side | string | — | Si la ponderación por interés abierto es por un solo lado. |
| perp.aggregate.weights.vol | object | — | Volumen. |
| perp.aggregate.weights.vol.source | string | — | Endpoints públicos de origen de los que se recopilaron los datos. |
| perp.aggregate.weights.vol.fresh_window_s | number | s | Una ponderación más antigua que este valor no se utiliza. |
| perp.aggregate.weights.vol.oldest_age_s | number | s | Antigüedad de la ponderación más antigua utilizada. |
| perp.contracts | array | — | Una fila por contrato. |
| perp.contracts[] | object | — | Una fila por contrato. |
| perp.contracts[].exchange | string | — | Id del exchange (en minúsculas). |
| perp.contracts[].symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| perp.contracts[].native_symbol | string | — | Símbolo del contrato tal como lo escribe el exchange. |
| perp.contracts[].quote | string | — | Moneda de cotización del contrato. |
| perp.contracts[].margin_type | string | — | Tipo de margen del contrato (por ejemplo, con margen en USDT o con margen en moneda). |
| perp.contracts[].multiplier | number | — | Monedas por unidad cotizada (1000 en los contratos del tipo `1000PEPE`). La base no se ve afectada. |
| perp.contracts[].mark_price | number|null | — | Precio de marca publicado por el exchange. |
| perp.contracts[].index_price | number|null | — | Precio del índice publicado por el exchange. |
| perp.contracts[].last_price | number|null | — | Último precio negociado. |
| perp.contracts[].index_kind | string|null | — | Qué es el índice: `exchange_index`, `oracle` u otro tipo que se muestra pero no se agrega. |
| perp.contracts[].basis_pct | number|null | % | (marca − índice) ÷ índice × 100 para perpetuos y futuros con vencimiento; en los rankings, la mediana entre exchanges. |
| perp.contracts[].basis_abs | number|null | — | marca − índice, en la moneda de cotización. |
| perp.contracts[].basis_last_pct | number|null | % | (último − índice) ÷ índice × 100; `null` cuando no hay ninguna operación reciente. |
| perp.contracts[].basis_last_reason | string|null | — | Por qué `basis_last_pct` es null. |
| perp.contracts[].index_lag_s | number|null | s | Segundos entre la marca de tiempo del precio de marca y la del precio del índice de la fila. |
| perp.contracts[].oi_usd | number|null | USD | Interés abierto del contrato, por un solo lado; se usa como ponderación. |
| perp.contracts[].vol_usd_24h | number|null | USD | Volumen nocional de 24h del contrato; se usa como ponderación. |
| perp.contracts[].primary | boolean | — | True para el contrato que representa a su exchange en la mediana y la media. |
| perp.contracts[].in_aggregate | boolean | — | True cuando la fila cumple las reglas de inclusión. |
| perp.contracts[].excluded_reason | string|null | — | Por qué la fila no está en el agregado. |
| perp.contracts[].last_ts | number|null | ms | Hora de la última operación. |
| perp.contracts[].observed_at | number|null | ms | Marca de tiempo que la fuente asigna a los datos. |
| perp.contracts[].received_at | number | ms | Hora en que el recolector de CoinBoss recibió los datos. |
| perp.contracts[].age_s | number | s | Segundos transcurridos desde que se recibió la fila. |
| spot_perp | object | — | Precio del perpetuo frente al precio spot del mismo exchange. |
| spot_perp.unit | string | — | Unidad de los valores de base (porcentaje). |
| spot_perp.aggregate | object | — | Agregado entre exchanges de la sección. |
| spot_perp.aggregate.oi_weighted_pct | number | % | Base ponderada por interés abierto; las filas sin ponderación por OI quedan fuera. |
| spot_perp.aggregate.oi_weight_usd | number | USD | Suma de las ponderaciones por interés abierto utilizadas. |
| spot_perp.aggregate.n_oi_weighted | number | — | Filas que tenían ponderación por OI. |
| spot_perp.aggregate.vol_weighted_pct | number | % | Base ponderada por volumen nocional de 24h. |
| spot_perp.aggregate.vol_weight_usd | number | USD | Suma de las ponderaciones por volumen utilizadas. |
| spot_perp.aggregate.n_vol_weighted | number | — | Filas que tenían ponderación por volumen. |
| spot_perp.aggregate.median_pct | number | % | Mediana de la base sobre un contrato principal por exchange. |
| spot_perp.aggregate.mean_pct | number | % | Media simple sobre el mismo conjunto que la mediana. |
| spot_perp.aggregate.n_exchanges | number | — | Exchanges incluidos en el agregado. |
| spot_perp.aggregate.n_contracts | number | — | Contratos incluidos en el agregado. |
| spot_perp.aggregate.min | object | — | Exchange y contrato con la base más baja. |
| spot_perp.aggregate.min.exchange | string | — | Id del exchange (en minúsculas). |
| spot_perp.aggregate.min.symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| spot_perp.aggregate.min.basis_pct | number | % | (marca − índice) ÷ índice × 100 para perpetuos y futuros con vencimiento; en los rankings, la mediana entre exchanges. |
| spot_perp.aggregate.max | object | — | Exchange y contrato con la base más alta. |
| spot_perp.aggregate.max.exchange | string | — | Id del exchange (en minúsculas). |
| spot_perp.aggregate.max.symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| spot_perp.aggregate.max.basis_pct | number | % | (marca − índice) ÷ índice × 100 para perpetuos y futuros con vencimiento; en los rankings, la mediana entre exchanges. |
| spot_perp.pairs | array | — | Una fila por par perpetuo / spot del mismo exchange. |
| spot_perp.pairs[] | object | — | Una fila por par perpetuo / spot del mismo exchange. |
| spot_perp.pairs[].exchange | string | — | Id del exchange (en minúsculas). |
| spot_perp.pairs[].symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| spot_perp.pairs[].spot_symbol | string | — | Mercado spot usado como componente spot. |
| spot_perp.pairs[].quote | string | — | Moneda de cotización del contrato. |
| spot_perp.pairs[].spot_mult | number | — | Factor aplicado al precio spot para que ambos componentes coticen la misma cantidad. |
| spot_perp.pairs[].futures_price | number|null | — | Precio del perpetuo utilizado; véase `price_kind`. |
| spot_perp.pairs[].price_kind | string|null | — | Qué precio del perpetuo se usó: `last` o `mark`. |
| spot_perp.pairs[].spot_price | number | — | Último precio spot, tras aplicar `spot_mult`. |
| spot_perp.pairs[].basis_pct | number|null | % | (marca − índice) ÷ índice × 100 para perpetuos y futuros con vencimiento; en los rankings, la mediana entre exchanges. |
| spot_perp.pairs[].basis_last_pct | number|null | % | (último − índice) ÷ índice × 100; `null` cuando no hay ninguna operación reciente. |
| spot_perp.pairs[].basis_mark_pct | number|null | % | (marca − spot) ÷ spot × 100. |
| spot_perp.pairs[].leg_gap_s | number | s | Segundos entre las marcas de tiempo de los dos componentes. |
| spot_perp.pairs[].spot_time_kind | string | — | Qué es la marca de tiempo spot (hora de la operación u hora de recepción). |
| spot_perp.pairs[].spot_vol_24h | number|null | — | Volumen negociado en 24h del mercado spot, en su moneda de cotización. |
| spot_perp.pairs[].oi_usd | number|null | USD | Interés abierto del contrato, por un solo lado; se usa como ponderación. |
| spot_perp.pairs[].vol_usd_24h | number|null | USD | Volumen nocional de 24h del contrato; se usa como ponderación. |
| spot_perp.pairs[].primary | boolean | — | True para el contrato que representa a su exchange en la mediana y la media. |
| spot_perp.pairs[].in_aggregate | boolean | — | True cuando la fila cumple las reglas de inclusión. |
| spot_perp.pairs[].excluded_reason | string|null | — | Por qué la fila no está en el agregado. |
| spot_perp.pairs[].received_at | number | ms | Hora en que el recolector de CoinBoss recibió los datos. |
| spot_perp.pairs[].spot_received_at | number | ms | Hora en que se recibió el componente spot. |
| delivery | object | — | Base de los futuros con vencimiento (con fecha). |
| delivery.unit | string | — | Unidad de los valores de base (porcentaje). |
| delivery.contracts | array | — | Una fila por contrato. |
| delivery.contracts[] | object | — | Una fila por contrato. |
| delivery.contracts[].exchange | string | — | Id del exchange (en minúsculas). |
| delivery.contracts[].symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| delivery.contracts[].native_symbol | string | — | Símbolo del contrato tal como lo escribe el exchange. |
| delivery.contracts[].quote | string | — | Moneda de cotización del contrato. |
| delivery.contracts[].margin_type | string | — | Tipo de margen del contrato (por ejemplo, con margen en USDT o con margen en moneda). |
| delivery.contracts[].expiry_ts | number | ms | Hora de vencimiento del contrato con vencimiento. |
| delivery.contracts[].days_to_expiry | number | days | Días hasta el vencimiento. |
| delivery.contracts[].mark_price | number | — | Precio de marca publicado por el exchange. |
| delivery.contracts[].last_price | number|null | — | Último precio negociado. |
| delivery.contracts[].index_price | number | — | Precio del índice publicado por el exchange. |
| delivery.contracts[].index_kind | string | — | Qué es el índice: `exchange_index`, `oracle` u otro tipo que se muestra pero no se agrega. |
| delivery.contracts[].basis_pct | number | % | (marca − índice) ÷ índice × 100 para perpetuos y futuros con vencimiento; en los rankings, la mediana entre exchanges. |
| delivery.contracts[].annualized_pct | number|null | % per year | basis_pct × 365 ÷ días hasta el vencimiento, interés simple; `null` durante el último día. |
| delivery.contracts[].basis_reason | null | — | Por qué `basis_pct` es null. |
| delivery.contracts[].index_lag_s | number | s | Segundos entre la marca de tiempo del precio de marca y la del precio del índice de la fila. |
| delivery.contracts[].basis_last_pct | number|null | % | (último − índice) ÷ índice × 100; `null` cuando no hay ninguna operación reciente. |
| delivery.contracts[].annualized_last_pct | number|null | % per year | Base anualizada con el último precio negociado. |
| delivery.contracts[].spot_symbol | string|null | — | Mercado spot usado como componente spot. |
| delivery.contracts[].spot_price | number|null | — | Último precio spot, tras aplicar `spot_mult`. |
| delivery.contracts[].spot_price_kind | string|null | — | Qué precio de futuros se comparó con el spot. |
| delivery.contracts[].basis_spot_pct | number|null | % | (futuros − spot del mismo exchange) ÷ spot × 100. |
| delivery.contracts[].annualized_spot_pct | number|null | % per year | Base anualizada frente al spot del mismo exchange. |
| delivery.contracts[].annualized_reason | string|null | — | Por qué el valor anualizado es null (por ejemplo `expiry_lt_1d`). |
| delivery.contracts[].oi_usd | number|null | USD | Interés abierto del contrato, por un solo lado; se usa como ponderación. |
| delivery.contracts[].vol_usd_24h | number|null | USD | Volumen nocional de 24h del contrato; se usa como ponderación. |
| delivery.contracts[].last_ts | number|null | ms | Hora de la última operación. |
| delivery.contracts[].observed_at | number|null | ms | Marca de tiempo que la fuente asigna a los datos. |
| delivery.contracts[].received_at | number | ms | Hora en que el recolector de CoinBoss recibió los datos. |
| delivery.contracts[].age_s | number | s | Segundos transcurridos desde que se recibió la fila. |
| coverage | object | — | Qué se incluye y qué no en las cifras. Conviene revisarlo antes de comparar totales con otra fuente. |
| coverage.included_exchanges | array | — | Fuentes cuyos datos frescos se incluyen. |
| coverage.included_exchanges[] | string | — | Fuentes cuyos datos frescos se incluyen. |
| coverage.unavailable | array | — | Fuentes que no pudieron incluirse, cada una con su motivo. Nunca se cuentan como 0. |
| coverage.unavailable[] | object | — | Fuentes que no pudieron incluirse, cada una con su motivo. Nunca se cuentan como 0. |
| coverage.unavailable[].exchange | string | — | Id del exchange (en minúsculas). |
| coverage.unavailable[].reason | string | — | Código de motivo legible por máquina. |
| coverage.unavailable[].detail | string | — | Explicación del motivo legible por personas. |
| coverage.stale_excluded | array | — | Filas excluidas porque su última actualización está fuera de la ventana de frescura. vacío en las muestras usadas para generar esta tabla |
| coverage.missing_fields | array | — | Exchanges que no publican alguno de los precios. |
| coverage.excluded_from_aggregate | array | — | Filas que se muestran pero quedan fuera del agregado, cada una con su motivo. |
| coverage.excluded_from_aggregate[] | object | — | Filas que se muestran pero quedan fuera del agregado, cada una con su motivo. |
| coverage.excluded_from_aggregate[].exchange | string | — | Id del exchange (en minúsculas). |
| coverage.excluded_from_aggregate[].symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| coverage.excluded_from_aggregate[].section | string | — | Sección a la que pertenece la fila. |
| coverage.excluded_from_aggregate[].reason | string | — | Código de motivo legible por máquina. |
| coverage.stock_excluded | array | — | Perpetuos de acciones que comparten el ticker y se eliminaron. vacío en las muestras usadas para generar esta tabla |
| coverage.dropped_delisted_rows | number | — | Filas descartadas porque el contrato dejó de actualizarse. |
| coverage.delivery_unavailable | array | — | Exchanges cuyos contratos con vencimiento no se recopilan. |
| coverage.delivery_unavailable[] | object | — | Exchanges cuyos contratos con vencimiento no se recopilan. |
| coverage.delivery_unavailable[].exchange | string | — | Id del exchange (en minúsculas). |
| coverage.delivery_unavailable[].reason | string | — | Código de motivo legible por máquina. |
| coverage.delivery_unavailable[].detail | string | — | Explicación del motivo legible por personas. |
| method | object | — | Enunciado en texto plano de las fórmulas utilizadas en esta respuesta, con una entrada por campo. |
| method.perp.basis_pct | string | — | Nota de fórmula de `perp.basis_pct`, en texto plano. |
| method.perp.basis_last_pct | string | — | Nota de fórmula de `perp.basis_last_pct`, en texto plano. |
| method.perp.aggregate.oi_weighted_pct | string | — | Nota de fórmula de `perp.aggregate.oi_weighted_pct`, en texto plano. |
| method.perp.aggregate.vol_weighted_pct | string | — | Nota de fórmula de `perp.aggregate.vol_weighted_pct`, en texto plano. |
| method.perp.aggregate.median_pct | string | — | Nota de fórmula de `perp.aggregate.median_pct`, en texto plano. |
| method.perp.aggregate.inclusion | string | — | Nota de fórmula de `perp.aggregate.inclusion`, en texto plano. |
| method.spot_perp.basis_pct | string | — | Nota de fórmula de `spot_perp.basis_pct`, en texto plano. |
| method.spot_perp.aggregate.inclusion | string | — | Nota de fórmula de `spot_perp.aggregate.inclusion`, en texto plano. |
| method.delivery.basis_pct | string | — | Nota de fórmula de `delivery.basis_pct`, en texto plano. |
| method.delivery.annualized_pct | string | — | Nota de fórmula de `delivery.annualized_pct`, en texto plano. |
| method.index_lag_s | string | — | Nota de fórmula de `index_lag_s`, en texto plano. |
| method.multiplier | string | — | Nota de fórmula de `multiplier`, en texto plano. |
| meta | object | — | Linaje y frescura de esta respuesta. |
| meta.schema | string | — | Id de esquema de esta respuesta. Solo cambia cuando un campo existente cambia de significado o de tipo. |
| meta.source | array | — | Endpoints públicos de origen de los que se recopilaron los datos. |
| meta.source[] | object | — | Endpoints públicos de origen de los que se recopilaron los datos. |
| meta.source[].exchange | string | — | Id del exchange (en minúsculas). |
| meta.source[].endpoint | string | — | Endpoint público de la fuente que lee el recolector (se muestra por linaje; los clientes nunca lo llaman). |
| meta.observed_at | number | ms | Marca de tiempo que la fuente asigna a los datos. |
| meta.received_at | number | ms | Hora en que el recolector de CoinBoss recibió los datos. |
| meta.fetched_at | number | ms | Hora en que se compuso esta respuesta. |
| meta.window | string | — | Ventana temporal que cubren las cifras. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN o UNAVAILABLE, según las marcas de tiempo de los datos y la cobertura. |
| meta.is_stale | boolean | — | True cuando los datos son más antiguos que su ventana de frescura. |
| meta.cache_ttl_s | number | s | Tiempo de vida en caché de esta respuesta. |
| meta.fallback | string | — | Qué devuelve el endpoint cuando falla el recolector o una fuente. |
| meta.collector_heartbeat_age_s | number | s | Segundos transcurridos desde que el recolector informó por última vez de que está en ejecución. |
| coverage.missing_fields[] | object | — | Exchanges que no publican alguno de los precios. |
| coverage.missing_fields[].exchange | string | — | Id del exchange (en minúsculas). |
| coverage.missing_fields[].symbol | string | — | Símbolo del contrato en el formato de almacenamiento de CoinBoss. |
| coverage.missing_fields[].missing | string | — | Precio que el exchange no publica (`mark` o `index`). |
Generada 2026-11-11 23:00 UTC a partir de 4 respuestas reales.
Respuesta de ejemplo
/api/sd/basis?coin=BTC · Respuesta real capturada 2026-11-13 03:52:48 UTC. Los arrays y mapas largos se abrevian para su visualización: meta.source tenía 20 elementos; perp.contracts tenía 37 elementos; spot_perp.pairs tenía 22 elementos; delivery.contracts tenía 53 elementos; coverage.unavailable tenía 4 elementos; coverage.included_exchanges tenía 20 elementos.
- "success"true
- "schema""coinboss.sd.basis/1"
- "now"1794541956692
- "coin""BTC"
- "perp"
- "unit""percent"
- "aggregate"
- "contracts"
- "spot_perp"
- "unit""percent"
- "aggregate"
- "pairs"
- "delivery"
- "unit""percent"
- "contracts"
- "coverage"
- "included_exchanges"
- "unavailable"
- "stale_excluded"
- "missing_fields"
- "excluded_from_aggregate"
- "stock_excluded"
- "dropped_delisted_rows"0
- "delivery_unavailable"
- "method"
- "perp.basis_pct""(mark_price - index_price) / index_price * 100, percent; mark and index are both published by the same exchange for that…"
- "perp.basis_last_pct""(last_price - index_price) / index_price * 100; null when the exchange gives no last-trade price or the last trade is mo…"
- "perp.aggregate.oi_weighted_pct""sum(basis_pct * oi_usd) / sum(oi_usd) over all included perpetual contracts that have an open-interest weight; oi_usd fr…"
- "perp.aggregate.vol_weighted_pct""same with 24h notional volume (market_tickers.volume_usd / sd_contract_latest.vol_usd_24h, <= 1 h old) as weight"
- "perp.aggregate.median_pct""median of basis_pct over one primary contract per exchange (largest OI, then volume, then USDT-margined); mean_pct is th…"
- "perp.aggregate.inclusion""row is fresh (<= 180 s), basis_pct is not null, index_kind is exchange_index or oracle, the contract traded within 24 h …"
- "spot_perp.basis_pct""(perp last_price, or mark_price when last is unusable - spot last price * spot_mult) / (spot last price * spot_mult) * 1…"
- "spot_perp.aggregate.inclusion""as perp, plus spot 24h turnover >= 10000 (quote currency) when the exchange reports it"
- "delivery.basis_pct""(F - S) / S * 100 with F = mark_price and S = the exchange index price of the underlying; basis_last_pct uses F = last_p…"
- "delivery.annualized_pct""basis_pct * 365 / days_to_expiry, simple (not compounded); null when days_to_expiry < 1; days_to_expiry = (expiry_ts - p…"
- "index_lag_s""seconds between the mark timestamp and the index timestamp of the row; 0 when the exchange returns both in one response;…"
- "multiplier""contract units per coin (1000PEPE, kPEPE = 1000); mark and index carry the same multiplier so basis_pct is unaffected; s…"
- "meta"
- "schema""coinboss.sd.basis/1"
- "source"
- "observed_at"1794539247345
- "received_at"1794539247425
- "fetched_at"1794541956692
- "window""latest"
- "quality""STALE"
- "is_stale"true
- "cache_ttl_s"20
- "fallback""rows older than 180 s are excluded; if no exchange is fresh the last stored rows (<= 1 h old) are served with is_stale=t…"
- "collector_heartbeat_age_s"2759
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ámetros | HTTP | Latencia | Resultado |
|---|---|---|---|
| coin=ETH | 200 | 28 ms | Correcto STALE |
| coin=SOL | 200 | 26 ms | Correcto STALE |
| coin=PEPE | 200 | 26 ms | Correcto STALE |
| — | 400 | 2 ms | Correcto devuelve el error esperado |
Comprobado 2026-11-13 03:28:06 UTC
Detalles
- Autenticación
- Ninguna. Endpoint público.
- Límite de solicitudes
- 1200 solicitudes por minuto por IP
- Caché del servidor
- 20s
- Microcaché de borde
- 10s
- Frecuencia de actualización
- Ronda del recolector cada 60 segundos; una fila es fresca durante 180 segundos. Las instantáneas horarias alimentan el historial.
- Ventana
- Último valor por contrato.
- Fuentes de datos
- Precio de marca, precio del índice y último precio publicados por 21 exchanges de derivados, más el precio spot del mismo exchange, recopilados y almacenados por CoinBoss (sd_px_latest, sd_px_hourly).
- Cobertura de exchanges
- 21 exchanges. Los exchanges que no publican un precio del índice o un precio de marca se listan en `coverage.unavailable`; las filas cuyos dos componentes de precio distan más de 60 segundos devuelven `null`. Las filas que quedan fuera del agregado se listan en `coverage.excluded_from_aggregate` con el motivo.
- Paginación
- Sin paginación.
- Ordenación
- Primero los contratos con mayor interés abierto.
- Unidades
- All basis values in percent. Prices in the quote currency of the contract (USDT / USDC / USD). `oi_usd` single-sided.
- Método
- Perpetual: basis_pct = (mark − index) ÷ index × 100. Spot-perp: (perpetual price − spot price) ÷ spot price × 100, same exchange and quote currency. Delivery: basis_pct = (futures − index) ÷ index × 100; annualized_pct = basis_pct × 365 ÷ days to expiry (simple interest; `null` inside the last day). Aggregates use one primary contract per exchange; a row enters only if it is fresh, traded within 24 hours and |basis| ≤ 10 %.
- Marcas de tiempo
- Milisegundos de época Unix (UTC), salvo que la descripción del campo indique otra cosa
- Formato de respuesta
- json
- Estabilidad
- Estable
- Disponible desde
- 2026-11-11
Estado en vivo
El endpoint informa de una calidad de datos STALE
Disponibilidad, últimos 30 días
100% de 406 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ódigo | HTTP | Significado | Qué hacer |
|---|---|---|---|
| INVALID_PARAM | 400 | Falta 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. |
| UNAUTHORIZED | 401 | Se 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. |
| FORBIDDEN | 403 | La ruta no forma parte de la API pública (interna o solo para cuentas). | No reintente. |
| NOT_FOUND | 404 | Ruta desconocida, o la moneda / el exchange / el fondo solicitado no existe. | No reintente; compruebe la ruta y los identificadores en el catálogo. |
| RATE_LIMITED | 429 | Má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. |
| INTERNAL | 500 | Error 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_FAILED | 503 | La 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. |
| UNAVAILABLE | 501 / 503 | El 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_FAILED | 200 | Algunos 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
/api/sd/basisDegradadostring — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.
https://www.coinboss.com/api/sd/basis?coin=BTCMás en esta categoría
- Base de futuros (todas las plataformas) /api/sd/basis
- Historial de la base (horario) /api/sd/basis/history
- Monedas ordenadas por base /api/sd/basis/rank
- Lista de base futuros-spot /api/derivatives/basis
- Diferencial diario del precio de BTC entre Coinbase y Kraken /api/p3/cb-kr-spread
- Índice de prima de Bitcoin de Coinbase /api/p3/coinbase-premium
- Lista del índice de prima de perpetuos /api/p3/premium-index
- Historial del índice de prima de una moneda /api/p3/premium-index/history
- Velas del índice de prima /api/p3/premium-index/klines
- Prima OTC de USDT frente a los tipos de cambio fiat /api/usdt-premium
- Lista completa de base futuros-spot /api/basis/list