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 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 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 currently supported by this endpoint.
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 includelast_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
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 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 currently supported by this endpoint.
Example
GET https://api.insightsentry.com/v3/options/snapshot?code=NASDAQ:AAPL&expiration=2026-05-15&type=call&range=10{
"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,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
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 encode the exchange, underlying, expiration, type, and strike.
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 defaults to 1000. 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
Sort with sortBy and sort:
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,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
{
"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
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. Real-time Quotes
Getting Real-time Option Prices
Request current quotes using option codes with /v3/symbols/quotes.
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:AAPL271219C145.0,OPRA:AAPL271218P50.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: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.
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=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 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)
- 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)