Get the Option Chains which gives information about the currently available options as reported by Yahoo Finance. This returns the Contract Symbol, Last Trade Date, Last Price, Bid, Ask, Change, Percent Change, Volume, Open Interest, Implied Volatility, whether the option is In The Money and the Currency.

The data comes from Yahoo Finance. When Yahoo Finance has no options for a ticker, Cboe’s delayed quotes (15 minutes) are used, which cover every option listed on a US equity or index, such as “^SPX” with expiries several years out. If neither has data, it is advised to use the theoretical calculations as provided by the Black Scholes Model as well as the Greeks to get a better understanding of the option prices over time.

Also known as: calls, puts, strike prices, expiry dates, option data.

Option Chains in Python or via the MCP

Install the Finance Toolkit with:

pip install financetoolkit -U

Then call get_option_chains as shown below.

from financetoolkit import Toolkit

toolkit = Toolkit(["MSFT"], api_key="FINANCIAL_MODELING_PREP_KEY")

option_chains = toolkit.options.get_option_chains(strike_price_range=0.05)

option_chains.loc["MSFT", ["Bid", "Ask"]]

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

What are the bid and ask prices of Microsoft's call options at the nearest expiration, for strikes within 5% of the share price?

Which returns:

Strike Price Bid Ask
500 23.45 25.15
502.5 21 23.35
505 18.5 21
507.5 16.15 18.5
510 13.7 16.1
512.5 11.85 13.65
515 9.7 11.6
517.5 7.65 8.9
520 5.8 6.75
522.5 4.2 4.9
525 2.87 3.15
527.5 1.83 2.18
530 1.07 1.19
532.5 0.69 0.7
535 0.32 0.37
537.5 0.16 0.24
540 0.09 0.12
542.5 0.05 0.08
545 0.03 0.05
547.5 0.02 0.03
550 0.01 0.03

Parameters

get_option_chains accepts the following parameters.

ParameterTypeDescriptionExample
expiration_datestr | NoneThe expiration date to use. Defaults to None which means it will use the first available expiration date."2028-01-21"
put_optionboolWhether to show the put options instead of the call options. Defaults to False.True
show_expiration_datesboolWhether to return the available expiration dates instead of the option chains. Defaults to False.True
roundingint | NoneThe number of decimals to round the results to. Defaults to None, which uses the rounding of the Toolkit (4 unless set otherwise).2
strike_price_rangefloat | NoneOnly the strikes within this fraction of the current stock price, e.g. 0.05 for strikes within 5% of it. Defaults to None, which keeps every strike.0.1
Share