Access Yahoo Finance Options Data in Excel

Access Yahoo Finance Options Data in Excel

Overview

The YahooFinanceOptions provider offers access to real-time options data from Yahoo Finance, including calls and puts across multiple expiration dates and strike prices. It supports:

  • Pricing Fields
    Bid, ask, last price, change, percent change, mark price

  • Volume and Open Interest
    Volume, open interest, bid/ask size

  • Contract Details
    Expiration date, strike price, option type (call/put), currency

  • Market Metadata
    Quote time, underlying symbol, market state

This provider is ideal for building real-time options chains, volatility surfaces, and custom trading models directly in Excel.

Use the following generic RTD formula:

=RTD("market.rtd",,"YahooFinanceOptions","<Option Symbol>","<Data Field>")

Example:

=RTD("market.rtd",,"YahooFinanceOptions","AAPL260116C00200000","Last")

Here, <Option Symbol> is a full OCC-style option symbol (e.g., AAPL260116C00200000), and <Data Field> is one of the supported fields listed below.

To find option symbols, use Yahoo Finance Options or create them using your own code or tools.

Use the Formula Builder to generate and copy formulas into Excel. It also allows you to customize separators and layout settings.

By default, the refresh interval is six hours. You can modify it using the following formula:

=RTD("market.rtd",,"YahooFinanceOptions","rtd_RefreshInterval",66060)

Note that Market RTD loads one page to get the data for all options of the month.

Option Part Formats

Option code format:

[.]<Option Symbol><Expiration Date><Option Type Char><Strike>

Expiration date format: yymmdd
Option type char: C or P

Strike formats:

  • 8 digits with leading zero as strike — 1000 (Yahoo Finance format)
  • 7 digits with leading zero as strike — 100
  • 6 digits with leading zero as strike — 10
  • Strike as is, with or without decimal part (common format)

Examples:

=RTD("market.rtd",,"YahooFinanceOptions","AAPL260116C00200000","OpenInt")
=RTD("market.rtd",,"YahooFinanceOptions","AAPL260116C00200","OpenInt")
=RTD("market.rtd",,"YahooFinanceOptions","AAPL260116C200","OpenInt")
=RTD("market.rtd",,"YahooFinanceOptions","AAPL260116C200.0","OpenInt")
=RTD("market.rtd",,"YahooFinanceOptions",".AAPL260116C200.0","OpenInt")

The last formula uses the thinkorswim format.

To find options, visit Yahoo Finance.

Note: Options data is available for US exchanges and may not be available for other global exchanges.

Using Option Specifications

Excel formula format:

=RTD("market.rtd",,"YahooFinanceOptions","<Symbol>", <Expiration Date>, <Strike>, "<Option Type>", "<Data Field>")

Expiration date formats:

  • yymmdd
  • yyyy-mm-dd
  • mmmdd,yy
  • mmmdd'yy

Option type format: C or CALL, P or PUT

Examples:

=RTD("market.rtd",,"YahooFinanceOptions","AAPL", "260116", 200, "CALL", "OpenInt")
=RTD("market.rtd",,"YahooFinanceOptions","AAPL", "2026-01-16", 200, "C", "OpenInt")
=RTD("market.rtd",,"YahooFinanceOptions","AAPL", "JAN26,16", 200, "PUT", "OpenInt")
=RTD("market.rtd",,"YahooFinanceOptions","AAPL", "JAN26'16", 200, "P", "OpenInt")

Special Notes

  • Symbol, OptionSymbol, Exp, Strike, and Type are parsed automatically from the option code.
  • OptionCode follows the standard OCC format.
  • OptionSymbol ends with 7 for mini options and with 1 for some pre-split options.
  • ChangeInPercent, ChangePercent, and Percent are equivalent and calculated by Market RTD.
  • Mark is calculated as (Bid + Ask) / 2.

To assist with filtering and lookup:

  • Use Strike~0 to find the ATM strike.
  • Use Strike+0 or Strike-0 to find equal or nearest strikes.
  • Use Strike+1 and Strike-1 to find strikes just above or below.
  • Use ExpDate1 to ExpDate20 to retrieve available expiration dates.

