Options par échéance
Une ligne par date d'échéance : positions ouvertes, volume, ratio put/call, max pain, IV ATM et skew, pour toutes les plateformes ou une seule.
/api/sd/options/expiriesRequête
Paramètres de requête
| Nom | Type | Requis | Par défaut | Valeurs autorisées | Description |
|---|---|---|---|---|---|
| coin | string | Requis | — | — | Symbole de la crypto, insensible à la casse (par exemple `BTC`). Une valeur absente ou mal formée renvoie 400. Exemple: BTC |
| exchange | string | Optionnel | all | all, deribit, binance, bybit, okx, gate, coincall | Une plateforme, ou `all` pour l'agrégat multi-plateformes. |
Exemple de requête
curl -s "https://www.coinboss.com/api/sd/options/expiries?coin=BTC"Champs de la réponse
Le tableau des champs est généré à partir de réponses réelles : il liste donc exactement ce que renvoie l'endpoint. Les chemins utilisent a[] pour les éléments d'un tableau et {*} pour les objets indexés par un nom dynamique, comme une crypto ou une plateforme.
| Champ | Type | Unité | Description |
|---|---|---|---|
| success | boolean | — | true lorsque la requête a abouti. En cas d'échec, le corps est `{ success: false, code, error, request_id }`. |
| schema | string | — | Identifiant de schéma de cette réponse. Il ne change que lorsqu'un champ existant change de sens ou de type. |
| now | number | ms | Heure du serveur au moment où la réponse a été construite. |
| coin | string | — | Symbole de la crypto (en majuscules). |
| exchange | string | — | Identifiant de la plateforme (en minuscules). |
| n_expiries | number | — | Nombre de dates d'échéance incluses. |
| n_contracts | number | — | Nombre de contrats d'options inclus. |
| oi_usd | number | USD | Positions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face. |
| call_oi_usd | number | USD | Positions ouvertes des calls, en notionnel USD. |
| put_oi_usd | number | USD | Positions ouvertes des puts, en notionnel USD. |
| oi_coin | number | coin | Positions ouvertes en unités de la crypto sous-jacente. |
| call_oi_coin | number | coin | Positions ouvertes des calls en unités de la crypto sous-jacente. |
| put_oi_coin | number | coin | Positions ouvertes des puts en unités de la crypto sous-jacente. |
| vol_usd_24h | number | USD | Volume notionnel 24h : quantité de cryptos échangée × prix d'indice spot actuel. Ce n'est pas le volume en primes. |
| call_vol_usd_24h | number | USD | Volume notionnel 24h des calls. |
| put_vol_usd_24h | number | USD | Volume notionnel 24h des puts. |
| vol_coin_24h | number | coin | Quantité échangée sur 24h en unités de la crypto sous-jacente. |
| call_vol_coin_24h | number | coin | Quantité de calls échangée sur 24h, en crypto. |
| put_vol_coin_24h | number | coin | Quantité de puts échangée sur 24h, en crypto. |
| vol_premium_usd_24h | number | USD | Volume en primes sur 24h (prix de l'option × quantité) lorsque la plateforme le publie ; `null` ailleurs. Jamais ajouté au volume notionnel. |
| pcr_oi | number | ratio | Positions ouvertes des puts ÷ positions ouvertes des calls, en unités de crypto ; `null` lorsque le côté call vaut 0. |
| pcr_vol | number | ratio | Volume 24h des puts ÷ volume 24h des calls, en unités de crypto ; `null` lorsque le côté call vaut 0. |
| atm_iv_30d | number | % | IV ATM interpolée linéairement à une maturité constante de 30 jours ; `null` lorsque les 30 jours ne sont pas encadrés par deux échéances. |
| expiries | array | — | Une ligne par date d'échéance. |
| expiries[] | object | — | Une ligne par date d'échéance. |
| expiries[].expiry | string | — | Date d'échéance (UTC), `YYYY-MM-DD`, ou `all`. |
| expiries[].expiry_ts | number | ms | Heure d'échéance. |
| expiries[].days_left | number | days | Jours restants avant l'échéance. |
| expiries[].exchanges | array | — | Plateformes incluses dans cette ligne. |
| expiries[].exchanges[] | string | — | Plateformes incluses dans cette ligne. |
| expiries[].n_contracts | number | — | Nombre de contrats d'options inclus. |
| expiries[].oi_usd | number | USD | Positions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face. |
| expiries[].call_oi_usd | number | USD | Positions ouvertes des calls, en notionnel USD. |
| expiries[].put_oi_usd | number | USD | Positions ouvertes des puts, en notionnel USD. |
| expiries[].oi_coin | number | coin | Positions ouvertes en unités de la crypto sous-jacente. |
| expiries[].call_oi_coin | number | coin | Positions ouvertes des calls en unités de la crypto sous-jacente. |
| expiries[].put_oi_coin | number | coin | Positions ouvertes des puts en unités de la crypto sous-jacente. |
| expiries[].vol_usd_24h | number | USD | Volume notionnel 24h : quantité de cryptos échangée × prix d'indice spot actuel. Ce n'est pas le volume en primes. |
| expiries[].call_vol_usd_24h | number | USD | Volume notionnel 24h des calls. |
| expiries[].put_vol_usd_24h | number | USD | Volume notionnel 24h des puts. |
| expiries[].vol_coin_24h | number | coin | Quantité échangée sur 24h en unités de la crypto sous-jacente. |
| expiries[].call_vol_coin_24h | number | coin | Quantité de calls échangée sur 24h, en crypto. |
| expiries[].put_vol_coin_24h | number | coin | Quantité de puts échangée sur 24h, en crypto. |
| expiries[].vol_premium_usd_24h | number|null | USD | Volume en primes sur 24h (prix de l'option × quantité) lorsque la plateforme le publie ; `null` ailleurs. Jamais ajouté au volume notionnel. |
| expiries[].pcr_oi | number | ratio | Positions ouvertes des puts ÷ positions ouvertes des calls, en unités de crypto ; `null` lorsque le côté call vaut 0. |
| expiries[].pcr_vol | number | ratio | Volume 24h des puts ÷ volume 24h des calls, en unités de crypto ; `null` lorsque le côté call vaut 0. |
| expiries[].oi_share_pct | number | % | Part dans le total des positions ouvertes (notionnel USD) de la sélection. |
| expiries[].max_pain | number | USD | Strike auquel le paiement total aux détenteurs d'options à l'échéance est le plus faible. |
| expiries[].max_pain_usd | number | USD | Paiement total aux détenteurs d'options si l'échéance était réglée au strike de max pain. |
| expiries[].atm_iv | number | % | Volatilité implicite à la monnaie : moyenne des IV mark au strike le plus proche du prix forward. |
| expiries[].atm_strike | number | USD | Strike le plus proche du prix forward, utilisé pour l'IV ATM. |
| expiries[].skew_25d | number|null | percentage points | IV du put dont le delta est le plus proche de −0.25 moins IV du call dont le delta est le plus proche de +0.25. Uniquement à partir des deltas publiés par les plateformes. |
| expiries[].skew_exchanges | array | — | Plateformes dont les deltas étaient disponibles pour le skew. |
| expiries[].skew_exchanges[] | string | — | Plateformes dont les deltas étaient disponibles pour le skew. |
| expiries[].index_price | number | USD | Prix d'indice spot utilisé pour la conversion en USD (médiane des prix d'indice propres aux plateformes dans les agrégats). |
| expiries[].underlying_price | number|null | USD | Prix forward / du sous-jacent publié par la plateforme pour cette échéance. |
| expiries[].by_exchange_iv | array | — | IV ATM de cette échéance par plateforme. |
| expiries[].by_exchange_iv[] | object | — | IV ATM de cette échéance par plateforme. |
| expiries[].by_exchange_iv[].exchange | string | — | Identifiant de la plateforme (en minuscules). |
| expiries[].by_exchange_iv[].atm_iv | number | % | Volatilité implicite à la monnaie : moyenne des IV mark au strike le plus proche du prix forward. |
| expiries[].by_exchange_iv[].atm_strike | number | USD | Strike le plus proche du prix forward, utilisé pour l'IV ATM. |
| expiries[].by_exchange_iv[].ref_price | number | USD | Prix forward par rapport auquel le strike ATM de la plateforme a été choisi. |
| expiries[].by_exchange_iv[].skew_25d | number|null | percentage points | IV du put dont le delta est le plus proche de −0.25 moins IV du call dont le delta est le plus proche de +0.25. Uniquement à partir des deltas publiés par les plateformes. |
| expiries[].by_exchange_iv[].oi_usd | number | USD | Positions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face. |
| coverage | object | — | Ce qui est inclus ou non dans les chiffres. Comparez ces éléments avant de comparer les totaux avec une autre source. |
| coverage.included_exchanges | array | — | Sources dont les données à jour sont incluses. |
| coverage.included_exchanges[] | string | — | Sources dont les données à jour sont incluses. |
| coverage.unavailable | array | — | Sources qui n'ont pas pu être incluses, chacune avec sa raison. Elles ne sont jamais comptées comme 0. |
| coverage.unavailable[] | object | — | Sources qui n'ont pas pu être incluses, chacune avec sa raison. Elles ne sont jamais comptées comme 0. |
| coverage.unavailable[].exchange | string | — | Identifiant de la plateforme (en minuscules). |
| coverage.unavailable[].reason | string | — | Code de raison lisible par machine. |
| coverage.unavailable[].detail | string | — | Explication de la raison, lisible par un humain. |
| coverage.stale_excluded | array | — | Lignes écartées parce que leur dernière mise à jour est hors de la fenêtre de fraîcheur. vide dans les échantillons ayant servi à générer ce tableau |
| coverage.field_gaps | array | — | Colonnes qu'une plateforme ne publie pas ; elles valent `null` pour cette plateforme. |
| coverage.field_gaps[] | object | — | Colonnes qu'une plateforme ne publie pas ; elles valent `null` pour cette plateforme. |
| coverage.field_gaps[].exchange | string | — | Identifiant de la plateforme (en minuscules). |
| coverage.field_gaps[].fields | array | — | Noms des colonnes manquantes. |
| coverage.field_gaps[].fields[] | string | — | Noms des colonnes manquantes. |
| coverage.field_gaps[].kind | string | — | Famille de contrats : `inverse` (à règlement en crypto) ou `linear` (à règlement en stablecoin). |
| method | object | — | Énoncé en texte brut des formules utilisées pour cette réponse, une entrée par champ. |
| method.oi_usd | string | — | Note de formule pour `oi_usd`, en texte brut. |
| method.vol_usd_24h | string | — | Note de formule pour `vol_usd_24h`, en texte brut. |
| method.vol_premium_usd_24h | string | — | Note de formule pour `vol_premium_usd_24h`, en texte brut. |
| method.pcr_oi | string | — | Note de formule pour `pcr_oi`, en texte brut. |
| method.pcr_vol | string | — | Note de formule pour `pcr_vol`, en texte brut. |
| method.max_pain | string | — | Note de formule pour `max_pain`, en texte brut. |
| method.atm_iv | string | — | Note de formule pour `atm_iv`, en texte brut. |
| method.atm_iv_30d | string | — | Note de formule pour `atm_iv_30d`, en texte brut. |
| method.skew_25d | string | — | Note de formule pour `skew_25d`, en texte brut. |
| method.expiry | string | — | Note de formule pour `expiry`, en texte brut. |
| method.oi_share_pct | string | — | Note de formule pour `oi_share_pct`, en texte brut. |
| meta | object | — | Traçabilité et fraîcheur de cette réponse. |
| meta.schema | string | — | Identifiant de schéma de cette réponse. Il ne change que lorsqu'un champ existant change de sens ou de type. |
| meta.source | array | — | Endpoints publics amont auprès desquels les données ont été collectées. |
| meta.source[] | object | — | Endpoints publics amont auprès desquels les données ont été collectées. |
| meta.source[].exchange | string | — | Identifiant de la plateforme (en minuscules). |
| meta.source[].endpoint | string | — | Endpoint public de la source que lit le collecteur (indiqué pour la traçabilité ; les clients ne l'appellent jamais). |
| meta.observed_at | number | ms | Horodatage attribué aux données par la source. |
| meta.received_at | number | ms | Moment où le collecteur CoinBoss a reçu les données. |
| meta.fetched_at | number | ms | Moment où cette réponse a été assemblée. |
| meta.window | string | — | Fenêtre temporelle couverte par les chiffres. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN ou UNAVAILABLE, d'après les horodatages des données et la couverture. |
| meta.is_stale | boolean | — | True lorsque les données sont plus anciennes que leur fenêtre de fraîcheur. |
| meta.cache_ttl_s | number | s | Durée de vie en cache de cette réponse. |
| meta.fallback | string | — | Ce que renvoie l'endpoint lorsque le collecteur ou une source est en échec. |
Généré à partir de 3 réponses réelles (2026-11-11 23:00 UTC).
Exemple de réponse
/api/sd/options/expiries?coin=BTC · Réponse réelle (capture : 2026-11-13 04:02:52 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : expiries comptait 12 éléments; meta.source comptait 6 éléments; coverage.field_gaps comptait 4 éléments; coverage.unavailable comptait 12 éléments; coverage.stale_included comptait 6 éléments; expiries[].by_exchange_iv comptait 6 éléments.
- "success"true
- "schema""coinboss.sd.options/1"
- "now"1794542572935
- "coin""BTC"
- "exchange""all"
- "n_expiries"12
- "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
- "atm_iv_30d"37.2
- "expiries"
- "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…"
- "vol_premium_usd_24h""PREMIUM turnover (option price x quantity) as reported by the exchange: Deribit volume_usd, Binance amount, Gate sum(|size| x multiplier x price) from the 24h t…"
- "pcr_oi""put open interest / call open interest, both in underlying-coin units; null when call side is 0 or missing"
- "pcr_vol""put 24h volume / call 24h volume, 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…"
- "atm_iv""per exchange and expiry: reference price F = median of the exchange-published forward/underlying price of that expiry (the exchange index price where no forward…"
- "atm_iv_30d""30-day constant-maturity ATM IV: linear interpolation in days between the two expiries bracketing 30 days; null when 30 days is not bracketed"
- "skew_25d""IV(put with delta closest to -0.25, within +-0.10) - IV(call with delta closest to +0.25, within +-0.10), in percentage points, using exchange-published deltas …"
- "expiry""UTC date of the expiry timestamp (all integrated exchanges expire at 08:00 UTC); contracts from different exchanges with the same UTC expiry date are merged"
- "oi_share_pct""expiry oi_usd / total oi_usd of this response x 100"
- "meta"
- "schema""coinboss.sd.options/1"
- "source"
- "observed_at"1794522472654
- "received_at"1794522473814
- "fetched_at"1794542572935
- "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…"
Échantillons vérifiés
Outre l'exemple ci-dessus, la sonde appelle cet endpoint avec les paramètres suivants et vérifie le schéma à chaque fois.
| Paramètres | HTTP | Latence | Résultat |
|---|---|---|---|
| coin=ETH&exchange=deribit | 200 | 46 ms | Réussi STALE |
| coin=SOL | 200 | 22 ms | Réussi STALE |
| coin=BTC&exchange=nope | 400 | 1 ms | Réussi renvoie l'erreur attendue |
Vérifié : 2026-11-13 03:58:20 UTC
Détails
- Authentification
- Aucune. Endpoint public.
- Limite de requêtes
- 1200 requêtes par minute et par IP
- Cache serveur
- 60s
- Micro-cache en périphérie
- 10s
- Fréquence de mise à jour
- Cycle de collecte toutes les 10 minutes ; une plateforme reste à jour pendant 25 minutes après son dernier cycle réussi.
- Fenêtre
- Dernier instantané par échéance ; les champs de volume couvrent les 24 dernières heures.
- Sources de données
- Endpoints REST publics d'options de Deribit, Binance, Bybit, OKX, Gate et Coincall, collectés et stockés par CoinBoss (sd_opt_latest, sd_opt_summary_hourly). Aucun agrégateur tiers n'intervient.
- Couverture des plateformes
- Six plateformes d'options. Une crypto sans option cotée sur les plateformes sélectionnées renvoie HTTP 200 avec des champs null, `meta.quality = "UNAVAILABLE"` et la raison sous `coverage.unavailable`. Les plateformes dépourvues de flux public d'options y sont également listées.
- Tri
- Date d'échéance croissante.
- Unités
- 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éthode
- Contracts of different venues are grouped by UTC expiry date. Max pain and ATM IV are computed per expiry; `oi_share_pct` is the share of that expiry in the total open interest of the selection.
- Horodatages
- Millisecondes depuis l'epoch Unix (UTC), sauf indication contraire dans la description du champ
- Format de réponse
- json
- Stabilité
- Stable
- Disponible depuis
- 2026-11-11
Statut en direct
L'endpoint signale une qualité de données STALE
Disponibilité, 30 derniers jours
100 % des 408 contrôles réussis
- Renvoyé mais non documenté: coverage.stale_included, coverage.stale_included[], coverage.stale_included[].exchange, coverage.stale_included[].age_s
Erreurs
Les appels en échec ont la même structure sur tous les endpoints. La liste complète figure sur la page des erreurs. Erreurs et limites de requêtes →
| Code | HTTP | Signification | Que faire |
|---|---|---|---|
| INVALID_PARAM | 400 | Un paramètre requis est manquant ou une valeur n'est pas acceptée. `param` indique le nom du paramètre lorsqu'il est connu. | Ne réessayez pas à l'identique ; corrigez la requête. |
| UNAUTHORIZED | 401 | L'en-tête `CB-API-KEY` a été envoyé, mais la clé est inconnue ou révoquée. Les données publiques ne nécessitent aucune clé — supprimez l'en-tête ou utilisez une clé valide. | Ne réessayez pas à l'identique. |
| FORBIDDEN | 403 | La route ne fait pas partie de l'API publique (interne ou réservée aux comptes). | Ne réessayez pas. |
| NOT_FOUND | 404 | Route inconnue, ou la crypto / la plateforme / le fonds demandé n'existe pas. | Ne réessayez pas ; vérifiez le chemin et les identifiants dans le catalogue. |
| RATE_LIMITED | 429 | Plus de requêtes que la limite par minute. `Retry-After` indique le nombre de secondes à attendre. | Attendez la durée indiquée par `Retry-After`, puis réessayez avec backoff. |
| INTERNAL | 500 | Erreur serveur inattendue. Le message est volontairement générique ; citez `request_id` lorsque vous la signalez. | Réessayez une fois après quelques secondes ; si l'erreur persiste, signalez-la avec l'ID de requête. |
| UPSTREAM_FAILED | 503 | La source de données derrière cet endpoint n'a pas répondu à temps. Aucun chiffre périmé ni de substitution n'est renvoyé à sa place. | Réessayez avec backoff ; consultez la page de statut. |
| UNAVAILABLE | 501 / 503 | Le jeu de données n'est temporairement pas prêt (préchauffage du cache) ou l'endpoint n'a pas encore de source publique licite. | Réessayez plus tard ; le catalogue signale les endpoints indisponibles par conception. |
| REQUEST_FAILED | 200 | Certains endpoints plus anciens répondent HTTP 200 avec `success: false`. Vérifiez toujours `success`, et pas seulement le statut HTTP. | Dépend du message ; à traiter comme une requête en échec. |
Essayer
/api/sd/options/expiriesDégradéstring — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.
string · défaut all — One venue, or `all` for the cross-venue aggregate.
https://www.coinboss.com/api/sd/options/expiries?coin=BTCAutres endpoints de cette catégorie
- Chaîne d'options (une plateforme) /api/sd/options/chain
- Options par échéance /api/sd/options/expiries
- Historique des options (horaire) /api/sd/options/history
- Vue d'ensemble des options (toutes plateformes) /api/sd/options/overview
- Options par strike /api/sd/options/strikes
- Synthèse des options de la page crypto /api/currency/options-summary
- Smile / structure par terme de la volatilité implicite des options /api/options/iv
- Historique de la volatilité implicite des options /api/options/iv-history
- Max pain des options /api/options/max-pain
- OI des options par échéance /api/options/oi-by-expiry
- OI des options par strike /api/options/oi-by-strike
- Vue d'ensemble des options /api/options/overview
- Répartition du volume des options /api/options/volume-dist