/api/sd/options/expiries
GETDegradatoSTALE

Opzioni per scadenza

Una riga per ogni data di scadenza: open interest, volume, rapporto put/call, max pain, IV ATM e skew, per tutti gli exchange o per un singolo exchange.

GET/api/sd/options/expiries
Degradato. L'endpoint segnala una qualità dei dati STALE

Richiesta

Parametri di query

NomeTipoObbligatorioPredefinitoValori ammessiDescrizione
coinstringObbligatorio——Simbolo della moneta, senza distinzione tra maiuscole e minuscole (per esempio `BTC`). I valori mancanti o malformati restituiscono 400. Esempio: BTC
exchangestringFacoltativoallall, deribit, binance, bybit, okx, gate, coincallUn exchange, oppure `all` per l'aggregato tra exchange.

Richiesta di esempio

curl -s "https://www.coinboss.com/api/sd/options/expiries?coin=BTC"

Campi della risposta

La tabella dei campi è generata da risposte reali, quindi elenca esattamente ciò che l'endpoint restituisce. I percorsi usano a[] per gli elementi di un array e {*} per gli oggetti indicizzati da un nome dinamico, come una moneta o un exchange.

CampoTipoUnitàDescrizione
successboolean—true quando la richiesta è riuscita. In caso di errore il corpo è `{ success: false, code, error, request_id }`.
schemastring—ID dello schema di questa risposta. Cambia solo quando un campo esistente cambia significato o tipo.
nownumbermsOra del server al momento della composizione della risposta.
coinstring—Simbolo della moneta (in maiuscolo).
exchangestring—ID dell'exchange (in minuscolo).
n_expiriesnumber—Numero di date di scadenza incluse.
n_contractsnumber—Numero di contratti di opzione inclusi.
oi_usdnumberUSDOpen interest come nozionale USD: quantità di monete × prezzo dell'indice spot. Unilaterale.
call_oi_usdnumberUSDOpen interest delle call, nozionale USD.
put_oi_usdnumberUSDOpen interest delle put, nozionale USD.
oi_coinnumbercoinOpen interest in unità della moneta sottostante.
call_oi_coinnumbercoinOpen interest delle call in unità della moneta sottostante.
put_oi_coinnumbercoinOpen interest delle put in unità della moneta sottostante.
vol_usd_24hnumberUSDVolume nozionale a 24h: quantità di monete scambiata × prezzo dell'indice spot attuale. Non è il controvalore dei premi.
call_vol_usd_24hnumberUSDVolume nozionale a 24h delle call.
put_vol_usd_24hnumberUSDVolume nozionale a 24h delle put.
vol_coin_24hnumbercoinQuantità scambiata nelle 24h in unità della moneta sottostante.
call_vol_coin_24hnumbercoinQuantità scambiata nelle 24h delle call, in coin.
put_vol_coin_24hnumbercoinQuantità scambiata nelle 24h delle put, in coin.
vol_premium_usd_24hnumberUSDControvalore dei premi a 24h (prezzo dell'opzione × quantità) dove l'exchange lo pubblica; `null` altrove. Non viene mai sommato al volume nozionale.
pcr_oinumberratioOpen interest delle put ÷ open interest delle call, in unità di moneta; `null` quando il lato call è 0.
pcr_volnumberratioVolume a 24h delle put ÷ volume a 24h delle call, in unità di moneta; `null` quando il lato call è 0.
atm_iv_30dnumber%IV ATM interpolata linearmente a una scadenza costante di 30 giorni; `null` quando i 30 giorni non sono compresi tra due scadenze.
expiriesarray—Una riga per data di scadenza.
expiries[]object—Una riga per data di scadenza.
expiries[].expirystring—Data di scadenza (UTC), `YYYY-MM-DD`, oppure `all`.
expiries[].expiry_tsnumbermsOra di scadenza.
expiries[].days_leftnumberdaysGiorni alla scadenza.
expiries[].exchangesarray—Exchange inclusi in questa riga.
expiries[].exchanges[]string—Exchange inclusi in questa riga.
expiries[].n_contractsnumber—Numero di contratti di opzione inclusi.
expiries[].oi_usdnumberUSDOpen interest come nozionale USD: quantità di monete × prezzo dell'indice spot. Unilaterale.
expiries[].call_oi_usdnumberUSDOpen interest delle call, nozionale USD.
expiries[].put_oi_usdnumberUSDOpen interest delle put, nozionale USD.
expiries[].oi_coinnumbercoinOpen interest in unità della moneta sottostante.
expiries[].call_oi_coinnumbercoinOpen interest delle call in unità della moneta sottostante.
expiries[].put_oi_coinnumbercoinOpen interest delle put in unità della moneta sottostante.
expiries[].vol_usd_24hnumberUSDVolume nozionale a 24h: quantità di monete scambiata × prezzo dell'indice spot attuale. Non è il controvalore dei premi.
expiries[].call_vol_usd_24hnumberUSDVolume nozionale a 24h delle call.
expiries[].put_vol_usd_24hnumberUSDVolume nozionale a 24h delle put.
expiries[].vol_coin_24hnumbercoinQuantità scambiata nelle 24h in unità della moneta sottostante.
expiries[].call_vol_coin_24hnumbercoinQuantità scambiata nelle 24h delle call, in coin.
expiries[].put_vol_coin_24hnumbercoinQuantità scambiata nelle 24h delle put, in coin.
expiries[].vol_premium_usd_24hnumber|nullUSDControvalore dei premi a 24h (prezzo dell'opzione × quantità) dove l'exchange lo pubblica; `null` altrove. Non viene mai sommato al volume nozionale.
expiries[].pcr_oinumberratioOpen interest delle put ÷ open interest delle call, in unità di moneta; `null` quando il lato call è 0.
expiries[].pcr_volnumberratioVolume a 24h delle put ÷ volume a 24h delle call, in unità di moneta; `null` quando il lato call è 0.
expiries[].oi_share_pctnumber%Quota dell'open interest totale (nozionale USD) della selezione.
expiries[].max_painnumberUSDPrezzo di esercizio al quale il pagamento totale ai detentori di opzioni alla scadenza è minimo.
expiries[].max_pain_usdnumberUSDPagamento totale ai detentori di opzioni se la scadenza venisse regolata al prezzo di esercizio di max pain.
expiries[].atm_ivnumber%Volatilità implicita at-the-money: media dell'IV mark al prezzo di esercizio più vicino al prezzo forward.
expiries[].atm_strikenumberUSDPrezzo di esercizio più vicino al prezzo forward, usato per l'IV ATM.
expiries[].skew_25dnumber|nullpercentage pointsIV della put con delta più vicino a −0.25 meno IV della call con delta più vicino a +0.25. Solo delta pubblicati dagli exchange.
expiries[].skew_exchangesarray—Exchange i cui delta erano disponibili per lo skew.
expiries[].skew_exchanges[]string—Exchange i cui delta erano disponibili per lo skew.
expiries[].index_pricenumberUSDPrezzo dell'indice spot usato per la conversione in USD (negli aggregati, mediana dei prezzi dell'indice dei singoli exchange).
expiries[].underlying_pricenumber|nullUSDPrezzo forward / del sottostante pubblicato dall'exchange per questa scadenza.
expiries[].by_exchange_ivarray—IV ATM di questa scadenza per exchange.
expiries[].by_exchange_iv[]object—IV ATM di questa scadenza per exchange.
expiries[].by_exchange_iv[].exchangestring—ID dell'exchange (in minuscolo).
expiries[].by_exchange_iv[].atm_ivnumber%Volatilità implicita at-the-money: media dell'IV mark al prezzo di esercizio più vicino al prezzo forward.
expiries[].by_exchange_iv[].atm_strikenumberUSDPrezzo di esercizio più vicino al prezzo forward, usato per l'IV ATM.
expiries[].by_exchange_iv[].ref_pricenumberUSDPrezzo forward rispetto al quale è stato scelto il prezzo di esercizio ATM dell'exchange.
expiries[].by_exchange_iv[].skew_25dnumber|nullpercentage pointsIV della put con delta più vicino a −0.25 meno IV della call con delta più vicino a +0.25. Solo delta pubblicati dagli exchange.
expiries[].by_exchange_iv[].oi_usdnumberUSDOpen interest come nozionale USD: quantità di monete × prezzo dell'indice spot. Unilaterale.
coverageobject—Che cosa è incluso e che cosa non è incluso nei numeri. Confrontare questo dato prima di confrontare i totali con un'altra fonte.
coverage.included_exchangesarray—Fonti i cui dati aggiornati sono inclusi.
coverage.included_exchanges[]string—Fonti i cui dati aggiornati sono inclusi.
coverage.unavailablearray—Fonti che non è stato possibile includere, ciascuna con il motivo. Non vengono mai conteggiate come 0.
coverage.unavailable[]object—Fonti che non è stato possibile includere, ciascuna con il motivo. Non vengono mai conteggiate come 0.
coverage.unavailable[].exchangestring—ID dell'exchange (in minuscolo).
coverage.unavailable[].reasonstring—Codice del motivo leggibile dalla macchina.
coverage.unavailable[].detailstring—Spiegazione del motivo in linguaggio naturale.
coverage.stale_excludedarray—Righe escluse perché il loro ultimo aggiornamento è fuori dalla finestra di freschezza. vuoto nei campioni usati per generare questa tabella
coverage.field_gapsarray—Colonne che un exchange non pubblica; sono `null` per quell'exchange.
coverage.field_gaps[]object—Colonne che un exchange non pubblica; sono `null` per quell'exchange.
coverage.field_gaps[].exchangestring—ID dell'exchange (in minuscolo).
coverage.field_gaps[].fieldsarray—Nomi delle colonne mancanti.
coverage.field_gaps[].fields[]string—Nomi delle colonne mancanti.
coverage.field_gaps[].kindstring—Famiglia di contratti: `inverse` (regolati in coin) o `linear` (regolati in stablecoin).
methodobject—Enunciato in testo semplice delle formule usate per questa risposta, una voce per campo.
method.oi_usdstring—Nota sulla formula di `oi_usd`, in testo semplice.
method.vol_usd_24hstring—Nota sulla formula di `vol_usd_24h`, in testo semplice.
method.vol_premium_usd_24hstring—Nota sulla formula di `vol_premium_usd_24h`, in testo semplice.
method.pcr_oistring—Nota sulla formula di `pcr_oi`, in testo semplice.
method.pcr_volstring—Nota sulla formula di `pcr_vol`, in testo semplice.
method.max_painstring—Nota sulla formula di `max_pain`, in testo semplice.
method.atm_ivstring—Nota sulla formula di `atm_iv`, in testo semplice.
method.atm_iv_30dstring—Nota sulla formula di `atm_iv_30d`, in testo semplice.
method.skew_25dstring—Nota sulla formula di `skew_25d`, in testo semplice.
method.expirystring—Nota sulla formula di `expiry`, in testo semplice.
method.oi_share_pctstring—Nota sulla formula di `oi_share_pct`, in testo semplice.
metaobject—Provenienza e freschezza di questa risposta.
meta.schemastring—ID dello schema di questa risposta. Cambia solo quando un campo esistente cambia significato o tipo.
meta.sourcearray—Endpoint pubblici a monte da cui sono stati raccolti i dati.
meta.source[]object—Endpoint pubblici a monte da cui sono stati raccolti i dati.
meta.source[].exchangestring—ID dell'exchange (in minuscolo).
meta.source[].endpointstring—Endpoint pubblico della fonte letto dal collector (mostrato a scopo di provenienza; i client non lo chiamano mai).
meta.observed_atnumbermsTimestamp indicato dalla fonte per i dati.
meta.received_atnumbermsOra in cui il collector di CoinBoss ha ricevuto i dati.
meta.fetched_atnumbermsOra in cui questa risposta è stata composta.
meta.windowstring—Finestra temporale coperta dai numeri.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN o UNAVAILABLE, valutato dai timestamp dei dati e dalla copertura.
meta.is_staleboolean—True quando i dati sono più vecchi della loro finestra di freschezza.
meta.cache_ttl_snumbersDurata in cache di questa risposta.
meta.fallbackstring—Che cosa restituisce l'endpoint quando il collector o una fonte non funziona.

Generata 2026-11-11 23:00 UTC da 3 risposte reali.

Risposta di esempio

/api/sd/options/expiries?coin=BTC · Risposta reale acquisita 2026-11-13 03:58:20 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: expiries conteneva 12 elementi; meta.source conteneva 6 elementi; coverage.field_gaps conteneva 4 elementi; coverage.unavailable conteneva 12 elementi; coverage.stale_included conteneva 6 elementi; expiries[].by_exchange_iv conteneva 6 elementi.

  • {
    • "success": true,
    • "schema": "coinboss.sd.options/1",
    • "now": 1794542300391,
    • "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": [
      • { … 30 },
      • { … 30 }
      ],
    • "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 …",
      • "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": [ … 2 ],
      • "observed_at": 1794522472654,
      • "received_at": 1794522473814,
      • "fetched_at": 1794542300391,
      • "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…"
      }
    }

