/api/sd/options/strikes
GETTerdegradasiSTALE

Opsi per strike

Open interest dan volume 24h per strike, call dan put secara terpisah. Jika hanya satu jatuh tempo, respons juga memuat kurva max pain (payout di setiap strike).

GET/api/sd/options/strikes
Terdegradasi. Endpoint melaporkan kualitas data STALE

Permintaan

Parameter kueri

NamaTipeWajibDefaultNilai yang diizinkanDeskripsi
coinstringWajib——Simbol koin, tidak peka huruf besar/kecil (misalnya `BTC`). Nilai yang tidak diisi atau salah format mengembalikan 400. Contoh: BTC
expirystringOpsionalall—`all`, atau satu tanggal jatuh tempo UTC dalam format `YYYY-MM-DD`. Kurva max pain hanya dikembalikan untuk satu jatuh tempo. Tanggal yang tidak dikenal mengembalikan 404 dan mencantumkan tanggal yang tersedia.
exchangestringOpsionalallall, deribit, binance, bybit, okx, gate, coincallSatu bursa, atau `all` untuk agregat lintas bursa.

Contoh permintaan

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

Kolom respons

Tabel kolom dihasilkan dari respons nyata, sehingga memuat persis apa yang dikembalikan endpoint. Path memakai a[] untuk item array dan {*} untuk objek yang kuncinya berupa nama dinamis seperti koin atau bursa.

