Opciones por precio de ejercicio
Interés abierto y volumen de 24h por precio de ejercicio, con calls y puts por separado. Con un único vencimiento, la respuesta incluye además la curva de max pain (pago en cada precio de ejercicio).
/api/sd/options/strikesSolicitud
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 |
| expiry | string | Opcional | all | — | `all`, o una fecha de vencimiento UTC en formato `YYYY-MM-DD`. La curva de max pain solo se devuelve para un único vencimiento. Una fecha desconocida devuelve 404 y lista las fechas disponibles. |
| exchange | string | Opcional | all | all, deribit, binance, bybit, okx, gate, coincall | Una plataforma, o `all` para el agregado entre plataformas. |
Solicitud de ejemplo
curl -s "https://www.coinboss.com/api/sd/options/strikes?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). |
| exchange | string | — | Id del exchange (en minúsculas). |
| expiry | string | — | Fecha de vencimiento (UTC), `YYYY-MM-DD`, o `all`. |
| expiry_ts | null | — | Hora de vencimiento. |
| days_left | null | days | Días hasta el vencimiento. |
| index_price | number | USD | Precio del índice spot usado para la conversión a USD (en los agregados, la mediana de los precios del índice propios de las plataformas). |
| n_strikes | number | — | Número de precios de ejercicio devueltos. |
| max_pain | null | USD | Precio de ejercicio en el que el pago total a los titulares de opciones al vencimiento es mínimo. |
| max_pain_usd | null | USD | Pago total a los titulares de opciones si el vencimiento se liquidara al precio de ejercicio de max pain. |
| n_contracts | number | — | Número de contratos de opciones incluidos. |
| oi_usd | number | USD | Interés abierto como nocional USD: cantidad de monedas × precio del índice spot. Por un solo lado. |
| call_oi_usd | number | USD | Interés abierto de calls, nocional USD. |
| put_oi_usd | number | USD | Interés abierto de puts, nocional USD. |
| oi_coin | number | coin | Interés abierto en unidades de la moneda subyacente. |
| call_oi_coin | number | coin | Interés abierto de calls en unidades de la moneda subyacente. |
| put_oi_coin | number | coin | Interés abierto de puts en unidades de la moneda subyacente. |
| vol_usd_24h | number | USD | Volumen nocional de 24h: cantidad de monedas negociada × precio actual del índice spot. No es el volumen de primas. |
| call_vol_usd_24h | number | USD | Volumen nocional de 24h de calls. |
| put_vol_usd_24h | number | USD | Volumen nocional de 24h de puts. |
| vol_coin_24h | number | coin | Cantidad negociada en 24h en unidades de la moneda subyacente. |
| call_vol_coin_24h | number | coin | Cantidad negociada en 24h de calls, en moneda. |
| put_vol_coin_24h | number | coin | Cantidad negociada en 24h de puts, en moneda. |
| vol_premium_usd_24h | number | USD | Volumen de primas de 24h (precio de la opción × cantidad) donde la plataforma lo publica; `null` en el resto. Nunca se suma al volumen nocional. |
| pcr_oi | number | ratio | Interés abierto de puts ÷ interés abierto de calls, en unidades de moneda; `null` cuando el lado de calls es 0. |
| pcr_vol | number | ratio | Volumen de 24h de puts ÷ volumen de 24h de calls, en unidades de moneda; `null` cuando el lado de calls es 0. |
| expiries_available | array | — | Fechas de vencimiento que actualmente tienen contratos. |
| expiries_available[] | string | — | Fechas de vencimiento que actualmente tienen contratos. |
| strikes | array | — | Una fila por precio de ejercicio, en orden ascendente. |
| strikes[] | object | — | Una fila por precio de ejercicio, en orden ascendente. |
| strikes[].strike | number | USD | Precio de ejercicio. |
| strikes[].call_oi_coin | number | coin | Interés abierto de calls en unidades de la moneda subyacente. |
| strikes[].put_oi_coin | number | coin | Interés abierto de puts en unidades de la moneda subyacente. |
| strikes[].call_oi_usd | number | USD | Interés abierto de calls, nocional USD. |
| strikes[].put_oi_usd | number | USD | Interés abierto de puts, nocional USD. |
| strikes[].call_vol_coin_24h | number | coin | Cantidad negociada en 24h de calls, en moneda. |
| strikes[].put_vol_coin_24h | number | coin | Cantidad negociada en 24h de puts, en moneda. |
| strikes[].call_vol_usd_24h | number | USD | Volumen nocional de 24h de calls. |
| strikes[].put_vol_usd_24h | number | USD | Volumen nocional de 24h de puts. |
| strikes[].pain_usd | null | USD | Pago total a los titulares de opciones si el vencimiento se liquidara a este precio de ejercicio. |
| strikes[].call_pain_usd | null | USD | Pago a los titulares de calls si el vencimiento se liquidara a este precio de ejercicio. |
| strikes[].put_pain_usd | null | USD | Pago a los titulares de puts si el vencimiento se liquidara a este precio de ejercicio. |
| 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.field_gaps | array | — | Columnas que una plataforma no publica; son `null` para esa plataforma. |
| coverage.field_gaps[] | object | — | Columnas que una plataforma no publica; son `null` para esa plataforma. |
| coverage.field_gaps[].exchange | string | — | Id del exchange (en minúsculas). |
| coverage.field_gaps[].fields | array | — | Nombres de las columnas ausentes. |
| coverage.field_gaps[].fields[] | string | — | Nombres de las columnas ausentes. |
| coverage.field_gaps[].kind | string | — | Familia de contratos: `inverse` (liquidados en moneda) o `linear` (liquidados en stablecoin). |
| method | object | — | Enunciado en texto plano de las fórmulas utilizadas en esta respuesta, con una entrada por campo. |
| method.oi_usd | string | — | Nota de fórmula de `oi_usd`, en texto plano. |
| method.vol_usd_24h | string | — | Nota de fórmula de `vol_usd_24h`, en texto plano. |
| method.pcr_oi | string | — | Nota de fórmula de `pcr_oi`, en texto plano. |
| method.max_pain | string | — | Nota de fórmula de `max_pain`, en texto plano. |
| method.strikes | string | — | Nota de fórmula de `strikes`, en texto plano. |
| method.pain_usd | string | — | Nota de fórmula de `pain_usd`, 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. |
Generada 2026-11-11 23:00 UTC a partir de 3 respuestas reales.
Respuesta de ejemplo
/api/sd/options/strikes?coin=BTC · Respuesta real capturada 2026-11-13 03:52:55 UTC. Los arrays y mapas largos se abrevian para su visualización: strikes tenía 146 elementos; meta.source tenía 6 elementos; expiries_available tenía 12 elementos; coverage.field_gaps tenía 4 elementos; coverage.unavailable tenía 12 elementos; coverage.stale_included tenía 6 elementos.
- "success"true
- "schema""coinboss.sd.options/1"
- "now"1794541975432
- "coin""BTC"
- "exchange""all"
- "expiry""all"
- "expiry_ts"null
- "days_left"null
- "index_price"71498.15576087
- "n_strikes"146
- "max_pain"null
- "max_pain_usd"null
- "n_contracts"5792
- "oi_usd"32670143083.84
- "call_oi_usd"18276964561.96
- "put_oi_usd"14393178521.88
- "oi_coin"457419.65
- "call_oi_coin"255899.54
- "put_oi_coin"201520.11
- "vol_usd_24h"4295495191.7
- "call_vol_usd_24h"2031780368.24
- "put_vol_usd_24h"2263714823.46
- "vol_coin_24h"60122.56
- "call_vol_coin_24h"28436.77
- "put_vol_coin_24h"31685.79
- "vol_premium_usd_24h"34033631.12
- "pcr_oi"0.7875
- "pcr_vol"1.1143
- "expiries_available"
- "2026-11-13"
- "2026-11-14"
- "2026-11-15"
- "2026-11-16"
- "2026-11-20"
- "2026-11-27"
- "2026-12-04"
- "2026-12-25"
- "strikes"
- "coverage"
- "included_exchanges"
- "unavailable"
- "stale_excluded"
- "field_gaps"
- "stale_included"
- "method"
- "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 …"
- "vol_usd_24h""NOTIONAL 24h volume = sum of vol_coin (24h traded quantity in underlying coin) x the exchange's CURRENT spot index price; not premium turnover. Binance statisti…"
- "pcr_oi""put open interest / call open interest, both in underlying-coin units; null when call side is 0 or missing"
- "max_pain""per expiry: settlement price S among strikes with OI>0 minimizing pain_usd(S) = sum_calls oi_coin x max(S-K,0) + sum_puts oi_coin x max(K-S,0); ties take the lo…"
- "strikes""per strike: call and put open interest / 24h volume summed over the selected exchanges and expiry (expiry=all sums every listed expiry)"
- "pain_usd""total USD payout to option holders if the expiry settled at this strike (see max_pain); only returned for a single expiry - null when expiry=all because max pai…"
- "meta"
- "schema""coinboss.sd.options/1"
- "source"
- "observed_at"1794522472654
- "received_at"1794522473814
- "fetched_at"1794541975432
- "window""latest"
- "quality""STALE"
- "is_stale"true
- "cache_ttl_s"60
- "fallback""on collector failure the last stored rows are served: an exchange whose newest batch is older than 25 min (collector cycle is 10 min) is excluded from totals (l…"
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 | 7 ms | Correcto STALE |
| coin=BTC&exchange=deribit | 200 | 6 ms | Correcto STALE |
| coin=BTC&expiry=2020-01-01 | 404 | 3 ms | Correcto devuelve el error esperado |
Comprobado 2026-11-13 03:28:18 UTC
Detalles
- Autenticación
- Ninguna. Endpoint público.
- Límite de solicitudes
- 1200 solicitudes por minuto por IP
- Caché del servidor
- 60s
- Microcaché de borde
- 10s
- Frecuencia de actualización
- Ronda del recolector cada 10 minutos; una plataforma es fresca durante 25 minutos tras su última ronda correcta.
- Ventana
- Última instantánea; los campos de volumen cubren las últimas 24 horas.
- 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; se devuelven todos los precios de ejercicio de la selección.
- Ordenación
- Precio de ejercicio 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.
- Método
- pain_usd at strike K = Σ call OI × max(K − strike, 0) + Σ put OI × max(strike − K, 0), in USD. `max_pain` is the K with the smallest pain_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
- 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
- Devuelto pero no documentado: coverage.stale_included, coverage.stale_included[], coverage.stale_included[].exchange, coverage.stale_included[].age_s
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/options/strikesDegradadostring — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.
string · por defecto all — `all`, or one UTC expiry date as `YYYY-MM-DD`. The max-pain curve is returned only for a single expiry. An unknown date returns 404 and lists the available dates.
string · por defecto all — One venue, or `all` for the cross-venue aggregate.
https://www.coinboss.com/api/sd/options/strikes?coin=BTCMás en esta categoría
- Cadena de opciones (una plataforma) /api/sd/options/chain
- Opciones por vencimiento /api/sd/options/expiries
- Historial de opciones (horario) /api/sd/options/history
- Resumen de opciones (todas las plataformas) /api/sd/options/overview
- Opciones por precio de ejercicio /api/sd/options/strikes
- Resumen de opciones de la página de moneda /api/currency/options-summary
- Sonrisa / estructura temporal de la volatilidad implícita de opciones /api/options/iv
- Historial de la volatilidad implícita de opciones /api/options/iv-history
- Max pain de opciones /api/options/max-pain
- OI de opciones por vencimiento /api/options/oi-by-expiry
- OI de opciones por precio de ejercicio /api/options/oi-by-strike
- Resumen de opciones /api/options/overview
- Distribución del volumen de opciones /api/options/volume-dist