Use /v3/options/quotes for option chains from our Global feed. Use /v3/options/contracts and /v3/options/snapshot for contract details and snapshots from our SIP data feed. Coverage and available fields differ between these endpoints.
1. Symbol Search
Find underlying symbol codes with /v3/symbols/search. Leave query empty to filter by type or country, or use an exchange prefix such as NASDAQ:.
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
This SIP data feed endpoint returns contract metadata and codes for US stocks, ETFs, and selected indices. You can filter by strike, strike range, expiration date, expiration date range, and option type. If no strike, range, expiration, from, or to selector is provided, range defaults to 1000. If the response includes next_token, request the next page with the same filters plus next_token. Futures options are not supported.
Example
GET https://api.insightsentry.com/v3/options/contracts?code=NASDAQ:AAPL{
"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 include the underlyinglast_price. If no strike, range, expiration, from, or to selector is provided,rangedefaults to1000. - 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
This SIP data feed endpoint covers US stocks, ETFs, and selected indices. Snapshot rows include the option code, previous daily bar, current daily bar, latest quote, latest trade, Greeks, and implied volatility when available. Timestamps are Unix timestamps in milliseconds. It supports the same filters as /v3/options/contracts. If no strike, range, expiration, from, or to selector is provided, range defaults to 1000. If the response includes next_token, request the next page by sending the same filters plus next_token. Futures options are not supported.
Example
GET https://api.insightsentry.com/v3/options/snapshot?code=NASDAQ:AAPL&expiration=2027-06-18&type=call&range=10{
"underlying_code": "NASDAQ:AAPL",
"last_price": 200,
"next_token": "MTAw",
"data": [
{
"code": "OPRA:AAPL270618C200.0",
"prev": {
"time": 1778731200000,
"open": 25.35,
"high": 25.4,
"low": 25.35,
"close": 25.36,
"volume": 8,
"trade_count": 8,
"vwap": 25.38
},
"daily": {
"time": 1778817600000,
"open": 25.65,
"high": 25.67,
"low": 25.58,
"close": 25.58,
"volume": 9,
"trade_count": 9,
"vwap": 25.64
},
"latest_quote": {
"time": 1778875199955,
"ask": 25.66,
"ask_size": 2,
"bid": 25.36,
"bid_size": 156
},
"latest_trade": {
"time": 1778872941603,
"last_price": 25.58,
"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 include the underlyinglast_price. If no strike, range, expiration, from, or to selector is provided,rangedefaults to1000. - 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
Global feed: /v3/options/quotes returns option chain quotes for supported stock, ETF, index, and futures underlyings. Use it for filtered contract rows with bid/ask, Greeks, and other available quote fields.
SIP data feed: /v3/options/contracts returns contract metadata and /v3/options/snapshot returns market snapshots. Both cover US stocks, ETFs, and selected indices. Neither covers futures options.
Contract coverage and available fields can differ between feeds. Choose the endpoint that provides the data and market coverage you need.
Using Option Codes
US stock, ETF, and index option codes commonly use the OPRA: prefix. Futures option codes use their futures exchange prefix. Use the exact contract code returned by an endpoint; the two feeds can have different contract coverage.
Contract codes returned by either feed can be used with /v3/symbols/quotes for individual quotes and /v3/symbols/:symbol/series for historical bars where available.
Futures Options
Use /v3/options/quotes with a supported continuous futures code such as CME_MINI:NQ1! or a specific futures contract code. Returned option codes identify the individual contracts. Futures options are unavailable from /v3/options/contracts and /v3/options/snapshot.
5. Understanding Option Codes
Option Code Structure
US stock, ETF, and index option codes commonly use the OPRA: format shown below. Futures option formats vary by exchange; use the returned contract code.
OPRA Code Format
| Exchange | Symbol | Expiration | Type | Strike |
|---|---|---|---|---|
| OPRA: | AAPL | 270618 | P | 325.0 |
Format Example
Equity Option (AAPL Put):
OPRA:AAPL270618P325.0
- OPRA: US options code prefix
- AAPL: Apple Inc. stock
- 270618: Expires June 18, 2027 (YYMMDD)
- P: Put option
- 325.0: Strike price $325.00
Option Type Codes
C = Call option (right to buy)
P = Put option (right to sell)
6. Option Chains
Filtering Option Data
Use the Global feed /v3/options/quotes endpoint to query current option chain rows by expiration, strike, strike range, and option type.
Rows can include 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 defaults to 1000. If strike and range are both provided, strike takes precedence.
All matching contracts are returned. For range requests, up to 100 contracts with strikes closest to the underlying price may also include last_price, volume, open_interest, open_interest_time (Unix seconds), change, and change_percent. Other rows retain their available quote fields. These additional fields are optional.
Options Quotes Endpoint
Query by exact expiration date:
GET https://api.insightsentry.com/v3/options/quotes?code=NASDAQ:AAPL&expiration=2027-06-18Query 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
Sort with sortBy and sort:
GET https://api.insightsentry.com/v3/options/quotes?code=NASDAQ:AAPL&expiration=2027-06-18&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 include the underlyinglast_priceand additional fields on some contract rows. If no strike, range, expiration, from, or to selector is provided,rangedefaults to1000. - 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
Abbreviated example response for a QQQ option chain:
GET https://api.insightsentry.com/v3/options/quotes?code=NASDAQ:QQQ&range=10{
"underlying_code": "NASDAQ:QQQ",
"last_price": 744.105,
"last_update": 1790777280000,
"data": [
{
"code": "OPRA:QQQ261009C745.0",
"ask_price": 8.47,
"bid_price": 8.42,
"delta": 0.4873,
"gamma": 0.01755,
"implied_volatility": 0.19185,
"expiration": 20261009,
"type": "CALL",
"rho": 0.08974,
"strike_price": 745,
"theoretical_price": 8.55,
"theta": -0.49912,
"vega": 0.47226,
"bid_iv": 0.19067,
"ask_iv": 0.19194,
"open_interest": 846,
"open_interest_time": 1789646405,
"last_price": 8.46,
"volume": 816,
"change": 2.21,
"change_percent": 35.36
}
]
}The top-level last_price is the underlying price. A contract row's last_price is that option's last trade price.
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
When available, last_price, volume, open_interest, change, and change_percent describe the individual contract.
expiration: Date in YYYYMMDD format (e.g., 20270618)
type: "CALL" or "PUT"
Common Quote Filters
Expiration Range
Sort by strike_price to compare contracts within the 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. Individual Option Quotes
Quote a Contract Code
Request current quotes for contract codes returned by either options feed with /v3/symbols/quotes. This endpoint takes individual codes; /v3/options/quotes returns a filtered option chain.
Option codes and regular symbol codes can share a 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:AAPL271217C145.0,OPRA:AAPL271217P50.0{
"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:AAPL271217C145.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:AAPL271217P50.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
Use contract codes returned by either options feed with /v3/symbols/:symbol/series to request historical price and volume data, up to 30k data points where available.
Important Limitations
Historical options data has the following restrictions:
- Expired option contracts are not supported
- Option series for some assets and exchanges may be unavailable
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=20000{
"code": "OPRA:AAPL271217P205.0",
"bar_end": 1733432340.0,
"last_update": 1733432400000,
"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
codereturned by an options endpoint - 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)
- 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)