KolomTipeSatuanDeskripsi
successboolean—true jika permintaan berhasil. Jika gagal, body-nya adalah `{ success: false, code, error, request_id }`.
schemastring—ID skema respons ini. ID hanya berubah jika kolom yang sudah ada berubah makna atau tipe.
nownumbermsWaktu server saat respons disusun.
coinstring—Simbol koin (huruf besar).
exchangestring—ID bursa (huruf kecil).
expirystring—Tanggal jatuh tempo (UTC), `YYYY-MM-DD`, atau `all`.
expiry_tsnull—Waktu jatuh tempo.
days_leftnulldaysJumlah hari hingga jatuh tempo.
index_pricenumberUSDHarga indeks spot yang dipakai untuk konversi ke USD (dalam agregat: median harga indeks milik masing-masing bursa).
n_strikesnumber—Jumlah strike yang dikembalikan.
max_painnullUSDStrike dengan total pembayaran kepada pemegang opsi saat jatuh tempo yang paling kecil.
max_pain_usdnullUSDTotal pembayaran kepada pemegang opsi jika jatuh tempo diselesaikan pada strike max pain.
n_contractsnumber—Jumlah kontrak opsi yang disertakan.
oi_usdnumberUSDOpen interest sebagai nosional USD: kuantitas koin × harga indeks spot. Satu sisi.
call_oi_usdnumberUSDOpen interest call, nosional USD.
put_oi_usdnumberUSDOpen interest put, nosional USD.
oi_coinnumbercoinOpen interest dalam unit koin dasar.
call_oi_coinnumbercoinOpen interest call dalam unit koin dasar.
put_oi_coinnumbercoinOpen interest put dalam unit koin dasar.
vol_usd_24hnumberUSDVolume nosional 24h: kuantitas koin yang diperdagangkan × harga indeks spot saat ini. Bukan nilai transaksi premi.
call_vol_usd_24hnumberUSDVolume nosional 24h call.
put_vol_usd_24hnumberUSDVolume nosional 24h put.
vol_coin_24hnumbercoinKuantitas yang diperdagangkan dalam 24h, dalam unit koin dasar.
call_vol_coin_24hnumbercoinKuantitas call yang diperdagangkan dalam 24h, dalam koin.
put_vol_coin_24hnumbercoinKuantitas put yang diperdagangkan dalam 24h, dalam koin.
vol_premium_usd_24hnumberUSDNilai transaksi premi 24h (harga opsi × kuantitas) jika bursa memublikasikannya; `null` jika tidak. Tidak pernah dijumlahkan ke volume nosional.
pcr_oinumberratioOpen interest put ÷ open interest call, dalam unit koin; `null` jika sisi call bernilai 0.
pcr_volnumberratioVolume 24h put ÷ volume 24h call, dalam unit koin; `null` jika sisi call bernilai 0.
expiries_availablearray—Tanggal jatuh tempo yang saat ini memiliki kontrak.
expiries_available[]string—Tanggal jatuh tempo yang saat ini memiliki kontrak.
strikesarray—Satu baris per strike, menaik.
strikes[]object—Satu baris per strike, menaik.
strikes[].strikenumberUSDHarga strike.
strikes[].call_oi_coinnumbercoinOpen interest call dalam unit koin dasar.
strikes[].put_oi_coinnumbercoinOpen interest put dalam unit koin dasar.
strikes[].call_oi_usdnumberUSDOpen interest call, nosional USD.
strikes[].put_oi_usdnumberUSDOpen interest put, nosional USD.
strikes[].call_vol_coin_24hnumbercoinKuantitas call yang diperdagangkan dalam 24h, dalam koin.
strikes[].put_vol_coin_24hnumbercoinKuantitas put yang diperdagangkan dalam 24h, dalam koin.
strikes[].call_vol_usd_24hnumberUSDVolume nosional 24h call.
strikes[].put_vol_usd_24hnumberUSDVolume nosional 24h put.
strikes[].pain_usdnullUSDTotal pembayaran kepada pemegang opsi jika jatuh tempo diselesaikan pada strike ini.
strikes[].call_pain_usdnullUSDPembayaran kepada pemegang call jika jatuh tempo diselesaikan pada strike ini.
strikes[].put_pain_usdnullUSDPembayaran kepada pemegang put jika jatuh tempo diselesaikan pada strike ini.
coverageobject—Apa yang termasuk dan tidak termasuk dalam angka-angka ini. Bandingkan ini terlebih dahulu sebelum membandingkan total dengan sumber lain.
coverage.included_exchangesarray—Sumber yang data segarnya disertakan.
coverage.included_exchanges[]string—Sumber yang data segarnya disertakan.
coverage.unavailablearray—Sumber yang tidak dapat disertakan, masing-masing dengan alasannya. Sumber tersebut tidak pernah dihitung sebagai 0.
coverage.unavailable[]object—Sumber yang tidak dapat disertakan, masing-masing dengan alasannya. Sumber tersebut tidak pernah dihitung sebagai 0.
coverage.unavailable[].exchangestring—ID bursa (huruf kecil).
coverage.unavailable[].reasonstring—Kode alasan yang dapat dibaca mesin.
coverage.unavailable[].detailstring—Penjelasan alasan yang dapat dibaca manusia.
coverage.stale_excludedarray—Baris yang tidak dimasukkan karena pembaruan terakhirnya berada di luar jendela kesegaran. kosong pada sampel yang dipakai untuk menghasilkan tabel ini
coverage.field_gapsarray—Kolom yang tidak dipublikasikan suatu bursa; nilainya `null` untuk bursa tersebut.
coverage.field_gaps[]object—Kolom yang tidak dipublikasikan suatu bursa; nilainya `null` untuk bursa tersebut.
coverage.field_gaps[].exchangestring—ID bursa (huruf kecil).
coverage.field_gaps[].fieldsarray—Nama kolom yang tidak ada.
coverage.field_gaps[].fields[]string—Nama kolom yang tidak ada.
coverage.field_gaps[].kindstring—Keluarga kontrak: `inverse` (penyelesaian dalam koin) atau `linear` (penyelesaian dalam stablecoin).
methodobject—Pernyataan teks biasa tentang rumus yang dipakai untuk respons ini, satu entri per kolom.
method.oi_usdstring—Catatan rumus untuk `oi_usd`, teks biasa.
method.vol_usd_24hstring—Catatan rumus untuk `vol_usd_24h`, teks biasa.
method.pcr_oistring—Catatan rumus untuk `pcr_oi`, teks biasa.
method.max_painstring—Catatan rumus untuk `max_pain`, teks biasa.
method.strikesstring—Catatan rumus untuk `strikes`, teks biasa.
method.pain_usdstring—Catatan rumus untuk `pain_usd`, teks biasa.
metaobject—Silsilah data dan kesegaran respons ini.
meta.schemastring—ID skema respons ini. ID hanya berubah jika kolom yang sudah ada berubah makna atau tipe.
meta.sourcearray—Endpoint publik hulu tempat data dikumpulkan.
meta.source[]object—Endpoint publik hulu tempat data dikumpulkan.
meta.source[].exchangestring—ID bursa (huruf kecil).
meta.source[].endpointstring—Endpoint publik sumber yang dibaca kolektor (ditampilkan sebagai silsilah data; klien tidak pernah memanggilnya).
meta.observed_atnumbermsStempel waktu yang diberikan sumber untuk data tersebut.
meta.received_atnumbermsWaktu kolektor CoinBoss menerima data.
meta.fetched_atnumbermsWaktu respons ini disusun.
meta.windowstring—Jendela waktu yang dicakup angka-angka ini.
meta.qualitystring—FRESH, PARTIAL, STALE, BROKEN, atau UNAVAILABLE, dinilai dari stempel waktu data dan cakupan.
meta.is_staleboolean—True jika data lebih lama dari jendela kesegarannya.
meta.cache_ttl_snumbersMasa hidup cache respons ini.
meta.fallbackstring—Apa yang dikembalikan endpoint ketika kolektor atau sumber gagal.

Dihasilkan 2026-11-11 23:00 UTC dari 3 respons nyata.

Contoh respons

/api/sd/options/strikes?coin=BTC · Respons nyata yang direkam 2026-11-13 03:52:55 UTC. Array dan map yang panjang dipersingkat untuk tampilan: strikes berisi 146 item; meta.source berisi 6 item; expiries_available berisi 12 item; coverage.field_gaps berisi 4 item; coverage.unavailable berisi 12 item; coverage.stale_included berisi 6 item.

  • {
    • "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…"
      }
    }