Data Fields and Excel Formulas by Option Codes

Data FieldExcel Formula
OptionSymbol=RTD("market.rtd",,"YahooFinanceOptions",[Code],"OptionSymbol")
ExpDate=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate")
ExpDate1=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate1")
ExpDate2=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate2")
ExpDate3=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate3")
ExpDate4=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate4")
ExpDate5=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate5")
ExpDate6=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate6")
ExpDate7=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate7")
ExpDate8=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate8")
ExpDate9=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate9")
ExpDate10=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate10")
ExpDate11=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate11")
ExpDate12=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate12")
ExpDate13=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate13")
ExpDate-1=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate-1")
ExpDate14=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate14")
ExpDate+1=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate+1")
ExpDate15=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate15")
ExpDate16=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate16")
ExpDate17=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate17")
ExpDate18=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate18")
ExpDate19=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate19")
ExpDate20=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDate20")
ExpDateCount=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpDateCount")
OptionCode=RTD("market.rtd",,"YahooFinanceOptions",[Code],"OptionCode")
Symbol=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Symbol")
Strike=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Strike")
Type=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Type")
contractSymbol=RTD("market.rtd",,"YahooFinanceOptions",[Code],"contractSymbol")
currency=RTD("market.rtd",,"YahooFinanceOptions",[Code],"currency")
lastPrice=RTD("market.rtd",,"YahooFinanceOptions",[Code],"lastPrice")
change=RTD("market.rtd",,"YahooFinanceOptions",[Code],"change")
percentChange=RTD("market.rtd",,"YahooFinanceOptions",[Code],"percentChange")
volume=RTD("market.rtd",,"YahooFinanceOptions",[Code],"volume")
openInterest=RTD("market.rtd",,"YahooFinanceOptions",[Code],"openInterest")
bid=RTD("market.rtd",,"YahooFinanceOptions",[Code],"bid")
ask=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ask")
contractSize=RTD("market.rtd",,"YahooFinanceOptions",[Code],"contractSize")
expiration=RTD("market.rtd",,"YahooFinanceOptions",[Code],"expiration")
lastTradeDate=RTD("market.rtd",,"YahooFinanceOptions",[Code],"lastTradeDate")
impliedVolatility=RTD("market.rtd",,"YahooFinanceOptions",[Code],"impliedVolatility")
inTheMoney=RTD("market.rtd",,"YahooFinanceOptions",[Code],"inTheMoney")
Last=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Last")
ImpVol=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ImpVol")
OpenInt=RTD("market.rtd",,"YahooFinanceOptions",[Code],"OpenInt")
Mark=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Mark")
PreviousClose=RTD("market.rtd",,"YahooFinanceOptions",[Code],"PreviousClose")
ChangeInPercent=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ChangeInPercent")
Strike-1=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Strike-1")
Strike+1=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Strike+1")
Strike-0=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Strike-0")
Strike+0=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Strike+0")
Strike~0=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Strike~0")
Synonyms:
Option Code=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Option Code")
Option Symbol=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Option Symbol")
Change in Percent=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Change in Percent")
PercentChange=RTD("market.rtd",,"YahooFinanceOptions",[Code],"PercentChange")
Percent Change=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Percent Change")
ChangePercent=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ChangePercent")
Change Percent=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Change Percent")
% Change=RTD("market.rtd",,"YahooFinanceOptions",[Code],"% Change")
PrevClose=RTD("market.rtd",,"YahooFinanceOptions",[Code],"PrevClose")
Prev Close=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Prev Close")
Previous Close=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Previous Close")
Exp Date=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Exp Date")
Expire Date=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Expire Date")
ExpireDate=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ExpireDate")
Exp=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Exp")
Expiry=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Expiry")
Open Int=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Open Int")
Open Interest=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Open Interest")
OpenInterest=RTD("market.rtd",,"YahooFinanceOptions",[Code],"OpenInterest")
Implied Volatility=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Implied Volatility")
ImpliedVolatility=RTD("market.rtd",,"YahooFinanceOptions",[Code],"ImpliedVolatility")
Imp Vol=RTD("market.rtd",,"YahooFinanceOptions",[Code],"Imp Vol")
RTD server values:
rtd_LastUpdate=RTD("market.rtd",,"YahooFinanceOptions",[Code],"rtd_LastUpdate")
rtd_LastUpdateDate=RTD("market.rtd",,"YahooFinanceOptions",[Code],"rtd_LastUpdateDate")
rtd_LastUpdateTime=RTD("market.rtd",,"YahooFinanceOptions",[Code],"rtd_LastUpdateTime")
rtd_LastError=RTD("market.rtd",,"YahooFinanceOptions",[Code],"rtd_LastError")
rtd_LastMessage=RTD("market.rtd",,"YahooFinanceOptions",[Code],"rtd_LastMessage")

