Calculate the term structure of implied volatility: the at-the-money implied volatility of every expiry, interpolated at the current price and averaged over calls and puts. Normally longer expiries carry a higher volatility (contango); an inverted curve, with short-dated options dearer than long-dated ones, shows that the market expects turbulence soon, as around earnings or in a sell-off.

Also known as: volatility term structure, IV curve, volatility curve.

Implied Volatility Term Structure in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_implied_volatility_term_structure as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(["AAPL", "TSLA"], api_key="FINANCIAL_MODELING_PREP_KEY")

toolkit.options.get_implied_volatility_term_structure(number_of_expirations=5)

Or, after setting up the Finance Toolkit MCP, ask:

What does the at-the-money implied volatility term structure of Apple and Tesla look like over their next five expirations?

Which returns:

  Days to Expiration At-the-Money Volatility
(‘AAPL’, ‘2026-10-26’) 2 0.1637
(‘AAPL’, ‘2026-10-28’) 4 0.2136
(‘AAPL’, ‘2026-10-30’) 6 0.2273
(‘AAPL’, ‘2026-11-06’) 13 0.319
(‘AAPL’, ‘2026-11-13’) 20 0.2967
(‘TSLA’, ‘2026-10-26’) 2 0.297
(‘TSLA’, ‘2026-10-28’) 4 0.3781
(‘TSLA’, ‘2026-10-30’) 6 0.4003
(‘TSLA’, ‘2026-11-06’) 13 0.4124
(‘TSLA’, ‘2026-11-13’) 20 0.4058

Parameters

get_implied_volatility_term_structure accepts the following parameters.

ParameterTypeDescriptionExample
expiration_dateslist[str] | NoneThe expiries to use. Defaults to None, the nearest number_of_expirations expiries.["2027-12-17", "2028-01-21"]
number_of_expirationsintThe number of nearest expiries to use when no dates are given. Defaults to 10.4
roundingint | NoneThe number of decimals to round the results to. Defaults to None, which uses the Toolkit’s rounding.2
Share