Campioni verificati

Oltre all'esempio qui sopra, la sonda chiama questo endpoint con i parametri seguenti e ogni volta ne verifica lo schema.

ParametriHTTPLatenzaRisultato
coin=ETH&exchange=deribit20046 msSuperato STALE
coin=SOL20022 msSuperato STALE
coin=BTC&exchange=nope4001 msSuperato restituisce l'errore previsto

Verificato 2026-11-13 03:58:20 UTC

Dettagli

Autenticazione
Nessuna. Endpoint pubblico.
Limite di richieste
1200 richieste al minuto per IP
Cache del server
60s
Micro-cache edge
10s
Frequenza di aggiornamento
Ciclo del collector ogni 10 minuti; un exchange è aggiornato per 25 minuti dopo il suo ultimo ciclo riuscito.
Finestra
Ultima istantanea per scadenza; i campi di volume coprono le ultime 24 ore.
Fonti dei dati
Endpoint REST pubblici delle opzioni di Deribit, Binance, Bybit, OKX, Gate e Coincall, raccolti e archiviati da CoinBoss (sd_opt_latest, sd_opt_summary_hourly). Non è coinvolto alcun aggregatore di terze parti.
Copertura degli exchange
Sei exchange di opzioni. Una moneta priva di opzioni quotate sugli exchange selezionati restituisce HTTP 200 con campi null, `meta.quality = "UNAVAILABLE"` e il motivo in `coverage.unavailable`. Vi sono elencati anche gli exchange privi di un feed pubblico di opzioni.
Ordinamento
Data di scadenza crescente.
Unità
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.
Metodo
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.
Timestamp
Millisecondi dall'epoca Unix (UTC), salvo diversa indicazione nella descrizione del campo
Formato della risposta
json
Stabilità
Stabile
Disponibile dal
2026-11-11

