Option smile
IV-by-strike for a single expiration on the latest snapshot. Both option types returned, ordered by strike. Designed for direct plotting (x = strike, y = mark_iv) with optional bid/ask brackets.
The endpoint is a focused projection of Option chain — same underlying data, narrower column set, server-side filtered to non-zero IV.
SQL API
The smile shape comes from the same api.option_chains table:
WITH (
SELECT max(timestamp)
FROM api.option_chains
WHERE exchange = 'deribit' AND underlying_asset = 'BTC'
) AS latest_ts
SELECT strike, option_type, mark_iv, bid_iv, ask_iv, delta, underlying_price
FROM api.option_chains
WHERE exchange = 'deribit'
AND underlying_asset = 'BTC'
AND toDate(expiration) = toDate('2026-06-26')
AND timestamp = latest_ts
AND mark_iv != 0
ORDER BY strike, option_typePlot the result as a scatter / line over (strike, mark_iv) to see the smile. For an OTM-only wing curve, filter to option_type = 'C' AND strike > underlying_price (calls above spot) and option_type = 'P' AND strike < underlying_price (puts below spot).
Cross-expiration vol surface
To build a vol surface, query each expiration in turn (or join with dte in the result):
REST API
IV-by-strike for a single expiration on the latest snapshot. Both option types (C/P) returned, ordered by strike. Designed for direct plotting (x=strike, y=mark_iv).
Required for /ohlcv and /trade endpoints. Pass your API key in the x-api-key header. Public /market/* endpoints do not require authentication.
Exchange — one of deribit, binance, okx, bybit.
deribitPossible values: Underlying coin (e.g. BTC).
BTCExpiry date, ISO (YYYY-MM-DD). Required.
2026-06-26OK
Strike price
Call or Put
Mark implied volatility (annualized %)
Bid IV
Ask IV
Delta
Spot/index price of the underlying at snapshot time
Days-to-expiry
GET /option/smile?exchange=deribit&underlying_asset=BTC&expiration=2026-06-26 HTTP/1.1
Host: api.koinju.io
x-api-key: YOUR_API_KEY
Accept: */*
OK
[
{
"strike": 1,
"option_type": "C",
"mark_iv": 1,
"bid_iv": 1,
"ask_iv": 1,
"delta": 1,
"underlying_price": 1,
"dte": 1
}
]Last updated
Was this helpful?