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).
/api/sd/options/strikesRequê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 |
| expiry | string | Optionnel | all | — | `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. |
| 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/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.
| 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). |
| expiry | string | — | Date d'échéance (UTC), `YYYY-MM-DD`, ou `all`. |
| expiry_ts | null | — | Heure d'échéance. |
| days_left | null | days | Jours restants avant l'échéance. |
| 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). |
| n_strikes | number | — | Nombre de strikes renvoyés. |
| max_pain | null | USD | Strike auquel le paiement total aux détenteurs d'options à l'échéance est le plus faible. |
| max_pain_usd | null | USD | Paiement total aux détenteurs d'options si l'échéance était réglée au strike de max pain. |
| 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. |
| expiries_available | array | — | Dates d'échéance comportant actuellement des contrats. |
| expiries_available[] | string | — | Dates d'échéance comportant actuellement des contrats. |
| strikes | array | — | Une ligne par strike, par ordre croissant. |
| strikes[] | object | — | Une ligne par strike, par ordre croissant. |
| strikes[].strike | number | USD | Prix d'exercice (strike). |
| strikes[].call_oi_coin | number | coin | Positions ouvertes des calls en unités de la crypto sous-jacente. |
| strikes[].put_oi_coin | number | coin | Positions ouvertes des puts en unités de la crypto sous-jacente. |
| strikes[].call_oi_usd | number | USD | Positions ouvertes des calls, en notionnel USD. |
| strikes[].put_oi_usd | number | USD | Positions ouvertes des puts, en notionnel USD. |
| strikes[].call_vol_coin_24h | number | coin | Quantité de calls échangée sur 24h, en crypto. |
| strikes[].put_vol_coin_24h | number | coin | Quantité de puts échangée sur 24h, en crypto. |
| strikes[].call_vol_usd_24h | number | USD | Volume notionnel 24h des calls. |
| strikes[].put_vol_usd_24h | number | USD | Volume notionnel 24h des puts. |
| strikes[].pain_usd | null | USD | Paiement total aux détenteurs d'options si l'échéance était réglée à ce strike. |
| strikes[].call_pain_usd | null | USD | Paiement aux détenteurs de calls si l'échéance était réglée à ce strike. |
| strikes[].put_pain_usd | null | USD | Paiement aux détenteurs de puts si l'échéance était réglée à ce strike. |
| 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.pcr_oi | string | — | Note de formule pour `pcr_oi`, en texte brut. |
| method.max_pain | string | — | Note de formule pour `max_pain`, en texte brut. |
| method.strikes | string | — | Note de formule pour `strikes`, en texte brut. |
| method.pain_usd | string | — | Note de formule pour `pain_usd`, 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/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"
- "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…"
É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 | 200 | 7 ms | Réussi STALE |
| coin=BTC&exchange=deribit | 200 | 6 ms | Réussi STALE |
| coin=BTC&expiry=2020-01-01 | 404 | 3 ms | Ré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
L'endpoint signale une qualité de données STALE
Disponibilité, 30 derniers jours
100 % des 406 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/strikesDégradé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.
https://www.coinboss.com/api/sd/options/strikes?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