Stato in tempo reale

DegradatoVerificato 2026-11-13 03:58:20 UTCHTTP 20061 msSchema conformeDato più recente risalente a 5.5h fa

L'endpoint segnala una qualità dei dati STALE

Disponibilità, ultimi 30 giorni

100% di 407 verifiche superate

Deriva dello schema rilevata dall'ultima verifica della sonda
  • Restituito ma non documentato: coverage.stale_included, coverage.stale_included[], coverage.stale_included[].exchange, coverage.stale_included[].age_s

Errori

Le chiamate non riuscite hanno la stessa struttura su tutti gli endpoint. L'elenco completo è nella pagina degli errori. Errori e limiti di richieste →

CodiceHTTPSignificatoChe cosa fare
INVALID_PARAM400Manca un parametro obbligatorio oppure un valore non è accettato. `param` indica il nome del parametro quando è noto.Non riprovare senza modifiche; correggere la richiesta.
UNAUTHORIZED401L'header `CB-API-KEY` è stato inviato ma la chiave è sconosciuta o revocata. I dati pubblici non richiedono alcuna chiave: rimuovere l'header o usare una chiave valida.Non riprovare senza modifiche.
FORBIDDEN403La route non fa parte dell'API pubblica (interna o riservata agli account).Non riprovare.
NOT_FOUND404Route sconosciuta, oppure la moneta / l'exchange / il fondo richiesto non esiste.Non riprovare; verificare il percorso e gli identificatori nel catalogo.
RATE_LIMITED429Più richieste del limite al minuto. `Retry-After` indica i secondi da attendere.Attendere `Retry-After`, poi riprovare con backoff.
INTERNAL500Errore imprevisto del server. Il messaggio è volutamente generico; citare `request_id` quando lo si segnala.Riprovare una volta dopo qualche secondo; se persiste, segnalarlo con l'ID della richiesta.
UPSTREAM_FAILED503La fonte di dati alla base di questo endpoint non ha risposto in tempo. Al suo posto non vengono restituiti numeri obsoleti o sostitutivi.Riprovare con backoff; controllare la pagina di stato.
UNAVAILABLE501 / 503Il dataset è temporaneamente non pronto (riscaldamento della cache) oppure l'endpoint non ha ancora una fonte pubblica lecita.Riprovare più tardi; il catalogo contrassegna gli endpoint non disponibili per scelta progettuale.
REQUEST_FAILED200Alcuni endpoint meno recenti rispondono HTTP 200 con `success: false`. Controllare sempre `success`, non solo lo stato HTTP.Dipende dal messaggio; trattare come una richiesta non riuscita.

Prova

GET/api/sd/options/expiriesDegradato
Parametri

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

string · predefinito all — One venue, or `all` for the cross-venue aggregate.

URL della richiestahttps://www.coinboss.com/api/sd/options/expiries?coin=BTC
Scegliere un endpoint e premere «Invia richiesta». La risposta, gli header e i tempi compariranno qui.