Catena di opzioni (singolo exchange)
Call e put affiancate per ogni prezzo di esercizio (strike) di una scadenza su un exchange: open interest, volume, prezzo mark, IV mark / bid / ask e greche così come pubblicate dall'exchange.
/api/sd/options/chainRichiesta
Parametri di query
| Nome | Tipo | Obbligatorio | Predefinito | Valori ammessi | Descrizione |
|---|---|---|---|---|---|
| coin | string | Obbligatorio | — | — | Simbolo della moneta, senza distinzione tra maiuscole e minuscole (per esempio `BTC`). I valori mancanti o malformati restituiscono 400. Esempio: BTC |
| exchange | string | Obbligatorio | — | deribit, binance, bybit, okx, gate, coincall | ID dell'exchange. `all` qui non è accettato: una catena appartiene a un solo exchange. Esempio: okx |
| expiry | string | Facoltativo | — | — | Data di scadenza UTC nel formato `YYYY-MM-DD`. Predefinito: la scadenza più vicina. `all` non è accettato. |
| kind | string | Facoltativo | — | inverse, linear | Famiglia di contratti quando l'exchange quota sia opzioni regolate in coin (`inverse`) sia opzioni regolate in stablecoin (`linear`). Predefinito: la famiglia con l'open interest maggiore per quella scadenza. |
| limit | integer | Facoltativo | 100 | ≥ 1 · ≤ 500 | Prezzi di esercizio per pagina (una riga = un prezzo di esercizio con la sua call e la sua put). |
| offset | integer | Facoltativo | 0 | ≥ 0 · ≤ 100000 | Numero di prezzi di esercizio da saltare. |
Richiesta di esempio
curl -s "https://www.coinboss.com/api/sd/options/chain?coin=BTC&exchange=okx"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.
| Campo | Tipo | Unità | Descrizione |
|---|---|---|---|
| success | boolean | — | true quando la richiesta è riuscita. In caso di errore il corpo è `{ success: false, code, error, request_id }`. |
| schema | string | — | ID dello schema di questa risposta. Cambia solo quando un campo esistente cambia significato o tipo. |
| now | number | ms | Ora del server al momento della composizione della risposta. |
| coin | string | — | Simbolo della moneta (in maiuscolo). |
| exchange | string | — | ID dell'exchange (in minuscolo). |
| expiry | string | — | Data di scadenza (UTC), `YYYY-MM-DD`, oppure `all`. |
| expiry_ts | number | ms | Ora di scadenza. |
| days_left | number | days | Giorni alla scadenza. |
| kind | string | — | Famiglia di contratti: `inverse` (regolati in coin) o `linear` (regolati in stablecoin). |
| kinds_available | array | — | Famiglie di contratti che l'exchange quota per questa scadenza. |
| kinds_available[] | string | — | Famiglie di contratti che l'exchange quota per questa scadenza. |
| expiries_available | array | — | Date di scadenza che al momento hanno contratti. |
| expiries_available[] | string | — | Date di scadenza che al momento hanno contratti. |
| underlying | string | — | Sottostante della famiglia di contratti. |
| settle | string | — | Valuta di regolamento della famiglia di contratti. |
| contract_size | number | coin | Quantità della moneta sottostante per contratto. |
| underlying_price | number | USD | Prezzo forward / del sottostante pubblicato dall'exchange per questa scadenza. |
| index_price | number | USD | Prezzo dell'indice spot usato per la conversione in USD (negli aggregati, mediana dei prezzi dell'indice dei singoli exchange). |
| total_strikes | number | — | Prezzi di esercizio disponibili per questa scadenza prima della paginazione. |
| limit | number | — | Limite di righe applicato. |
| offset | number | — | Righe saltate. |
| returned | number | — | Prezzi di esercizio restituiti in questa pagina. |
| rows | array | — | Una riga per prezzo di esercizio con la sua call e la sua put. |
| rows[] | object | — | Una riga per prezzo di esercizio con la sua call e la sua put. |
| rows[].strike | number | USD | Prezzo di esercizio (strike). |
| rows[].call | object | — | Contratto call a questo prezzo di esercizio; `null` quando l'exchange non ne quota alcuno. |
| rows[].call.instrument | string | — | Nome del contratto così come lo scrive l'exchange. |
| rows[].call.oi_contracts | number | contracts | Open interest in contratti, così come li conta l'exchange. |
| rows[].call.oi_coin | number | coin | Open interest in unità della moneta sottostante. |
| rows[].call.oi_usd | number | USD | Open interest come nozionale USD: quantità di monete × prezzo dell'indice spot. Unilaterale. |
| rows[].call.vol_contracts_24h | number | contracts | Volume a 24h in contratti, così come li conta l'exchange. |
| rows[].call.vol_coin_24h | number | coin | Quantità scambiata nelle 24h in unità della moneta sottostante. |
| rows[].call.vol_usd_24h | number | USD | Volume nozionale a 24h: quantità di monete scambiata × prezzo dell'indice spot attuale. Non è il controvalore dei premi. |
| rows[].call.vol_premium_usd_24h | number|null | USD | Controvalore dei premi a 24h (prezzo dell'opzione × quantità) dove l'exchange lo pubblica; `null` altrove. Non viene mai sommato al volume nozionale. |
| rows[].call.mark_price | number|null | — | Prezzo mark dell'opzione nella sua unità di quotazione (coin per i contratti regolati in coin). |
| rows[].call.mark_price_usd | number|null | USD | Prezzo mark dell'opzione convertito in USD. |
| rows[].call.mark_iv | number | % | Volatilità implicita al prezzo mark. |
| rows[].call.bid_iv | number|null | % | Volatilità implicita al miglior bid; `null` quando l'exchange non la pubblica. |
| rows[].call.ask_iv | number|null | % | Volatilità implicita al miglior ask; `null` quando l'exchange non la pubblica. |
| rows[].call.delta | number|null | — | Delta così come pubblicato dall'exchange; `null` quando non è pubblicato. |
| rows[].call.gamma | number|null | — | Gamma così come pubblicato dall'exchange; `null` quando non è pubblicato. |
| rows[].call.vega | number|null | — | Vega così come pubblicato dall'exchange; `null` quando non è pubblicato. |
| rows[].call.theta | number|null | — | Theta così come pubblicato dall'exchange; `null` quando non è pubblicato. |
| rows[].call.observed_at | number | ms | Timestamp indicato dalla fonte per i dati. |
| rows[].put | object | — | Contratto put a questo prezzo di esercizio; `null` quando l'exchange non ne quota alcuno. |
| rows[].put.instrument | string | — | Nome del contratto così come lo scrive l'exchange. |
| rows[].put.oi_contracts | number | contracts | Open interest in contratti, così come li conta l'exchange. |
| rows[].put.oi_coin | number | coin | Open interest in unità della moneta sottostante. |
| rows[].put.oi_usd | number | USD | Open interest come nozionale USD: quantità di monete × prezzo dell'indice spot. Unilaterale. |
| rows[].put.vol_contracts_24h | number | contracts | Volume a 24h in contratti, così come li conta l'exchange. |
| rows[].put.vol_coin_24h | number | coin | Quantità scambiata nelle 24h in unità della moneta sottostante. |
| rows[].put.vol_usd_24h | number | USD | Volume nozionale a 24h: quantità di monete scambiata × prezzo dell'indice spot attuale. Non è il controvalore dei premi. |
| rows[].put.vol_premium_usd_24h | number|null | USD | Controvalore dei premi a 24h (prezzo dell'opzione × quantità) dove l'exchange lo pubblica; `null` altrove. Non viene mai sommato al volume nozionale. |
| rows[].put.mark_price | number | — | Prezzo mark dell'opzione nella sua unità di quotazione (coin per i contratti regolati in coin). |
| rows[].put.mark_price_usd | number | USD | Prezzo mark dell'opzione convertito in USD. |
| rows[].put.mark_iv | number | % | Volatilità implicita al prezzo mark. |
| rows[].put.bid_iv | number|null | % | Volatilità implicita al miglior bid; `null` quando l'exchange non la pubblica. |
| rows[].put.ask_iv | number|null | % | Volatilità implicita al miglior ask; `null` quando l'exchange non la pubblica. |
| rows[].put.delta | number|null | — | Delta così come pubblicato dall'exchange; `null` quando non è pubblicato. |
| rows[].put.gamma | number|null | — | Gamma così come pubblicato dall'exchange; `null` quando non è pubblicato. |
| rows[].put.vega | number|null | — | Vega così come pubblicato dall'exchange; `null` quando non è pubblicato. |
| rows[].put.theta | number|null | — | Theta così come pubblicato dall'exchange; `null` quando non è pubblicato. |
| rows[].put.observed_at | number | ms | Timestamp indicato dalla fonte per i dati. |
| coverage | object | — | Che cosa è incluso e che cosa non è incluso nei numeri. Confrontare questo dato prima di confrontare i totali con un'altra fonte. |
| coverage.included_exchanges | array | — | Fonti i cui dati aggiornati sono inclusi. |
| coverage.included_exchanges[] | string | — | Fonti i cui dati aggiornati sono inclusi. |
| coverage.unavailable | array | — | Fonti che non è stato possibile includere, ciascuna con il motivo. Non vengono mai conteggiate come 0. vuoto nei campioni usati per generare questa tabella |
| coverage.stale_excluded | array | — | Righe escluse perché il loro ultimo aggiornamento è fuori dalla finestra di freschezza. vuoto nei campioni usati per generare questa tabella |
| coverage.field_gaps | array | — | 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[].exchange | string | — | ID dell'exchange (in minuscolo). |
| coverage.field_gaps[].fields | array | — | Nomi delle colonne mancanti. |
| coverage.field_gaps[].fields[] | string | — | Nomi delle colonne mancanti. |
| coverage.field_gaps[].kind | string | — | Famiglia di contratti: `inverse` (regolati in coin) o `linear` (regolati in stablecoin). |
| method | object | — | Enunciato in testo semplice delle formule usate per questa risposta, una voce per campo. |
| method.chain | string | — | Nota sulla formula di `chain`, in testo semplice. |
| method.kind | string | — | Nota sulla formula di `kind`, in testo semplice. |
| method.oi_usd | string | — | Nota sulla formula di `oi_usd`, in testo semplice. |
| method.mark_price | string | — | Nota sulla formula di `mark_price`, in testo semplice. |
| method.iv | string | — | Nota sulla formula di `iv`, in testo semplice. |
| method.greeks | string | — | Nota sulla formula di `greeks`, in testo semplice. |
| method.vol_usd_24h | string | — | Nota sulla formula di `vol_usd_24h`, in testo semplice. |
| method.vol_premium_usd_24h | string | — | Nota sulla formula di `vol_premium_usd_24h`, in testo semplice. |
| meta | object | — | Provenienza e freschezza di questa risposta. |
| meta.schema | string | — | ID dello schema di questa risposta. Cambia solo quando un campo esistente cambia significato o tipo. |
| meta.source | array | — | 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[].exchange | string | — | ID dell'exchange (in minuscolo). |
| meta.source[].endpoint | string | — | Endpoint pubblico della fonte letto dal collector (mostrato a scopo di provenienza; i client non lo chiamano mai). |
| meta.observed_at | number | ms | Timestamp indicato dalla fonte per i dati. |
| meta.received_at | number | ms | Ora in cui il collector di CoinBoss ha ricevuto i dati. |
| meta.fetched_at | number | ms | Ora in cui questa risposta è stata composta. |
| meta.window | string | — | Finestra temporale coperta dai numeri. |
| meta.quality | string | — | FRESH, PARTIAL, STALE, BROKEN o UNAVAILABLE, valutato dai timestamp dei dati e dalla copertura. |
| meta.is_stale | boolean | — | True quando i dati sono più vecchi della loro finestra di freschezza. |
| meta.cache_ttl_s | number | s | Durata in cache di questa risposta. |
| meta.fallback | string | — | 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/chain?coin=BTC&exchange=okx · Risposta reale acquisita 2026-11-13 03:52:54 UTC. Array e mappe lunghi sono abbreviati per la visualizzazione: rows conteneva 45 elementi; expiries_available conteneva 12 elementi.
- "success"true
- "schema""coinboss.sd.options/1"
- "now"1794541974766
- "coin""BTC"
- "exchange""okx"
- "expiry""2026-11-13"
- "expiry_ts"1794556800000
- "days_left"0.1716
- "kind""inverse"
- "kinds_available"
- "inverse"
- "linear"
- "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"
- "underlying""BTC-USD"
- "settle""BTC"
- "contract_size"0.01
- "underlying_price"71428.8359576
- "index_price"71417.4
- "total_strikes"45
- "limit"100
- "offset"0
- "returned"45
- "rows"
- "coverage"
- "included_exchanges"
- "unavailable"
- "stale_excluded"
- "field_gaps"
- "stale_included"
- "method"
- "chain""T-quote for one exchange, one expiry and one contract family: one row per strike (ascending) with the call and put legs; paginated by strike with limit (default…"
- "kind""inverse = coin-settled (Deribit BTC/ETH, OKX *-USD); linear = USD/USDT/USDC-settled. When an exchange lists both families for the expiry and kind is omitted, th…"
- "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 …"
- "mark_price""exchange-native quote: Deribit/OKX inverse in underlying coin per 1 coin; Binance in USDT per contract (contract_size coins); others in USD per 1 coin. mark_pri…"
- "iv""mark_iv / bid_iv / ask_iv in percent as published by the exchange (no-quote sentinels such as 0 or -1 are null)"
- "greeks""delta/gamma/vega/theta exactly as published by the exchange (OKX: Black-Scholes greeks in USD terms); never computed by CoinBoss; null where the exchange does n…"
- "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…"
- "meta"
- "schema""coinboss.sd.options/1"
- "source"
- "observed_at"1794522472654
- "received_at"1794522473638
- "fetched_at"1794541974766
- "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.
| Parametri | HTTP | Latenza | Risultato |
|---|---|---|---|
| coin=ETH&exchange=deribit | 200 | 59 ms | Superato STALE |
| coin=BTC&limit=5&exchange=bybit | 200 | 3 ms | Superato STALE |
| coin=BTC | 400 | 1 ms | Superato restituisce l'errore previsto |
Verificato 2026-11-13 03:28:17 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 di una scadenza.
- 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.
- Paginazione
- Basata su offset: `limit` (max 500) e `offset`; `total_strikes` e `returned` sono nella risposta.
- Ordinamento
- Prezzo di esercizio 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
- Greeks and IV are passed through from the venue, not recomputed. A venue that does not publish a column returns `null` for it and the column is listed under `coverage.field_gaps`.
- 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
L'endpoint segnala una qualità dei dati STALE
Disponibilità, ultimi 30 giorni
100% di 406 verifiche superate
- 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 →
| Codice | HTTP | Significato | Che cosa fare |
|---|---|---|---|
| INVALID_PARAM | 400 | Manca un parametro obbligatorio oppure un valore non è accettato. `param` indica il nome del parametro quando è noto. | Non riprovare senza modifiche; correggere la richiesta. |
| UNAUTHORIZED | 401 | L'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. |
| FORBIDDEN | 403 | La route non fa parte dell'API pubblica (interna o riservata agli account). | Non riprovare. |
| NOT_FOUND | 404 | Route sconosciuta, oppure la moneta / l'exchange / il fondo richiesto non esiste. | Non riprovare; verificare il percorso e gli identificatori nel catalogo. |
| RATE_LIMITED | 429 | Più richieste del limite al minuto. `Retry-After` indica i secondi da attendere. | Attendere `Retry-After`, poi riprovare con backoff. |
| INTERNAL | 500 | Errore 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_FAILED | 503 | La 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. |
| UNAVAILABLE | 501 / 503 | Il 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_FAILED | 200 | Alcuni 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
/api/sd/options/chainDegradatostring — Coin symbol, case-insensitive (for example `BTC`). Missing or malformed values return 400.
string — Venue id. `all` is not accepted here: a chain belongs to one venue.
string — UTC expiry date as `YYYY-MM-DD`. Default: the nearest expiry. `all` is not accepted.
string — Contract family when the venue lists both coin-settled (`inverse`) and stablecoin-settled (`linear`) options. Default: the family with the larger open interest for that expiry.
integer · predefinito 100 · min 1 · max 500 — Strikes per page (one row = one strike with its call and put).
integer · predefinito 0 · min 0 · max 100000 — Number of strikes to skip.
https://www.coinboss.com/api/sd/options/chain?coin=BTC&exchange=okxAltro in questa categoria
- Catena di opzioni (singolo exchange) /api/sd/options/chain
- Opzioni per scadenza /api/sd/options/expiries
- Storico delle opzioni (orario) /api/sd/options/history
- Panoramica delle opzioni (tutti gli exchange) /api/sd/options/overview
- Opzioni per prezzo di esercizio /api/sd/options/strikes
- Sintesi delle opzioni della pagina moneta /api/currency/options-summary
- Smile / struttura a termine della volatilità implicita delle opzioni /api/options/iv
- Storico della volatilità implicita delle opzioni /api/options/iv-history
- Max pain delle opzioni /api/options/max-pain
- OI delle opzioni per scadenza /api/options/oi-by-expiry
- OI delle opzioni per prezzo di esercizio /api/options/oi-by-strike
- Panoramica delle opzioni /api/options/overview
- Distribuzione del volume delle opzioni /api/options/volume-dist