/api/sd/options/overview
GETDégradéSTALE

Vue d'ensemble des options (toutes plateformes)

Positions ouvertes, volume 24h, ratios put/call, max pain, volatilité implicite ATM, skew 25-delta et structure par terme de l'IV des options d'une crypto, agrégés sur six plateformes avec le détail par plateforme.

GET/api/sd/options/overview
Dégradé. L'endpoint signale une qualité de données STALE

Requête

Paramètres de requête

NomTypeRequisPar défautValeurs autoriséesDescription
coinstringRequis——Symbole de la crypto, insensible à la casse (par exemple `BTC`). Une valeur absente ou mal formée renvoie 400. Exemple: BTC

Exemple de requête

curl -s "https://www.coinboss.com/api/sd/options/overview?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.

ChampTypeUnitéDescription
successboolean—true lorsque la requête a abouti. En cas d'échec, le corps est `{ success: false, code, error, request_id }`.
schemastring—Identifiant de schéma de cette réponse. Il ne change que lorsqu'un champ existant change de sens ou de type.
nownumbermsHeure du serveur au moment où la réponse a été construite.
coinstring—Symbole de la crypto (en majuscules).
index_pricenumber|nullUSDPrix d'indice spot utilisé pour la conversion en USD (médiane des prix d'indice propres aux plateformes dans les agrégats).
n_contractsnumber|null—Nombre de contrats d'options inclus.
oi_usdnumber|nullUSDPositions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face.
call_oi_usdnumber|nullUSDPositions ouvertes des calls, en notionnel USD.
put_oi_usdnumber|nullUSDPositions ouvertes des puts, en notionnel USD.
oi_coinnumber|nullcoinPositions ouvertes en unités de la crypto sous-jacente.
call_oi_coinnumber|nullcoinPositions ouvertes des calls en unités de la crypto sous-jacente.
put_oi_coinnumber|nullcoinPositions ouvertes des puts en unités de la crypto sous-jacente.
vol_usd_24hnumber|nullUSDVolume notionnel 24h : quantité de cryptos échangée × prix d'indice spot actuel. Ce n'est pas le volume en primes.
call_vol_usd_24hnumber|nullUSDVolume notionnel 24h des calls.
put_vol_usd_24hnumber|nullUSDVolume notionnel 24h des puts.
vol_coin_24hnumber|nullcoinQuantité échangée sur 24h en unités de la crypto sous-jacente.
call_vol_coin_24hnumber|nullcoinQuantité de calls échangée sur 24h, en crypto.
put_vol_coin_24hnumber|nullcoinQuantité de puts échangée sur 24h, en crypto.
vol_premium_usd_24hnumber|nullUSDVolume en primes sur 24h (prix de l'option × quantité) lorsque la plateforme le publie ; `null` ailleurs. Jamais ajouté au volume notionnel.
pcr_oinumber|nullratioPositions ouvertes des puts ÷ positions ouvertes des calls, en unités de crypto ; `null` lorsque le côté call vaut 0.
pcr_volnumber|nullratioVolume 24h des puts ÷ volume 24h des calls, en unités de crypto ; `null` lorsque le côté call vaut 0.
n_expiriesnumber|null—Nombre de dates d'échéance incluses.
vol_exchangesarray—Plateformes contribuant au volume notionnel.
vol_exchanges[]string—Plateformes contribuant au volume notionnel.
vol_premium_exchangesarray—Plateformes qui publient le volume en primes.
vol_premium_exchanges[]string—Plateformes qui publient le volume en primes.
max_pain_nearestobject|null—Max pain de l'échéance la plus proche ayant des positions ouvertes.
max_pain_nearest.expirystring—Date d'échéance (UTC), `YYYY-MM-DD`, ou `all`.
max_pain_nearest.days_leftnumberdaysJours restants avant l'échéance.
max_pain_nearest.strikenumberUSDPrix d'exercice (strike).
max_pain_nearest.pain_usdnumberUSDPaiement total aux détenteurs d'options si l'échéance était réglée à ce strike.
max_pain_nearest.oi_usdnumberUSDPositions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face.
max_pain_nearest.exchangesarray—Plateformes incluses dans cette ligne.
max_pain_nearest.exchanges[]string—Plateformes incluses dans cette ligne.
max_pain_mainobject|null—Max pain de l'échéance principale : l'échéance la plus proche représentant au moins 5 % du total des positions ouvertes.
max_pain_main.expirystring—Date d'échéance (UTC), `YYYY-MM-DD`, ou `all`.
max_pain_main.days_leftnumberdaysJours restants avant l'échéance.
max_pain_main.strikenumberUSDPrix d'exercice (strike).
max_pain_main.pain_usdnumberUSDPaiement total aux détenteurs d'options si l'échéance était réglée à ce strike.
max_pain_main.oi_usdnumberUSDPositions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face.
max_pain_main.exchangesarray—Plateformes incluses dans cette ligne.
max_pain_main.exchanges[]string—Plateformes incluses dans cette ligne.
atm_iv_nearestnumber|null%IV ATM de l'échéance la plus proche.
atm_iv_mainnumber|null%IV ATM de l'échéance principale.
atm_iv_30dnumber|null%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.
skew_25d_mainnumber|nullpercentage pointsSkew 25-delta de l'échéance principale.
term_structurearray—IV ATM par échéance, la plus proche en premier.
term_structure[]object—IV ATM par échéance, la plus proche en premier.
term_structure[].expirystring—Date d'échéance (UTC), `YYYY-MM-DD`, ou `all`.
term_structure[].days_leftnumberdaysJours restants avant l'échéance.
term_structure[].atm_ivnumber%Volatilité implicite à la monnaie : moyenne des IV mark au strike le plus proche du prix forward.
term_structure[].oi_usdnumberUSDPositions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face.
exchangesarray—Plateformes incluses dans cette ligne.
exchanges[]object—Plateformes incluses dans cette ligne.
exchanges[].exchangestring—Identifiant de la plateforme (en minuscules).
exchanges[].oi_share_pctnumber%Part dans le total des positions ouvertes (notionnel USD) de la sélection.
exchanges[].n_contractsnumber—Nombre de contrats d'options inclus.
exchanges[].oi_usdnumberUSDPositions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face.
exchanges[].call_oi_usdnumberUSDPositions ouvertes des calls, en notionnel USD.
exchanges[].put_oi_usdnumberUSDPositions ouvertes des puts, en notionnel USD.
exchanges[].oi_coinnumbercoinPositions ouvertes en unités de la crypto sous-jacente.
exchanges[].call_oi_coinnumbercoinPositions ouvertes des calls en unités de la crypto sous-jacente.
exchanges[].put_oi_coinnumbercoinPositions ouvertes des puts en unités de la crypto sous-jacente.
exchanges[].vol_usd_24hnumberUSDVolume notionnel 24h : quantité de cryptos échangée × prix d'indice spot actuel. Ce n'est pas le volume en primes.
exchanges[].call_vol_usd_24hnumberUSDVolume notionnel 24h des calls.
exchanges[].put_vol_usd_24hnumberUSDVolume notionnel 24h des puts.
exchanges[].vol_coin_24hnumbercoinQuantité échangée sur 24h en unités de la crypto sous-jacente.
exchanges[].call_vol_coin_24hnumbercoinQuantité de calls échangée sur 24h, en crypto.
exchanges[].put_vol_coin_24hnumbercoinQuantité de puts échangée sur 24h, en crypto.
exchanges[].vol_premium_usd_24hnumber|nullUSDVolume en primes sur 24h (prix de l'option × quantité) lorsque la plateforme le publie ; `null` ailleurs. Jamais ajouté au volume notionnel.
exchanges[].pcr_oinumberratioPositions ouvertes des puts ÷ positions ouvertes des calls, en unités de crypto ; `null` lorsque le côté call vaut 0.
exchanges[].pcr_volnumberratioVolume 24h des puts ÷ volume 24h des calls, en unités de crypto ; `null` lorsque le côté call vaut 0.
exchanges[].n_expiriesnumber—Nombre de dates d'échéance incluses.
exchanges[].oi_usd_inversenumber|nullUSDPositions ouvertes des contrats à règlement en crypto.
exchanges[].oi_usd_linearnumberUSDPositions ouvertes des contrats à règlement en stablecoin.
exchanges[].oi_usd_reportednumber|nullUSDChiffre de positions ouvertes en USD propre à la plateforme, lorsqu'elle en publie un. À des fins de recoupement uniquement.
exchanges[].vol_usd_reported_24hnumber|nullUSDVolume notionnel propre à la plateforme, lorsqu'elle en publie un. À des fins de recoupement uniquement.
exchanges[].index_pricenumberUSDPrix d'indice spot utilisé pour la conversion en USD (médiane des prix d'indice propres aux plateformes dans les agrégats).
exchanges[].received_atnumbermsMoment où le collecteur CoinBoss a reçu les données.
exchanges[].observed_atnumber|nullmsHorodatage attribué aux données par la source.
exchanges[].age_snumbersSecondes écoulées depuis la réception de la ligne.
exchanges[].is_staleboolean—True lorsque les données sont plus anciennes que leur fenêtre de fraîcheur.
coverageobject—Ce qui est inclus ou non dans les chiffres. Comparez ces éléments avant de comparer les totaux avec une autre source.
coverage.included_exchangesarray—Sources dont les données à jour sont incluses.
coverage.included_exchanges[]string—Sources dont les données à jour sont incluses.
coverage.unavailablearray—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[].exchangestring—Identifiant de la plateforme (en minuscules).
coverage.unavailable[].reasonstring—Code de raison lisible par machine.
coverage.unavailable[].detailstring—Explication de la raison, lisible par un humain.
coverage.stale_excludedarray—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_gapsarray—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[].exchangestring—Identifiant de la plateforme (en minuscules).
coverage.field_gaps[].fieldsarray—Noms des colonnes manquantes.
coverage.field_gaps[].fields[]string—Noms des colonnes manquantes.
coverage.field_gaps[].kindstring—Famille de contrats : `inverse` (à règlement en crypto) ou `linear` (à règlement en stablecoin).
methodobject—Énoncé en texte brut des formules utilisées pour cette réponse, une entrée par champ.
method.oi_usdstring—Note de formule pour `oi_usd`, en texte brut.
method.vol_usd_24hstring—Note de formule pour `vol_usd_24h`, en texte brut.
method.vol_premium_usd_24hstring—Note de formule pour `vol_premium_usd_24h`, en texte brut.
method.pcr_oistring—Note de formule pour `pcr_oi`, en texte brut.
method.pcr_volstring—Note de formule pour `pcr_vol`, en texte brut.
method.max_painstring—Note de formule pour `max_pain`, en texte brut.
method.atm_ivstring—Note de formule pour `atm_iv`, en texte brut.
method.atm_iv_30dstring—Note de formule pour `atm_iv_30d`, en texte brut.
method.skew_25dstring—Note de formule pour `skew_25d`, en texte brut.
method.oi_share_pctstring—Note de formule pour `oi_share_pct`, en texte brut.
method.index_pricestring—Note de formule pour `index_price`, en texte brut.
method.max_pain_mainstring—Note de formule pour `max_pain_main`, en texte brut.
method.oi_usd_reportedstring—Note de formule pour `oi_usd_reported`, en texte brut. peut être absent
method.vol_usd_reported_24hstring—Note de formule pour `vol_usd_reported_24h`, en texte brut. peut être absent
metaobject—Traçabilité et fraîcheur de cette réponse.
meta.schemastring—Identifiant de schéma de cette réponse. Il ne change que lorsqu'un champ existant change de sens ou de type.
meta.sourcearray—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[].exchangestring—Identifiant de la plateforme (en minuscules).
meta.source[].endpointstring—Endpoint public de la source que lit le collecteur (indiqué pour la traçabilité ; les clients ne l'appellent jamais).
meta.observed_atnumber|nullmsHorodatage attribué aux données par la source.
meta.received_atnumber|nullmsMoment où le collecteur CoinBoss a reçu les données.
meta.fetched_atnumbermsMoment où cette réponse a été assemblée.
meta.windowstring—Fenêtre temporelle couverte par les chiffres.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN ou UNAVAILABLE, d'après les horodatages des données et la couverture.
meta.is_staleboolean—True lorsque les données sont plus anciennes que leur fenêtre de fraîcheur.
meta.cache_ttl_snumbersDurée de vie en cache de cette réponse.
meta.fallbackstring—Ce que renvoie l'endpoint lorsque le collecteur ou une source est en échec.

Généré à partir de 4 réponses réelles (2026-11-11 23:00 UTC).

Exemple de réponse

/api/sd/options/overview?coin=BTC · Réponse réelle (capture : 2026-11-13 03:52:55 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : exchanges comptait 6 éléments; meta.source comptait 6 éléments; term_structure comptait 12 éléments; coverage.field_gaps comptait 4 éléments; coverage.unavailable comptait 12 éléments; coverage.stale_included comptait 6 éléments.

  • {
    • "success": true,
    • "schema": "coinboss.sd.options/1",
    • "now": 1794541975252,
    • "coin": "BTC",
    • "index_price": 71498.15576087,
    • "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,
    • "n_expiries": 12,
    • "vol_exchanges": [
      • "binance",
      • "bybit",
      • "coincall",
      • "deribit",
      • "gate",
      • "okx"
      ],
    • "vol_premium_exchanges": [
      • "binance",
      • "deribit",
      • "gate"
      ],
    • "max_pain_nearest": {
      • "expiry": "2026-11-13",
      • "days_left": 0.1716,
      • "strike": 75000,
      • "pain_usd": 15831410,
      • "oi_usd": 3892192707.39,
      • "exchanges": [ … 6 ]
      },
    • "max_pain_main": {
      • "expiry": "2026-11-13",
      • "days_left": 0.1716,
      • "strike": 75000,
      • "pain_usd": 15831410,
      • "oi_usd": 3892192707.39,
      • "exchanges": [ … 6 ]
      },
    • "atm_iv_nearest": 40.28,
    • "atm_iv_main": 40.28,
    • "atm_iv_30d": 37.2,
    • "skew_25d_main": 6.6,
    • "term_structure": [
      • { … 4 },
      • { … 4 }
      ],
    • "exchanges": [
      • { … 28 },
      • { … 28 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 6 ],
      • "unavailable": [ … 2 ],
      • "stale_excluded": [],
      • "field_gaps": [ … 2 ],
      • "stale_included": [ … 2 ]
      },
    • "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 …",
      • "oi_share_pct": "exchange oi_usd / sum of oi_usd over included exchanges x 100",
      • "index_price": "median of the included exchanges' own spot index prices",
      • "max_pain_main": "main expiry = nearest expiry holding >=5% of total OI notional (same rule as legacy /api/options/overview); max_pain_nearest = nearest listed expiry with OI",
      • "oi_usd_reported": "sum of the exchange's own USD figure where it publishes one (Binance sumOpenInterestUsd, OKX oiUsd), for cross-checking only; null elsewhere",
      • "vol_usd_reported_24h": "exchange-reported notional turnover where published (Bybit turnover24h), for cross-checking only; null elsewhere"
      },
    • "meta": {
      • "schema": "coinboss.sd.options/1",
      • "source": [ … 2 ],
      • "observed_at": 1794522472654,
      • "received_at": 1794522473814,
      • "fetched_at": 1794541975252,
      • "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ètresHTTPLatenceRésultat
coin=ETH20066 msRéussi STALE
coin=SOL20022 msRéussi STALE
coin=PEPE2002 msRéussi UNAVAILABLE
—4001 msRéussi renvoie l'erreur attendue

Vérifié : 2026-11-13 03:28:18 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é ; les champs de volume couvrent les 24 dernières heures, telles que déclarées par chaque plateforme.
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.
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
pcr_oi = put OI ÷ call OI (coin units). Max pain = the strike that minimises the total intrinsic value paid to option holders at expiry. ATM IV = mean mark IV of the contracts at the strike closest to the forward price published by the venue for that expiry; `atm_iv_30d` is interpolated linearly between the two expiries that bracket 30 days. skew_25d = IV(put with delta closest to −0.25) − IV(call with delta closest to +0.25), in percentage points, using deltas published by the venues only.
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

DégradéVérifié : 2026-11-13 03:52:55 UTCHTTP 20057 msSchéma conformePoint de données le plus récent : il y a 5.4h

L'endpoint signale une qualité de données STALE

Disponibilité, 30 derniers jours

100 % des 406 contrôles réussis

Dérive de schéma détectée par la dernière sonde
  • 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 →

CodeHTTPSignificationQue faire
INVALID_PARAM400Un 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.
UNAUTHORIZED401L'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.
FORBIDDEN403La route ne fait pas partie de l'API publique (interne ou réservée aux comptes).Ne réessayez pas.
NOT_FOUND404Route 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_LIMITED429Plus 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.
INTERNAL500Erreur 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_FAILED503La 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.
UNAVAILABLE501 / 503Le 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_FAILED200Certains 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

GET/api/sd/options/overviewDégradé
Paramètres

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

URL de la requêtehttps://www.coinboss.com/api/sd/options/overview?coin=BTC
Choisissez un endpoint et cliquez sur « Envoyer la requête ». La réponse, les en-têtes et le temps de réponse s'afficheront ici.