/api/sd/options/history
GETDegradadoSTALE

Historial de opciones (horario)

Serie horaria del interés abierto, el volumen, el ratio put/call, la IV ATM o el max pain de opciones de una moneda. El historial comienza cuando CoinBoss empezó a recopilar (2026-11-11); las horas anteriores no se reconstruyen.

GET/api/sd/options/history
Cobertura parcial. La recopilación de esta serie comenzó el 2026-11-11. Hasta que se complete el rango solicitado, la respuesta devuelve los puntos existentes, informa de `points_count` frente a `expected_points` y marca `meta.quality = "PARTIAL"`. Las horas que faltan no se interpolan.
Degradado. El endpoint informa de una calidad de datos STALE

Solicitud

Parámetros de consulta

NombreTipoObligatorioValor por defectoValores admitidosDescripción
coinstringObligatorio——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
metricstringObligatorio—oi, volume, pcr, atm_iv, max_painSerie que se devuelve. Ejemplo: oi
rangestringOpcional7d24h, 7d, 30d, 90dRango retrospectivo; un punto por hora, 2160 puntos como máximo.
exchangestringOpcionalallall, deribit, binance, bybit, okx, gate, coincallUna plataforma, o `all` para el agregado entre plataformas.

Solicitud de ejemplo

curl -s "https://www.coinboss.com/api/sd/options/history?coin=BTC&metric=oi"

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 }`.
schemastring—Id de esquema de esta respuesta. Solo cambia cuando un campo existente cambia de significado o de tipo.
nownumbermsHora del servidor en el momento de generar la respuesta.
coinstring—Símbolo de la moneda (en mayúsculas).
exchangestring—Id del exchange (en minúsculas).
metricstring—Serie seleccionada por el parámetro `metric`.
rangestring—Rango retrospectivo aplicado.
intervalstring—Separación entre los puntos de la serie.
points_countnumber—Número de puntos devueltos.
expected_pointsnumber—Número de puntos horarios que contendría el rango solicitado cuando esté completo.
history_started_atnumbermsHora de la primera hora recopilada por CoinBoss.
first_tnumbermsHora del primer punto devuelto.
last_tnumbermsHora del último punto devuelto.
pointsarray—Puntos de la serie, del más antiguo al más reciente.
points[]object—Puntos de la serie, del más antiguo al más reciente.
points[].tnumbermsInicio del tramo temporal.
points[].snapshot_atnumbermsHora de la ronda del recolector a partir de la cual se escribió el punto.
points[].n_exchangesnumber—Número de plataformas en el punto.
points[].exchangesarray—Plataformas incluidas en esta fila.
points[].exchanges[]string—Plataformas incluidas en esta fila.
points[].oi_usdnumberUSDInterés abierto como nocional USD: cantidad de monedas × precio del índice spot. Por un solo lado. puede faltar
points[].call_oi_usdnumberUSDInterés abierto de calls, nocional USD. puede faltar
points[].put_oi_usdnumberUSDInterés abierto de puts, nocional USD. puede faltar
points[].oi_coinnumbercoinInterés abierto en unidades de la moneda subyacente. puede faltar
points[].index_pricenumberUSDPrecio del índice spot usado para la conversión a USD (en los agregados, la mediana de los precios del índice propios de las plataformas). puede faltar
coverageobject—Qué se incluye y qué no en las cifras. Conviene revisarlo antes de comparar totales con otra fuente.
coverage.included_exchangesarray—Fuentes cuyos datos frescos se incluyen.
coverage.included_exchanges[]string—Fuentes cuyos datos frescos se incluyen.
coverage.unavailablearray—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[].exchangestring—Id del exchange (en minúsculas).
coverage.unavailable[].reasonstring—Código de motivo legible por máquina.
coverage.unavailable[].detailstring—Explicación del motivo legible por personas.
coverage.stale_excludedarray—Filas excluidas porque su última actualización está fuera de la ventana de frescura. vacío en las muestras usadas para generar esta tabla
methodobject—Enunciado en texto plano de las fórmulas utilizadas en esta respuesta, con una entrada por campo.
method.pointsstring—Nota de fórmula de `points`, en texto plano.
method.exchangesstring—Nota de fórmula de `exchanges`, en texto plano.
method.history_depthstring—Nota de fórmula de `history_depth`, en texto plano.
method.oi_usdstring—Nota de fórmula de `oi_usd`, en texto plano. puede faltar
metaobject—Linaje y frescura de esta respuesta.
meta.schemastring—Id de esquema de esta respuesta. Solo cambia cuando un campo existente cambia de significado o de tipo.
meta.sourcearray—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[].exchangestring—Id del exchange (en minúsculas).
meta.source[].endpointstring—Endpoint público de la fuente que lee el recolector (se muestra por linaje; los clientes nunca lo llaman).
meta.observed_atnull—Marca de tiempo que la fuente asigna a los datos.
meta.received_atnumbermsHora en que el recolector de CoinBoss recibió los datos.
meta.fetched_atnumbermsHora en que se compuso esta respuesta.
meta.windowstring—Ventana temporal que cubren las cifras.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN o UNAVAILABLE, según las marcas de tiempo de los datos y la cobertura.
meta.is_staleboolean—True cuando los datos son más antiguos que su ventana de frescura.
meta.cache_ttl_snumbersTiempo de vida en caché de esta respuesta.
meta.fallbackstring—Qué devuelve el endpoint cuando falla el recolector o una fuente.
points[].pcr_oinumberratioInterés abierto de puts ÷ interés abierto de calls, en unidades de moneda; `null` cuando el lado de calls es 0. puede faltar
points[].pcr_volnumberratioVolumen de 24h de puts ÷ volumen de 24h de calls, en unidades de moneda; `null` cuando el lado de calls es 0. puede faltar
method.pcr_oistring—Nota de fórmula de `pcr_oi`, en texto plano. puede faltar
method.pcr_volstring—Nota de fórmula de `pcr_vol`, en texto plano. puede faltar
points[].atm_iv_30dnumber%IV ATM interpolada linealmente a un vencimiento constante de 30 días; `null` cuando los 30 días no quedan entre dos vencimientos. puede faltar
method.atm_ivstring—Nota de fórmula de `atm_iv`, en texto plano. puede faltar
method.atm_iv_30dstring—Nota de fórmula de `atm_iv_30d`, en texto plano. puede faltar

Generada 2026-11-11 23:00 UTC a partir de 3 respuestas reales.

Respuesta de ejemplo

/api/sd/options/history?coin=BTC&metric=oi · Respuesta real capturada 2026-11-13 03:58:20 UTC. Los arrays y mapas largos se abrevian para su visualización: points tenía 23 elementos; meta.source tenía 6 elementos; coverage.unavailable tenía 12 elementos.

  • {
    • "success": true,
    • "schema": "coinboss.sd.options/1",
    • "now": 1794542300888,
    • "coin": "BTC",
    • "exchange": "all",
    • "metric": "oi",
    • "range": "7d",
    • "interval": "1h",
    • "points_count": 23,
    • "expected_points": 168,
    • "history_started_at": 1794416400000,
    • "first_t": 1794416400000,
    • "last_t": 1794520800000,
    • "points": [
      • { … 9 },
      • { … 9 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 6 ],
      • "unavailable": [ … 2 ],
      • "stale_excluded": []
      },
    • "method": {
      • "points": "one point per UTC hour bucket (t = bucket start, ms); the value is the LAST collector snapshot inside that hour (snapshot_at); hours in which the collector prod…",
      • "exchanges": "exchanges that were fresh and therefore included in that hour's figure; a change in this list between points explains level shifts in the all-exchange series",
      • "history_depth": "hourly summaries are kept for 90 days; the series starts when the collector was first deployed (history_started_at), so fewer points than the requested range ma…",
      • "oi_usd": "sum over contracts of oi_coin x that exchange's spot index price (USDT/USDC treated 1:1 as USD); oi_coin is open interest in units of the underlying coin after …"
      },
    • "meta": {
      • "schema": "coinboss.sd.options/1",
      • "source": [ … 2 ],
      • "observed_at": null,
      • "received_at": 1794522484809,
      • "fetched_at": 1794542300888,
      • "window": "7d",
      • "quality": "STALE",
      • "is_stale": true,
      • "cache_ttl_s": 300,
      • "fallback": "hours without a collector snapshot are absent from the series (no interpolation); PARTIAL means fewer hourly points exist than the requested range (history shor…"
      }
    }

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=ETH&range=24h&metric=pcr2002 msCorrecto STALE
coin=BTC&metric=atm_iv2003 msCorrecto STALE
coin=BTC4001 msCorrecto devuelve el error esperado

Comprobado 2026-11-13 03:58:20 UTC

Detalles

Autenticación
Ninguna. Endpoint público.
Límite de solicitudes
1200 solicitudes por minuto por IP
Caché del servidor
5m
Microcaché de borde
10s
Frecuencia de actualización
Un punto por hora, escrito a partir de la última ronda del recolector de esa hora.
Ventana
24h / 7d / 30d / 90d, puntos horarios.
Fuentes de datos
Endpoints REST públicos de opciones de Deribit, Binance, Bybit, OKX, Gate y Coincall, recopilados y almacenados por CoinBoss (sd_opt_latest, sd_opt_summary_hourly). No interviene ningún agregador externo.
Cobertura de exchanges
Seis plataformas de opciones. Una moneda sin opciones listadas en las plataformas seleccionadas devuelve HTTP 200 con campos null, `meta.quality = "UNAVAILABLE"` y el motivo en `coverage.unavailable`. Las plataformas sin un feed público de opciones también se listan ahí.
Paginación
Sin paginación; `range` limita el número de puntos.
Ordenación
Tiempo ascendente.
Unidades
USD notional = contracts × contract size × spot index price of the venue. `*_coin` fields are in units of the underlying coin. Implied volatility is in percent (55 = 55 %). `vol_premium_usd_24h` is premium turnover, reported separately and never added to notional volume.
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

DegradadoComprobado 2026-11-13 03:58:20 UTCHTTP 2002 msEl esquema coincideAntigüedad del dato más reciente: 6h

El endpoint informa de una calidad de datos STALE

Disponibilidad, últimos 30 días

99.75% de 407 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/sd/options/historyDegradado
Parámetros

string — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.

string — Series to return.

string · por defecto 7d — Look-back range; one point per hour, 2160 points at most.

string · por defecto all — One venue, or `all` for the cross-venue aggregate.

URL de la solicitudhttps://www.coinboss.com/api/sd/options/history?coin=BTC&metric=oi
Elija un endpoint y pulse «Enviar solicitud». Aquí aparecerán la respuesta, las cabeceras y los tiempos.