Skip to content

Utility APIs

Alongside the trading APIs used to place and manage orders on the exchange, Arrow exposes utility endpoints for calendars, index metadata, option chains, and options Greeks. These use the same authentication model as the rest of the Developer API.

Base URL and headers

Base URL

https://edge.arrow.trade

Required headers

Header Description
appID Your application ID
token Access token from the authentication flow

Endpoint overview

Method Endpoint Description
GET /info/holidays Trading holidays and special sessions for the current year
GET /info/index-list Indexes listed on the exchange (name and token)
GET /info/option-chain-symbols/all All Option-underlying symbols with available expiries
POST /info/option-chain Full option chain for an underlying symbol and expiry

Holidays

Returns exchange holidays (DD-MM-YYYY → holiday name) and optional special trading days with session windows.

Sample request

curl --location 'https://edge.arrow.trade/info/holidays' \
--header 'appID: <YOUR_APP_ID>' \
--header 'token: <YOUR_TOKEN>'

Sample response

{
    "data": {
        "holidays": {
            "01-05-2026": "Maharashtra Day",
            "02-10-2026": "Mahatma Gandhi Jayanti",
            "03-03-2026": "Holi",
            "03-04-2026": "Good Friday",
            "10-11-2026": "Diwali-Balipratipada",
            "14-04-2026": "Dr. Baba Saheb Ambedkar Jayanti",
            "14-09-2026": "Ganesh Chaturthi",
            "15-01-2026": "Municipal Corporation Election in Maharashtra",
            "20-10-2026": "Dussehra",
            "24-11-2026": "Prakash Gurpurb Sri Guru Nanak Dev",
            "25-12-2026": "Christmas",
            "26-01-2026": "Republic Day",
            "26-03-2026": "Shri Ram Navami",
            "26-06-2026": "Muharram",
            "28-05-2026": "Bakri Id",
            "31-03-2026": "Shri Mahavir Jayanti"
        },
        "specialTradingDays": {
            "01-02-2026": [
                [
                    "09:00",
                    400
                ]
            ]
        }
    },
    "status": "success"
}

Index list

Returns display names and index tokens (used for quotes, streaming, and instrument lookup).

Sample request

curl --location 'https://edge.arrow.trade/info/index-list' \
--header 'appID: <YOUR_APP_ID>' \
--header 'token: <YOUR_TOKEN>'

Sample response

{
    "data": 
        {
            "name": "Nifty 50",
            "token": 26000
        },
        {
            "name": "Nifty IT",
            "token": 26008
        },
        {
            "name": "Nifty 100",
            "token": 26012
        },
        {
            "name": "Nifty Midcap 50",
            "token": 26014
        },
        .....
    ],
    "status": "success"
}

All Option chain symbols

Returns a map of underlying symbol (for example NIFTY, BANKNIFTY) to a list of expiry strings available for that underlying.

Sample request

curl --location 'https://edge.arrow.trade/info/option-chain-symbols/all' \
--header 'appID: <YOUR_APP_ID>' \
--header 'token: <YOUR_TOKEN>'

Sample response

{
    "data": {
        "equity": {
          ...
            "NSE:POLICYBZR-EQ": [
                "26-MAY-2026",
                "30-JUN-2026",
                "28-JUL-2026"
            ],
            "NSE:POLYCAB-EQ": [
                "26-MAY-2026",
                "30-JUN-2026",
                "28-JUL-2026"
            ],
            "NSE:POWERGRID-EQ": [
                "26-MAY-2026",
                "30-JUN-2026",
                "28-JUL-2026"
            ],
          ...
        },
        "indices": {

            "INDEX:BANKNIFTY": [
                "26-MAY-2026",
                "30-JUN-2026",
                "28-JUL-2026",
                "29-SEP-2026",
                "29-DEC-2026",
                "30-MAR-2027"
            ],

            "INDEX:NIFTY": [
                "12-MAY-2026",
                "19-MAY-2026",
                "26-MAY-2026",
                "02-JUN-2026",
                "09-JUN-2026",
                "30-JUN-2026",
                "28-JUL-2026",
                "29-SEP-2026",
                "29-DEC-2026",
                "30-MAR-2027",
                "29-JUN-2027",
                "28-DEC-2027",
                "27-JUN-2028",
                "26-DEC-2028",
                "26-JUN-2029",
                "24-DEC-2029",
                "25-JUN-2030",
                "31-DEC-2030"
            ],

            "INDEX:SENSEX": [
                "07-MAY-2026",
                "14-MAY-2026",
                "21-MAY-2026",
                "27-MAY-2026",
                "04-JUN-2026",
                "11-JUN-2026",
                "18-JUN-2026",
                "25-JUN-2026",
                "30-JUL-2026",
                "24-SEP-2026",
                "31-DEC-2026",
                "25-MAR-2027",
                "24-JUN-2027",
                "30-DEC-2027",
                "29-JUN-2028",
                "28-DEC-2028",
                "28-JUN-2029",
                "27-DEC-2029",
                "27-JUN-2030",
                "26-DEC-2030"
            ],

        }
    },
    "status": "success"
}

