1. Symbol Search
Finding Symbols
Before working with options data, you need to identify the correct symbol codes for the underlying assets.
The symbol search endpoint helps you discover available symbols and their exact format required for options queries. Leave query empty when you only want to filter by type or country, or search an exchange prefix such as NASDAQ: to list symbols from that exchange.
Search Endpoint
Use the /v3/symbols/search endpoint to find symbols:
GET https://api.insightsentry.com/v3/symbols/search?query=appleSearch Parameters:
- query (optional): Search text, or an exchange prefix like
NASDAQ: - type (optional): Instrument type filter, such as
stock,futures,etf,index, ornone - country (optional): 2-letter ISO country code, such as
US - page (optional): Result page. Each page returns up to 50 symbols.
2. Option Contracts
Option Contracts Endpoint
Once you have the underlying symbol, retrieve available option contracts using the /v3/options/contracts endpoint.
This endpoint returns option contract metadata and codes for the specified underlying symbol. You can filter by strike, strike range, expiration date, expiration date range, and option type before sending returned codes to /v3/symbols/quotes for latest trade price and volume data. If no strike, range, expiration, from, or to selector is provided, range=1000 is applied internally. If the response includes next_token, request the next page by sending the same filters plus next_token. Futures options are not currently supported by this endpoint.
Example
GET https://api.insightsentry.com/v3/options/contracts?code=NASDAQ:AAPLResponse includes matching option contracts:
{
"underlying_code": "NASDAQ:AAPL",
"last_update": 1756912027000,
"next_token": "MTAw",
"data": [
{
"code": "OPRA:AAPL270618P325.0",
"description": "AAPL Jun 18 2027 325 Put",
"expiration": "2027-06-18",
"type": "PUT",
"status": "active",
"style": "american",
"strike_price": "325",
"multiplier": "100",
"size": "100",
"open_interest": "125",
"open_interest_date": "2026-05-14",
"close_price": "82.35",
"close_price_date": "2026-05-14"
},
{
"code": "OPRA:AAPL270618C5.0",
"description": "AAPL Jun 18 2027 5 Call",
"expiration": "2027-06-18",
"type": "CALL",
"status": "active",
"style": "american",
"strike_price": "5",
"multiplier": "100",
"size": "100",
"open_interest": null,
"open_interest_date": null,
"close_price": "196.1",
"close_price_date": "2026-05-14"
}
]
}Filtering
Use date filters in YYYY-MM-DD format. The range parameter is a percentage around the current underlying price. If strike and range are both provided, strike takes precedence.
GET https://api.insightsentry.com/v3/options/contracts?code=NASDAQ:AAPL&from=2026-06-01&to=2026-12-31&type=call&range=10Option Contracts Parameters:
- code (required): Underlying symbol code in
Exchange:Symbolformat - strike (optional): Exact strike price. Takes precedence over
rangewhen both are provided. - range (optional): Strike range percentage around the current underlying price. When provided without
strike, the response can includelast_price. If no strike, range, expiration, from, or to selector is provided,range=1000is applied internally. - expiration (optional): Exact expiration date. Ignored when
fromortois provided. - from / to (optional): Minimum and maximum expiration dates
- type (optional):
callorput - next_token (optional): Token returned from a previous
/v3/options/contractsresponse. Send the same filters plusnext_tokento request the next page.
3. Option Snapshots
Option Snapshot Endpoint
Use /v3/options/snapshot to retrieve current market snapshots for option contracts on a supported underlying symbol.
Snapshot rows include the option code, previous daily bar, current daily bar, latest quote, and latest trade when those values are available. Timestamps are Unix timestamps in milliseconds. The endpoint supports the same public filters as /v3/options/contracts. If no strike, range, expiration, from, or to selector is provided, range=1000 is applied internally. If the response includes next_token, request the next page by sending the same filters plus next_token. Futures options are not currently supported by this endpoint.
Example
GET https://api.insightsentry.com/v3/options/snapshot?code=NASDAQ:AAPL&expiration=2026-05-15&type=call&range=10Response includes matching option snapshots:
{
"underlying_code": "NASDAQ:AAPL",
"last_price": 200,
"next_token": "MTAw",
"data": [
{
"code": "OPRA:AAPL260515C45.0",
"prev": {
"time": 1778731200000,
"open": 253.45,
"high": 254.04,
"low": 253.45,
"close": 253.63,
"volume": 8,
"trade_count": 8,
"vwap": 253.79
},
"daily": {
"time": 1778817600000,
"open": 256.45,
"high": 256.65,
"low": 255.78,
"close": 255.78,
"volume": 9,
"trade_count": 9,
"vwap": 256.39
},
"latest_quote": {
"time": 1778875199955,
"ask": 256.55,
"ask_size": 2,
"bid": 253.6,
"bid_size": 156
},
"latest_trade": {
"time": 1778872941603,
"last_price": 255.78,
"size": 1
}
}
]
}Option Snapshot Parameters:
- code (required): Underlying symbol code in
Exchange:Symbolformat - strike (optional): Exact strike price. Takes precedence over
rangewhen both are provided. - range (optional): Strike range percentage around the current underlying price. When provided without
strike, the response can includelast_price. If no strike, range, expiration, from, or to selector is provided,range=1000is applied internally. - expiration (optional): Exact expiration date. Ignored when
fromortois provided. - from / to (optional): Minimum and maximum expiration dates
- type (optional):
callorput - next_token (optional): Token returned from a previous
/v3/options/snapshotresponse. Send the same filters plusnext_tokento request the next page.
4. Supported Markets
Current Coverage
Options endpoints support US stocks, ETFs, indices, and selected futures option workflows. Use /v3/options/contracts to discover contract metadata, /v3/options/snapshot to retrieve current option snapshots, and /v3/options/quotes to query filtered option quote rows for supported stock, ETF, and index underlyings. /v3/options/contracts and /v3/options/snapshot currently do not support futures options.
US stock, ETF, and index option contracts use OPRA: codes. Futures option codes use their futures exchange prefix and must be built from specific futures contracts.
Recommended Workflow:
- Use
/v3/options/contractsto view available contracts for a supported stock, ETF, or index underlying. - Use
/v3/options/quotesto view option quote rows filtered by expiration, strike, range, and type. - Use
/v3/options/snapshotwhen you need current daily bars, bid/ask, and latest trade data in one response. - Use returned
OPRA:contract codes with/v3/symbols/quotesfor the latest trade price or/v3/symbols/:symbol/seriesfor historical bar data.
Using OPRA Option Codes
The options endpoints return contract codes such as OPRA:AAPL270618P325.0. Pass those codes directly to the standard quote and series endpoints.
For latest trade price, bid/ask, and volume, call /v3/symbols/quotes. For historical OHLCV bars, call /v3/symbols/:symbol/series.
Practical Workflow
Example 1: View Contracts
1. Search for the underlying: GET /v3/symbols/search?query=AAPL&type=stock&country=US
2. List available contracts: GET /v3/options/contracts?code=NASDAQ:AAPL&type=call&range=10
Example 2: View Option Snapshots
Retrieve current snapshots near the underlying price: GET /v3/options/snapshot?code=NASDAQ:AAPL&type=call&range=10
Example 3: View Filtered Option Quotes
Filter by expiration range: GET /v3/options/quotes?code=NASDAQ:AAPL&from=2026-06-01&to=2026-12-31&type=call&range=10
Filter by strike: GET /v3/options/quotes?code=NASDAQ:AAPL&strike=210&type=put
Futures Options
- Use specific futures contract codes such as
CME_MINI:NQU2027. - Continuous futures codes such as
CME_MINI:NQ1!are not option contract roots. - Each futures contract has its own set of options.
- Options expire before the underlying futures contract.
5. Understanding Option Codes
Option Code Structure
Option codes contain embedded information about the option type, expiration date, and strike price.
Understanding this structure helps you interpret and construct option codes programmatically.
Code Format Breakdown
| Exchange | Symbol | Expiration | Type | Strike |
|---|---|---|---|---|
| OPRA: | AAPL | 270618 | P | 325.0 |
| CME_MINI: | NQ | 270618 | P | 24450 |
Format Examples
Equity Option (AAPL Put):
OPRA:AAPL270618P325.0
- OPRA: Options exchange
- AAPL: Apple Inc. stock
- 270618: Expires June 18, 2027 (YYMMDD)
- P: Put option
- 325.0: Strike price $325.00
Futures Option (NASDAQ Mini Put):
CME_MINI:NQ270618P24450
- CME_MINI: CME futures exchange
- NQ: NASDAQ 100 E-mini futures
- 270618: Expires June 18, 2027 (YYMMDD)
- P: Put option
- 24450: Strike price 24,450 index points
Option Type Codes
C = Call option (right to buy)
P = Put option (right to sell)
6. Option Chains
Filtering Option Data
Use /v3/options/quotes to query current option quote rows by expiration, strike, strike range, and option type.
The endpoint returns bid/ask quote fields, Greeks, implied volatility, theoretical price, strike, expiration, type, and the option contract code. Use strike, range, expiration, from, or to to narrow results. If no strike, range, expiration, from, or to selector is provided, range=1000 is applied internally. If strike and range are both provided, strike takes precedence.
Options Quotes Endpoint
Query by exact expiration date:
GET https://api.insightsentry.com/v3/options/quotes?code=NASDAQ:AAPL&expiration=2027-06-17Query by expiration date range, option type, and strike range around the current underlying price:
GET https://api.insightsentry.com/v3/options/quotes?code=NASDAQ:AAPL&from=2026-06-01&to=2026-12-31&type=call&range=10Query by exact strike price:
GET https://api.insightsentry.com/v3/options/quotes?code=NASDAQ:AAPL&strike=210&type=putSorting Options
You can sort the results using sortBy and sort parameters:
GET https://api.insightsentry.com/v3/options/quotes?code=NASDAQ:AAPL&expiration=2027-06-17&sortBy=strike_price&sort=ascAvailable Sort Fields (sortBy):
sort: Use asc (ascending) or desc (descending). Default is asc.
Options Quotes Parameters:
- code (required): Underlying symbol code
- strike (optional): Exact strike price
- range (optional): Strike range percentage around the current underlying price. When provided without
strike, the response can includelast_price. If no strike, range, expiration, from, or to selector is provided,range=1000is applied internally. - expiration (optional): Exact expiration date. Ignored when
fromortois provided. - from / to (optional): Minimum and maximum expiration dates
- type (optional):
callorput - sortBy / sort (optional): Sort field and
ascordescorder
Returns option quote rows for the requested filters:
{
"underlying_code": "NASDAQ:AAPL",
"last_update": 1756912027000,
"data": [
{
"code": "OPRA:AAPL270617C150.0",
"ask_price": 12.5,
"bid_price": 12.0,
"delta": 0.65,
"gamma": 0.02,
"implied_volatility": 0.25,
"type": "CALL",
"rho": 0.08,
"strike_price": 150,
"theoretical_price": 12.25,
"theta": -0.05,
"vega": 0.15,
"bid_iv": 0.24,
"ask_iv": 0.26,
"expiration": 20270617
},
{
"code": "OPRA:AAPL270617P150.0",
"ask_price": 8.2,
"bid_price": 7.8,
"delta": -0.35,
"gamma": 0.02,
"implied_volatility": 0.23,
"type": "PUT",
"rho": -0.06,
"strike_price": 150,
"theoretical_price": 8.0,
"theta": -0.04,
"vega": 0.15,
"bid_iv": 0.22,
"ask_iv": 0.24,
"expiration": 20270617
}
]
}Option Quote Data Fields
Pricing:
ask_price,bid_pricetheoretical_price- Fair value estimatebid_iv,ask_iv- Implied volatility at bid/ask
Greeks:
delta- Price sensitivity to underlyinggamma- Delta change ratetheta- Time decayvegarho
expiration: Date in YYYYMMDD format (e.g., 20270617)
type: "CALL" or "PUT"
Common Quote Filters
Expiration Range
Useful for analyzing options expiring around earnings announcements or other specific events. Sort by strike_price to scan contracts inside the requested date window.
Strike or Range
Use strike for an exact strike or range to request strikes around the current underlying price. Sort by expiration to compare contracts across time.
7. Real-time Quotes
Getting Real-time Option Prices
Once you have option codes, retrieve real-time pricing and volume data using the /v3/symbols/quotes endpoint.
This endpoint provides current bid/ask prices, last trade information, and trading volume for option contracts. It accepts option codes and regular symbol codes in the same request.
Multiple Option Quotes
Request quotes for multiple options (up to 10) by separating codes with commas:
GET https://api.insightsentry.com/v3/symbols/quotes?codes=OPRA:AAPL271217P370.0,OPRA:AAPL271219C145.0,OPRA:AAPL271218P50.0Response includes real-time data for each option:
{
"total_items": 3,
"data": [
{
"code": "OPRA:AAPL271217P370.0",
"status": "CLOSED",
"lp_time": 1750065411.0,
"volume": 0.0,
"last_price": 166.14,
"ask": 133.55,
"bid": 129.75,
"ask_size": 107.0,
"bid_size": 107.0,
"open_price": 166.14,
"low_price": 166.14,
"high_price": 166.14,
"delay_seconds": 0
},
{
"code": "OPRA:AAPL271219C145.0",
"status": "CLOSED",
"lp_time": 1756918904.0,
"volume": 6.0,
"last_price": 94.2,
"change_percent": 10.02,
"change": 8.6,
"ask": 96.15,
"bid": 94.4,
"ask_size": 195.0,
"bid_size": 258.0,
"prev_close_price": 85.62,
"open_price": 93.1,
"low_price": 93.1,
"high_price": 94.28,
"delay_seconds": 0
},
{
"code": "OPRA:AAPL261218P50.0",
"status": "CLOSED",
"lp_time": 1756910857.0,
"volume": 1.0,
"last_price": 0.09,
"change_percent": -18.18,
"change": -0.02,
"ask": 0.12,
"bid": 0.07,
"ask_size": 111.0,
"bid_size": 98.0,
"prev_close_price": 0.11,
"open_price": 0.09,
"low_price": 0.09,
"high_price": 0.09,
"delay_seconds": 0
}
]
}Request Limits
Multiple Symbol Guidelines:
- Maximum 10 symbols per request
- Separate codes with commas (no spaces)
- All codes must be valid symbols (options, stocks, futures, etc.)
- Mixed asset types are supported
- Optional quote parameters:
settlement,badj,extended,split, anddadj
Quote Parameters:
- codes (required): Comma-separated symbol codes, up to 10 per request
- settlement (optional): Use settlement as daily close. Default is
false. - badj (optional): Back-adjust continuous futures. Default is
true. - extended (optional): Include extended hours where supported. Default is
true. - split (optional): Split adjustment for equities and ETFs. Default is
true. - dadj (optional): Dividend adjustment when
split=true. Default isfalse.
8. Historical Option Data
Historical OHLCV Data
Retrieve historical price (up to 30k data points) and volume data for option contracts using the /v3/symbols/:symbol/series endpoint.
This endpoint provides OHLCV (Open, High, Low, Close, Volume) data for analyzing option price movements over time. The long_poll parameter can wait briefly for a real-time update before the response is returned.
Important Limitations
Historical options data has the following restrictions:
- Expired options are NOT supported
- Futures options are NOT supported
- Only equity options are currently available
- Options must still be active and trading
Historical Data Request
Get daily historical data for an option contract:
GET https://api.insightsentry.com/v3/symbols/OPRA:AAPL271217P205.0/series?bar_type=day&bar_interval=1&dp=20000You can also request different time intervals:
# Hourly data
GET https://api.insightsentry.com/v3/symbols/OPRA:AAPL271217P205.0/series?bar_type=hour&bar_interval=1&dp=20000
# 5-minute data
GET https://api.insightsentry.com/v3/symbols/OPRA:AAPL271217P205.0/series?bar_type=minute&bar_interval=5&dp=20000Response provides OHLCV data with timestamps:
{
"code": "OPRA:AAPL271217P205.0",
"bar_end": 1733432340.0,
"last_update": 1733432400000,
"_ct": 1733432401234,
"bar_type": "1D",
"series": [
{
"time": 1704153600.0,
"open": 82.50,
"high": 84.75,
"low": 81.25,
"close": 83.80,
"volume": 1450
},
{
"time": 1704240000.0,
"open": 84.00,
"high": 86.25,
"low": 83.50,
"close": 85.90,
"volume": 2100
},
{
"time": 1704326400.0,
"open": 85.75,
"high": 87.20,
"low": 84.90,
"close": 86.45,
"volume": 1890
}
]
}Request Parameters
Available Parameters:
- symbol (required path parameter): Option code from
/v3/options/contracts - bar_type (optional): tick, second, minute, hour, day, week, month (default: day)
- bar_interval (optional): Number of bars, from 1 to 1440. The
bar_typeandbar_intervalcombination must not exceed one year. Default is 1. - extended (optional): Include extended hours data (default: true)
- split (optional): Split adjustment for equities and ETFs (default: true). When false, returns unadjusted data and overrides
dadj. - dadj (optional): Dividend adjustment for equities (default: false)
- badj (optional): Back-adjustment for continuous futures (default: true)
- dp (optional): Maximum data points to return, from 1 to 30000 (default: 3000)
- long_poll (optional): Wait up to 3 additional seconds for real-time data before responding (default: false)
- currency (optional): Convert OHLCV data to a valid ISO 4217 currency code such as
USD,EUR, orGBP - settlement (optional): Use settlement as daily close (default: false)
- abbr (optional): Return compact output with
series_keysand array-based series rows for lower token usage (default: false)