Options basics

What is implied volatility (IV)?

Implied volatility is the market's expectation of future price swings, backed out of the option's price. It's the standard way to tell whether an option is cheap or expensive.

Where it comes from

An option pricing model such as Black-Scholes takes the stock price, strike, time to expiration, interest rate and volatility. The first four are known. Plug in the option's actual market price and solve for the volatility that produces it: that's implied volatility.

So IV isn't anyone's forecast. It's information embedded in the option price itself: the more expensive the option, the higher its IV.

How to read the number

The API's implied_volatility is annualized and given as a decimal, so 0.373 means 37.3%. Roughly: the market expects a one-year standard deviation of about 37.3% in the stock's price.

To scale it to a shorter period, multiply by √(days/365). With IV at 37.3%, the expected one-day move is about 37.3% × √(1/365) ≈ 2.0%.

Why IV differs across strikes

In theory, options on the same stock with the same expiration should share one IV. In practice they don't. Here are AAPL puts expiring October 21, as of October 19, 2026 (AAPL near $343):

Strike320330340345
Implied volatility45.5%37.8%30.3%25.8%

The lower the strike (the further out-of-the-money the put), the higher the IV. This is the volatility skew: traders pay up for protection against a sharp drop. Plot IV against strike and you'll typically see a downward slope, or a "smile" that curls up at both ends.

Implied vs. historical volatility

  • Historical volatility is computed from past prices; it describes moves that already happened.
  • Implied volatility is backed out of current option prices; it reflects what the market expects next.

When IV sits well above historical volatility, options are relatively expensive. That's common before earnings or other big events, and IV often collapses right after, which traders call "IV crush."

Getting implied volatility from an API

Every contract in the chain snapshot endpoint /v3/snapshot/options/{underlying} includes implied_volatility, and you can filter by expiration, strike and call/put:

import requests

r = requests.get(
    "https://marilux.dev/v3/snapshot/options/AAPL",
    headers={"Authorization": "Bearer mh_live_your_key"},
    params={"expiration_date": "2027-12-17", "contract_type": "put", "limit": 250},
)
for c in r.json()["results"]:
    iv = c.get("implied_volatility")   # some contracts have no IV
    print(c["details"]["strike_price"], f"{iv:.1%}" if iv is not None else "-")

Deep in-the-money or long-untraded contracts have no reliable IV, so the field is omitted; check for it before reading. A complete example is in Get a US option chain with Greeks in Python, and vega (how IV changes move the price) is in Option Greeks explained.

Try it free: verify your email and you get 3 days of the Advanced plan, no card needed. Paid plans start at $6.99/month. See pricing →