Option chain

Returns option instruments (calls and puts) for a given underlying symbol, exchange segment, expiry, and strike count.

Use /info/option-chain-symbols/all to list valid underlyings and expiries. For index options (for example NIFTY), set exchange to INDEX. For equity options (for example RELIANCE-EQ), set exchange to NSE.

Request body (JSON)

Field Type Description
underlying string Underlying symbol (for example NIFTY, BANKNIFTY, or RELIANCE-EQ from /info/option-chain-symbols/all)
exchange string Segment: INDEX for indices; NSE for equity underlyings
count string Number of strikes around ATM to return
expiry string Expiry in DD-MMM-YYYY form (for example 21-JUL-2026)

Sample request (index)

curl --location 'https://edge.arrow.trade/info/option-chain' \
--header 'appID: <YOUR_APP_ID>' \
--header 'token: <YOUR_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
    "underlying": "NIFTY",
    "exchange": "INDEX",
    "count": "20",
    "expiry": "21-JUL-2026"
}'

Sample request (equity)

curl --location 'https://edge.arrow.trade/info/option-chain' \
--header 'appID: <YOUR_APP_ID>' \
--header 'token: <YOUR_TOKEN>' \
--header 'Content-Type: application/json' \
--data '{
    "underlying": "RELIANCE-EQ",
    "exchange": "NSE",
    "count": "20",
    "expiry": "28-JUL-2026"
}'

Sample response

{
  "data": [
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C45100",
      "token": "66652",
      "optionType": "CE",
      "strikePrice": "45100.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C45200",
      "token": "66654",
      "optionType": "CE",
      "strikePrice": "45200.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C45300",
      "token": "66656",
      "optionType": "CE",
      "strikePrice": "45300.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C45400",
      "token": "66658",
      "optionType": "CE",
      "strikePrice": "45400.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C45500",
      "token": "66660",
      "optionType": "CE",
      "strikePrice": "45500.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C45000",
      "token": "52219",
      "optionType": "CE",
      "strikePrice": "45000.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C44900",
      "token": "66650",
      "optionType": "CE",
      "strikePrice": "44900.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C44800",
      "token": "66648",
      "optionType": "CE",
      "strikePrice": "44800.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C44700",
      "token": "66644",
      "optionType": "CE",
      "strikePrice": "44700.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24C44600",
      "token": "66642",
      "optionType": "CE",
      "strikePrice": "44600.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P45100",
      "token": "66653",
      "optionType": "PE",
      "strikePrice": "45100.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P45200",
      "token": "66655",
      "optionType": "PE",
      "strikePrice": "45200.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P45300",
      "token": "66657",
      "optionType": "PE",
      "strikePrice": "45300.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P45400",
      "token": "66659",
      "optionType": "PE",
      "strikePrice": "45400.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P45500",
      "token": "66661",
      "optionType": "PE",
      "strikePrice": "45500.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P45000",
      "token": "52221",
      "optionType": "PE",
      "strikePrice": "45000.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P44900",
      "token": "66651",
      "optionType": "PE",
      "strikePrice": "44900.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P44800",
      "token": "66649",
      "optionType": "PE",
      "strikePrice": "44800.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P44700",
      "token": "66647",
      "optionType": "PE",
      "strikePrice": "44700.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    },
    {
      "exchange": "NFO",
      "symbol": "BANKNIFTY28MAR24P44600",
      "token": "66643",
      "optionType": "PE",
      "strikePrice": "44600.00",
      "pricePrecision": "2",
      "tickSize": "0.05",
      "lotSize": "15"
    }
  ],
  "status": "success"
}

Each leg includes exchange, symbol, token, optionType (CE / PE), strikePrice, pricePrecision, tickSize, and lotSize.


Error handling

Failures follow the same patterns as other REST APIs: see Error codes and Response structure.