Data Fields and Excel Formulas by Option Contract Specifications

Data FieldExcel Formula
OptionSymbol=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"OptionSymbol")
ExpDate=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate")
ExpDate1=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate1")
ExpDate2=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate2")
ExpDate3=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate3")
ExpDate4=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate4")
ExpDate5=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate5")
ExpDate6=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate6")
ExpDate7=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate7")
ExpDate8=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate8")
ExpDate9=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate9")
ExpDate10=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate10")
ExpDate11=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate11")
ExpDate12=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate12")
ExpDate13=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate13")
ExpDate-1=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate-1")
ExpDate14=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate14")
ExpDate+1=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate+1")
ExpDate15=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate15")
ExpDate16=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate16")
ExpDate17=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate17")
ExpDate18=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate18")
ExpDate19=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate19")
ExpDate20=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDate20")
ExpDateCount=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpDateCount")
OptionCode=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"OptionCode")
Symbol=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Symbol")
Strike=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Strike")
Type=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Type")
contractSymbol=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"contractSymbol")
currency=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"currency")
lastPrice=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"lastPrice")
change=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"change")
percentChange=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"percentChange")
volume=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"volume")
openInterest=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"openInterest")
bid=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"bid")
ask=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ask")
contractSize=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"contractSize")
expiration=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"expiration")
lastTradeDate=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"lastTradeDate")
impliedVolatility=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"impliedVolatility")
inTheMoney=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"inTheMoney")
Last=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Last")
ImpVol=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ImpVol")
OpenInt=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"OpenInt")
Mark=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Mark")
PreviousClose=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"PreviousClose")
ChangeInPercent=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ChangeInPercent")
Strike-1=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Strike-1")
Strike+1=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Strike+1")
Strike-0=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Strike-0")
Strike+0=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Strike+0")
Strike~0=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Strike~0")
Synonyms:
Option Code=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Option Code")
Option Symbol=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Option Symbol")
Change in Percent=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Change in Percent")
PercentChange=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"PercentChange")
Percent Change=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Percent Change")
ChangePercent=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ChangePercent")
Change Percent=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Change Percent")
% Change=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"% Change")
PrevClose=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"PrevClose")
Prev Close=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Prev Close")
Previous Close=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Previous Close")
Exp Date=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Exp Date")
Expire Date=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Expire Date")
ExpireDate=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ExpireDate")
Exp=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Exp")
Expiry=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Expiry")
Open Int=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Open Int")
Open Interest=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Open Interest")
OpenInterest=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"OpenInterest")
Implied Volatility=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Implied Volatility")
ImpliedVolatility=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"ImpliedVolatility")
Imp Vol=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"Imp Vol")
RTD server values:
rtd_LastUpdate=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"rtd_LastUpdate")
rtd_LastUpdateDate=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"rtd_LastUpdateDate")
rtd_LastUpdateTime=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"rtd_LastUpdateTime")
rtd_LastError=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"rtd_LastError")
rtd_LastMessage=RTD("market.rtd",,"YahooFinanceOptions",[OptionSymbol],[ExpDate][Strike][Type],"rtd_LastMessage")

This website is using cookies. By continuing to browse, you give us your consent to our use of cookies as explained in our Cookie Policy.