Skip to main content

Options Smartlistโ€‹

API for retrieving a ranked list of options contracts filtered by asset type and category. Each entry includes the instrument key, live price data, and the category-specific metric used for ranking.

A smartlist is a curated, real-time ranked list of instruments grouped by a specific market signal โ€” such as highest traded value, biggest open interest change, or strongest implied volatility move. Instead of scanning the entire options market, you get a focused subset of contracts that are most relevant to a given category at that moment.

For more information on how the options smartlist feature works, see the Upstox community post.

Requestโ€‹

curl --location 'https://api.upstox.com/v2/market/smartlist/options?asset_type=INDEX&category=TOP_TRADED&page_number=1&page_size=20' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {your_access_token}'

For additional samples in various languages, please refer to the Sample code section on this page.


Query Parametersโ€‹

NameRequiredDescription
asset_typetrueAsset type. Accepted values: INDEX, STOCK, COMMODITY.
categorytrueRanking category. Accepted values depend on asset_type โ€” see the table below.
page_numberfalsePage number, 1-indexed. Defaults to 1.
page_sizefalseNumber of records per page. Maximum 50.

Accepted category values by asset_type:

asset_typeAccepted category values
INDEX, STOCKTOP_TRADED, MOST_ACTIVE, OI_GAINERS, OI_LOSERS, PRICE_GAINERS, PRICE_LOSERS, IV_GAINERS, IV_LOSERS, UNDER_5000, UNDER_10000
COMMODITYTOP_TRADED, MOST_ACTIVE, OI_GAINERS, OI_LOSERS

The metric_key field in the response indicates which metric was used for ranking:

categorymetric_key
TOP_TRADEDtotal_traded_value
MOST_ACTIVEvolume_traded_today
OI_GAINERS, OI_LOSERSopen_interest
PRICE_GAINERS, PRICE_LOSERSprice
IV_GAINERS, IV_LOSERSimplied_volatility
UNDER_5000, UNDER_10000buy_margin
Responses

Response bodyโ€‹

{
"status": "success",
"data": {
"asset_type": "INDEX",
"category": "TOP_TRADED",
"time_stamp": 1780041069287,
"metric_key": "total_traded_value",
"smartlist": [
{
"instrument_key": "NSE_FO|57047",
"price": {
"current": 177.4,
"close_price": 125.5,
"change_abs": 51.9,
"change_pct": 41.35
},
"metric": {
"current": 53889598074,
"previous": 4351865287721.25,
"change_abs": -4297975689647.25,
"change_pct": -98.76
}
},
{
"instrument_key": "NSE_FO|57051",
"price": {
"current": 241.65,
"close_price": 172.35,
"change_abs": 69.3,
"change_pct": 40.21
},
"metric": {
"current": 36473443958.25,
"previous": 2391714654137.25,
"change_abs": -2355241210179,
"change_pct": -98.48
}
},
{
"instrument_key": "NSE_FO|57049",
"price": {
"current": 208.15,
"close_price": 148,
"change_abs": 60.15,
"change_pct": 40.64
},
"metric": {
"current": 29500456316.5,
"previous": 2171128196155.75,
"change_abs": -2141627739839.25,
"change_pct": -98.64
}
}
],
"page_number": 1,
"page_size": 3,
"total_pages": 3354
}
}
  • For UNDER_5000 and UNDER_10000 categories, metric.previous, metric.change_abs, and metric.change_pct are returned as null โ€” no previous metric value is available for these categories.
NameTypeDescription
statusstringOutcome of the request. Typically success for successful operations.
dataobjectResponse data object.
data.asset_typestringAsset type from the request.
data.categorystringCategory from the request.
data.time_stampintegerUnix timestamp in milliseconds when the data was generated.
data.metric_keystringThe metric used for ranking in this response.
data.smartlistarrayRanked list of options instruments.
data.smartlist[].instrument_keystringUnique instrument identifier. See Instrument keys.
data.smartlist[].price.currentnumberLast traded price (LTP).
data.smartlist[].price.close_pricenumberPrevious close price.
data.smartlist[].price.change_absnumberAbsolute price change (current - close_price).
data.smartlist[].price.change_pctnumberPercentage price change.
data.smartlist[].metric.currentnumberCurrent value of the ranking metric.
data.smartlist[].metric.previousnumber | nullPrevious value of the ranking metric. null for UNDER_5000 and UNDER_10000.
data.smartlist[].metric.change_absnumber | nullAbsolute change in the metric. null for UNDER_5000 and UNDER_10000.
data.smartlist[].metric.change_pctnumber | nullPercentage change in the metric. null for UNDER_5000 and UNDER_10000.
data.page_numberintegerCurrent page number.
data.page_sizeintegerNumber of records in the current page.
data.total_pagesintegerTotal number of pages available.

Sample Codeโ€‹

Get options smartlistโ€‹

curl --location 'https://api.upstox.com/v2/market/smartlist/options?asset_type=INDEX&category=TOP_TRADED&page_number=1&page_size=20' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {your_access_token}'
Loading...