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

Historique des options (horaire)

Série horaire des positions ouvertes, du volume, du ratio put/call, de l'IV ATM ou du max pain des options d'une crypto. L'historique commence au début de la collecte par CoinBoss (2026-11-11) ; les heures antérieures ne sont pas reconstituées.

GET/api/sd/options/history
Couverture partielle. La collecte de cette série a commencé le 2026-11-11. Tant que la plage demandée n'est pas remplie, la réponse renvoie les points existants, indique `points_count` par rapport à `expected_points` et affiche `meta.quality = "PARTIAL"`. Les heures manquantes ne sont pas interpolées.
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
metricstringRequis—oi, volume, pcr, atm_iv, max_painSérie à renvoyer. Exemple: oi
rangestringOptionnel7d24h, 7d, 30d, 90dPlage rétrospective ; un point par heure, 2160 points au maximum.
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/history?coin=BTC&metric=oi"

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).
metricstring—Série sélectionnée par le paramètre `metric`.
rangestring—Plage rétrospective appliquée.
intervalstring—Espacement des points de la série.
points_countnumber—Nombre de points renvoyés.
expected_pointsnumber—Nombre de points horaires que contiendrait la plage demandée si elle était complète.
history_started_atnumbermsHeure de la première heure collectée par CoinBoss.
first_tnumbermsHeure du premier point renvoyé.
last_tnumbermsHeure du dernier point renvoyé.
pointsarray—Points de la série, du plus ancien au plus récent.
points[]object—Points de la série, du plus ancien au plus récent.
points[].tnumbermsDébut de la tranche temporelle.
points[].snapshot_atnumbermsHeure du cycle de collecte à partir duquel le point a été écrit.
points[].n_exchangesnumber—Nombre de plateformes dans le point.
points[].exchangesarray—Plateformes incluses dans cette ligne.
points[].exchanges[]string—Plateformes incluses dans cette ligne.
points[].oi_usdnumberUSDPositions ouvertes en notionnel USD : quantité de cryptos × prix d'indice spot. Simple face. peut être absent
points[].call_oi_usdnumberUSDPositions ouvertes des calls, en notionnel USD. peut être absent
points[].put_oi_usdnumberUSDPositions ouvertes des puts, en notionnel USD. peut être absent
points[].oi_coinnumbercoinPositions ouvertes en unités de la crypto sous-jacente. peut être absent
points[].index_pricenumberUSDPrix d'indice spot utilisé pour la conversion en USD (médiane des prix d'indice propres aux plateformes dans les agrégats). peut être absent
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
methodobject—Énoncé en texte brut des formules utilisées pour cette réponse, une entrée par champ.
method.pointsstring—Note de formule pour `points`, en texte brut.
method.exchangesstring—Note de formule pour `exchanges`, en texte brut.
method.history_depthstring—Note de formule pour `history_depth`, en texte brut.
method.oi_usdstring—Note de formule pour `oi_usd`, 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_atnull—Horodatage 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.
points[].pcr_oinumberratioPositions ouvertes des puts ÷ positions ouvertes des calls, en unités de crypto ; `null` lorsque le côté call vaut 0. peut être absent
points[].pcr_volnumberratioVolume 24h des puts ÷ volume 24h des calls, en unités de crypto ; `null` lorsque le côté call vaut 0. peut être absent
method.pcr_oistring—Note de formule pour `pcr_oi`, en texte brut. peut être absent
method.pcr_volstring—Note de formule pour `pcr_vol`, en texte brut. peut être absent
points[].atm_iv_30dnumber%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. peut être absent
method.atm_ivstring—Note de formule pour `atm_iv`, en texte brut. peut être absent
method.atm_iv_30dstring—Note de formule pour `atm_iv_30d`, en texte brut. peut être absent

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

Exemple de réponse

/api/sd/options/history?coin=BTC&metric=oi · Réponse réelle (capture : 2026-11-13 03:58:20 UTC). Les tableaux et dictionnaires longs sont abrégés pour l'affichage : points comptait 23 éléments; meta.source comptait 6 éléments; coverage.unavailable comptait 12 éléments.

  • {
    • "success": true,
    • "schema": "coinboss.sd.options/1",
    • "now": 1794542300888,
    • "coin": "BTC",
    • "exchange": "all",
    • "metric": "oi",
    • "range": "7d",
    • "interval": "1h",
    • "points_count": 23,
    • "expected_points": 168,
    • "history_started_at": 1794416400000,
    • "first_t": 1794416400000,
    • "last_t": 1794520800000,
    • "points": [
      • { … 9 },
      • { … 9 }
      ],
    • "coverage": {
      • "included_exchanges": [ … 6 ],
      • "unavailable": [ … 2 ],
      • "stale_excluded": []
      },
    • "method": {
      • "points": "one point per UTC hour bucket (t = bucket start, ms); the value is the LAST collector snapshot inside that hour (snapshot_at); hours in which the collector prod…",
      • "exchanges": "exchanges that were fresh and therefore included in that hour's figure; a change in this list between points explains level shifts in the all-exchange series",
      • "history_depth": "hourly summaries are kept for 90 days; the series starts when the collector was first deployed (history_started_at), so fewer points than the requested range ma…",
      • "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 …"
      },
    • "meta": {
      • "schema": "coinboss.sd.options/1",
      • "source": [ … 2 ],
      • "observed_at": null,
      • "received_at": 1794522484809,
      • "fetched_at": 1794542300888,
      • "window": "7d",
      • "quality": "STALE",
      • "is_stale": true,
      • "cache_ttl_s": 300,
      • "fallback": "hours without a collector snapshot are absent from the series (no interpolation); PARTIAL means fewer hourly points exist than the requested range (history shor…"
      }
    }

É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=ETH&range=24h&metric=pcr2002 msRéussi STALE
coin=BTC&metric=atm_iv2003 msRéussi STALE
coin=BTC4001 msRé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
5m
Micro-cache en périphérie
10s
Fréquence de mise à jour
Un point par heure, écrit à partir du dernier cycle de collecte de cette heure.
Fenêtre
24h / 7d / 30d / 90d, points horaires.
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 ; `range` borne le nombre de points.
Tri
Temps 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.
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:58:20 UTCHTTP 2002 msSchéma conformePoint de données le plus récent : il y a 6h

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

Disponibilité, 30 derniers jours

99.75 % des 407 contrôles réussis

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/historyDégradé
Paramètres

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

string — Series to return.

string · défaut 7d — Look-back range; one point per hour, 2160 points at most.

string · défaut all — One venue, or `all` for the cross-venue aggregate.

URL de la requêtehttps://www.coinboss.com/api/sd/options/history?coin=BTC&metric=oi
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.