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

Options par strike

Positions ouvertes et volume 24h par strike, calls et puts séparément. Pour une échéance unique, la réponse contient aussi la courbe de max pain (paiement total à chaque strike).

GET/api/sd/options/strikes
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
expirystringOptionnelall—`all`, ou une date d'échéance UTC au format `YYYY-MM-DD`. La courbe de max pain n'est renvoyée que pour une échéance unique. Une date inconnue renvoie 404 et liste les dates disponibles.
exchangestringOptionnelallall, deribit, binance, bybit, okx, gate, coincallUne plateforme, ou `all` pour l'agrégat multi-plateformes.

Exemple de requête

curl -s "https://www.coinboss.com/api/sd/options/strikes?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).
exchangestring—Identifiant de la plateforme (en minuscules).
expirystring—Date d'échéance (UTC), `YYYY-MM-DD`, ou `all`.
expiry_tsnull—Heure d'échéance.
days_leftnulldaysJours restants avant l'échéance.
index_pricenumberUSDPrix d'indice spot utilisé pour la conversion en USD (médiane des prix d'indice propres aux plateformes dans les agrégats).
n_strikesnumber—Nombre de strikes renvoyés.
max_painnullUSDStrike auquel le paiement total aux détenteurs d'options à l'échéance est le plus faible.
max_pain_usdnullUSDPaiement total aux détenteurs d'options si l'échéance était réglée au strike de max pain.
n_contractsnumber—Nombre de contrats d'options inclus.
oi_usdnumberUSDPositions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face.
call_oi_usdnumberUSDPositions ouvertes des calls, en notionnel USD.
put_oi_usdnumberUSDPositions ouvertes des puts, en notionnel USD.
oi_coinnumbercoinPositions ouvertes en unités de la crypto sous-jacente.
call_oi_coinnumbercoinPositions ouvertes des calls en unités de la crypto sous-jacente.
put_oi_coinnumbercoinPositions ouvertes des puts en unités de la crypto sous-jacente.
vol_usd_24hnumberUSDVolume notionnel 24h : quantité de cryptos échangée × prix d'indice spot actuel. Ce n'est pas le volume en primes.
call_vol_usd_24hnumberUSDVolume notionnel 24h des calls.
put_vol_usd_24hnumberUSDVolume notionnel 24h des puts.
vol_coin_24hnumbercoinQuantité échangée sur 24h en unités de la crypto sous-jacente.
call_vol_coin_24hnumbercoinQuantité de calls échangée sur 24h, en crypto.
put_vol_coin_24hnumbercoinQuantité de puts échangée sur 24h, en crypto.
vol_premium_usd_24hnumberUSDVolume en primes sur 24h (prix de l'option × quantité) lorsque la plateforme le publie ; `null` ailleurs. Jamais ajouté au volume notionnel.
pcr_oinumberratioPositions ouvertes des puts ÷ positions ouvertes des calls, en unités de crypto ; `null` lorsque le côté call vaut 0.
pcr_volnumberratioVolume 24h des puts ÷ volume 24h des calls, en unités de crypto ; `null` lorsque le côté call vaut 0.
expiries_availablearray—Dates d'échéance comportant actuellement des contrats.
expiries_available[]string—Dates d'échéance comportant actuellement des contrats.
strikesarray—Une ligne par strike, par ordre croissant.
strikes[]object—Une ligne par strike, par ordre croissant.
strikes[].strikenumberUSDPrix d'exercice (strike).
strikes[].call_oi_coinnumbercoinPositions ouvertes des calls en unités de la crypto sous-jacente.
strikes[].put_oi_coinnumbercoinPositions ouvertes des puts en unités de la crypto sous-jacente.
strikes[].call_oi_usdnumberUSDPositions ouvertes des calls, en notionnel USD.
strikes[].put_oi_usdnumberUSDPositions ouvertes des puts, en notionnel USD.
strikes[].call_vol_coin_24hnumbercoinQuantité de calls échangée sur 24h, en crypto.
strikes[].put_vol_coin_24hnumbercoinQuantité de puts échangée sur 24h, en crypto.
strikes[].call_vol_usd_24hnumberUSDVolume notionnel 24h des calls.
strikes[].put_vol_usd_24hnumberUSDVolume notionnel 24h des puts.
strikes[].pain_usdnullUSDPaiement total aux détenteurs d'options si l'échéance était réglée à ce strike.
strikes[].call_pain_usdnullUSDPaiement aux détenteurs de calls si l'échéance était réglée à ce strike.
strikes[].put_pain_usdnullUSDPaiement aux détenteurs de puts si l'échéance était réglée à ce strike.
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.pcr_oistring—Note de formule pour `pcr_oi`, en texte brut.
method.max_painstring—Note de formule pour `max_pain`, en texte brut.
method.strikesstring—Note de formule pour `strikes`, en texte brut.
method.pain_usdstring—Note de formule pour `pain_usd`, en texte brut.
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_atnumbermsHorodatage attribué aux données par la source.
meta.received_atnumbermsMoment 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 3 réponses réelles (2026-11-11 23:00 UTC).

Exemple de réponse

/api/sd/options/strikes?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 : strikes comptait 146 éléments; meta.source comptait 6 éléments; expiries_available 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": 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": [
      • { … 12 },
      • { … 12 }
      ],
    • "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…",
      • "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": [ … 2 ],
      • "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…"
      }
    }

É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=ETH2007 msRéussi STALE
coin=BTC&exchange=deribit2006 msRéussi STALE
coin=BTC&expiry=2020-01-014043 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.
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.
Pagination
Pas de pagination ; tous les strikes de la sélection sont renvoyés.
Tri
Strike croissant.
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
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.
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 20011 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/strikesDégradé
Paramètres

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

string · défaut 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 · défaut all — One venue, or `all` for the cross-venue aggregate.

URL de la requêtehttps://www.coinboss.com/api/sd/options/strikes?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.