Skip to content

Instruments

This endpoint provides a downloadable CSV file containing a list of all tradable instruments and their properties for a given market segment. This is essential for fetching the correct security_id to be used in other API calls, such as placing orders or subscribing to market data feeds.

Request Type Path Description
GET /market/instruments Fetches the CSV file for a specific market segment.

Get Instrument List

Retrieves a CSV file (often called a scrip master or instrument master) containing all tradable symbols for the specified segment.

Endpoint

Text Only
GET /market/instruments

Query Parameters

Parameter Description
source The market segment for which to fetch instruments.
Enum: equity, fno, index, mcx
source Returns Columns
equity Cash-market instruments 26
fno Equity and index derivatives 23
mcx MCX commodity futures and options 23
index Index underlyings 3

Example Request

Bash
curl --location 'https://api.indstocks.com/market/instruments?source=fno' \
--header 'Authorization: YOUR_ACCESS_TOKEN' \
--output instruments.csv

Note

The response for this endpoint is not JSON, but a raw CSV file. The example above shows how to save it directly to a file named instruments.csv using the --output flag in curl.

CSV File Structure

The downloaded file will contain the following columns:

Column Name Description
EXCH The exchange identifier (e.g., NSE, BSE).
SEGMENT The market segment (e.g., E for Equity, FNO).
SECURITY_ID The unique ID for the instrument.
INSTRUMENT_NAME The type of instrument (e.g., EQUITY, FUTCUR).
EXPIRY_CODE Numeric code for the expiry; 0 for non-derivatives.
TRADING_SYMBOL The symbol used for trading on the exchange.
LOT_UNITS The lot size for F&O contracts.
CUSTOM_SYMBOL A more descriptive symbol for the instrument.
EXPIRY_DATE The expiry date for derivative contracts.
STRIKE_PRICE The strike price for options contracts.
OPTION_TYPE The option type (CE for Call, PE for Put).
TICK_SIZE The minimum price movement for the instrument.
EXPIRY_FLAG Flag indicating expiry type (e.g., M for monthly).
SEM_EXCH_INSTRUMENT_TYPE The instrument type as defined by the exchange.
SERIES The series code (e.g., EQ).
SYMBOL_NAME The base symbol name (e.g., HDFCBANK).
UNDERLYING_SCRIP_NAME The underlying's full name for a derivative (e.g. ADANI PORT & SEZ LTD). Empty for cash-market rows.
FREEZE_QTY The largest quantity the exchange accepts on a single order. Use it to size a sliced order — see Slicing Large Orders.
UPPER_LIMIT The day's upper price band. An absolute price for equity and fno; a percentage for mcx.
LOWER_LIMIT The day's lower price band. Same units as UPPER_LIMIT.
ISIN ISIN of the instrument. Populated for cash-market rows; empty for derivatives.
GENERAL_FACTOR Converts the quoted price into the contract's rupee value. Meaningful on mcx (e.g. 1 for silver, 0.125 for gold guinea); 0 elsewhere.
DELIVERY_UNIT The unit the contract settles in (KGS, GRMS). mcx only; empty elsewhere.

source=equity carries three extra columns

equity rows add INTRADAY_LEVERAGE (the intraday multiplier), HAIRCUT_PERCENTAGE (the pledge haircut) and PLEDGE_ELIGIBLE (true/false) after the columns above, for 26 in all. fno and mcx share the 23 columns above exactly.

UPPER_LIMIT and LOWER_LIMIT are not in the same units on MCX

On equity and fno they are absolute prices. On mcx they are percentages applied to the contract's prev_close — a silver future carrying 4/4 means a band of ±4% around the previous close, not a price of 4. Get Full Market Quotes returns the band already resolved, in upper_circuit and lower_circuit; prefer those over computing it yourself. Placing a limit outside it is rejected with the resolved range: Limit Price is outside circuit limits or execution band range. Allowed range: 212384.00 - 230082.00.

source=index returns a different, three-column file

The index file is three columns only — EXCH, SEGMENT, SECURITY_ID — for example:

Text Only
EXCH,SEGMENT,SECURITY_ID
NSE,NIFTY 50,40000001
NSE,NIFTY IT,40000004
BSE,BSE Focused IT,40000129

Be aware that in this file the second column is labelled SEGMENT but contains the index name, so parsing it by header name is misleading. Read it positionally.

Getting an underlying's SECURITY_ID for the option chain

The Option Chain endpoint's underlying-scrip parameter takes the SECURITY_ID of the underlying, which you look up here:

  • Index underlying → source=index (e.g. 40000001 for NIFTY 50)
  • Stock underlying → source=equity, using the cash-market row (e.g. 2885 for RELIANCE on NSE)

Do not use a SECURITY_ID from source=fno — those identify individual option and futures contracts, not the underlying.


See Also