Option Chains
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.
| Parameter | Type | Description | Example |
|---|---|---|---|
expiration_date | str | None | The expiration date to use. Defaults to None which means it will use the first available expiration date. | "2028-01-21" |
put_option | bool | Whether to show the put options instead of the call options. Defaults to False. | True |
show_expiration_dates | bool | Whether to return the available expiration dates instead of the option chains. Defaults to False. | True |
rounding | int | None | The 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_range | float | None | Only 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 |