Sampel terverifikasi

Selain contoh di atas, probe memanggil endpoint ini dengan parameter berikut dan memeriksa skemanya setiap kali.

ParameterHTTPLatensiHasil
coin=ETH2007 msLolos STALE
coin=BTC&exchange=deribit2006 msLolos STALE
coin=BTC&expiry=2020-01-014043 msLolos mengembalikan error yang diharapkan

Diperiksa 2026-11-13 03:28:18 UTC

Detail

Autentikasi
Tidak ada. Endpoint publik.
Batas permintaan
1200 permintaan per menit per IP
Cache server
60s
Mikro-cache edge
10s
Frekuensi pembaruan
Putaran kolektor setiap 10 menit; sebuah bursa dianggap segar selama 25 menit setelah putaran terakhirnya yang berhasil.
Jendela
Snapshot terbaru; kolom volume mencakup 24 jam terakhir.
Sumber data
Endpoint opsi REST publik milik Deribit, Binance, Bybit, OKX, Gate, dan Coincall, dikumpulkan dan disimpan oleh CoinBoss (sd_opt_latest, sd_opt_summary_hourly). Tidak ada agregator pihak ketiga yang terlibat.
Cakupan bursa
Enam bursa opsi. Koin yang tidak memiliki opsi tercatat di bursa yang dipilih mengembalikan HTTP 200 dengan kolom null, `meta.quality = "UNAVAILABLE"`, dan alasannya di `coverage.unavailable`. Bursa tanpa feed opsi publik juga tercantum di sana.
Paginasi
Tanpa paginasi; semua strike pada pilihan tersebut dikembalikan.
Pengurutan
Strike, menaik.
Satuan
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.
Metode
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.
Stempel waktu
Milidetik epoch Unix (UTC) kecuali deskripsi kolom menyatakan lain
Format respons
json
Stabilitas
Stabil
Tersedia sejak
2026-11-11

Status langsung

TerdegradasiDiperiksa 2026-11-13 03:52:55 UTCHTTP 20011 msSkema sesuaiTitik data terbaru berusia 5.4h

Endpoint melaporkan kualitas data STALE

Ketersediaan, 30 hari terakhir

100% dari 406 pemeriksaan lolos

Pergeseran skema yang terdeteksi oleh probe terakhir
  • Dikembalikan tetapi tidak didokumentasikan: coverage.stale_included, coverage.stale_included[], coverage.stale_included[].exchange, coverage.stale_included[].age_s

Error

Panggilan yang gagal memiliki satu bentuk yang sama di semua endpoint. Daftar lengkapnya ada di halaman error. Error dan batas permintaan →

KodeHTTPArtiTindakan
INVALID_PARAM400Parameter wajib tidak ada atau suatu nilai tidak diterima. `param` menyebutkan nama parameternya jika diketahui.Jangan mengulang tanpa perubahan; perbaiki permintaannya.
UNAUTHORIZED401Header `CB-API-KEY` dikirim tetapi kuncinya tidak dikenal atau sudah dicabut. Data publik tidak memerlukan kunci — hapus header tersebut atau gunakan kunci yang valid.Jangan mengulang tanpa perubahan.
FORBIDDEN403Rute ini bukan bagian dari API publik (internal atau khusus akun).Jangan mengulang.
NOT_FOUND404Rute tidak dikenal, atau koin / bursa / dana yang diminta tidak ada.Jangan mengulang; periksa path dan pengenal terhadap katalog.
RATE_LIMITED429Jumlah permintaan melebihi batas per menit. `Retry-After` memberikan jumlah detik untuk menunggu.Tunggu selama `Retry-After`, lalu ulangi dengan backoff.
INTERNAL500Error server yang tidak terduga. Pesannya sengaja dibuat generik; sertakan `request_id` saat melaporkannya.Ulangi sekali setelah beberapa detik; laporkan beserta ID permintaan jika masih terjadi.
UPSTREAM_FAILED503Sumber data di balik endpoint ini tidak menjawab tepat waktu. Tidak ada angka usang atau angka pengganti yang dikembalikan sebagai gantinya.Ulangi dengan backoff; periksa halaman status.
UNAVAILABLE501 / 503Dataset untuk sementara belum siap (cache sedang diisi) atau endpoint belum memiliki sumber publik yang sah.Ulangi nanti; katalog menandai endpoint yang memang tidak tersedia secara desain.
REQUEST_FAILED200Beberapa endpoint lama menjawab HTTP 200 dengan `success: false`. Selalu periksa `success`, bukan hanya status HTTP.Bergantung pada pesannya; perlakukan sebagai permintaan yang gagal.

Coba

GET/api/sd/options/strikesTerdegradasi
Parameter

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

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

URL permintaanhttps://www.coinboss.com/api/sd/options/strikes?coin=BTC
Pilih endpoint lalu tekan “Kirim permintaan”. Respons, header, dan waktu tempuhnya akan muncul di sini.