Skip to content

OptionSymbol

Get the option symbol based on underlying, expiry, offset (ATM/ITM/OTM), and option type. This endpoint resolves the correct strike price automatically.

Endpoint URL

http
Local Host   :  POST http://127.0.0.1:5000/api/v1/optionsymbol
Ngrok Domain :  POST https://<your-ngrok-domain>.ngrok-free.app/api/v1/optionsymbol
Custom Domain:  POST https://<your-custom-domain>/api/v1/optionsymbol

Sample API Request (ATM Option)

json
{
  "apikey": "<your_app_apikey>",
  "underlying": "NIFTY",
  "exchange": "NSE_INDEX",
  "expiry_date": "30DEC25",
  "offset": "ATM",
  "option_type": "CE"
}

Sample cURL Request

bash
curl -X POST http://127.0.0.1:5000/api/v1/optionsymbol \
  -H 'Content-Type: application/json' \
  -d '{
  "apikey": "<your_app_apikey>",
  "underlying": "NIFTY",
  "exchange": "NSE_INDEX",
  "expiry_date": "30DEC25",
  "offset": "ATM",
  "option_type": "CE"
}'

Sample API Response (ATM Option)

json
{
  "status": "success",
  "symbol": "NIFTY30DEC2525950CE",
  "exchange": "NFO",
  "lotsize": 65,
  "tick_size": 5,
  "freeze_qty": 1800,
  "underlying_ltp": 25966.4
}

Sample API Request (ITM Option)

json
{
  "apikey": "<your_app_apikey>",
  "underlying": "NIFTY",
  "exchange": "NSE_INDEX",
  "expiry_date": "30DEC25",
  "offset": "ITM3",
  "option_type": "PE"
}

Sample API Response (ITM Option)

json
{
  "status": "success",
  "symbol": "NIFTY30DEC2526100PE",
  "exchange": "NFO",
  "lotsize": 65,
  "tick_size": 5,
  "freeze_qty": 1800,
  "underlying_ltp": 25966.4
}

Sample API Request (OTM Option)

json
{
  "apikey": "<your_app_apikey>",
  "underlying": "NIFTY",
  "exchange": "NSE_INDEX",
  "expiry_date": "30DEC25",
  "offset": "OTM4",
  "option_type": "CE"
}

Sample API Response (OTM Option)

json
{
  "status": "success",
  "symbol": "NIFTY30DEC2526150CE",
  "exchange": "NFO",
  "lotsize": 65,
  "tick_size": 5,
  "freeze_qty": 1800,
  "underlying_ltp": 25966.4
}

Request Body

ParameterDescriptionMandatory/OptionalDefault Value
apikeyYour Tradeboard API keyMandatory-
underlyingUnderlying symbol (NIFTY, BANKNIFTY, SENSEX) or a futures symbol that already carries the expiry, such as NIFTY28OCT25FUTMandatory-
exchangeUnderlying's exchange. Any value in the shared VALID_EXCHANGES list passes validation; the practical values are NSE_INDEX, NSE, BSE_INDEX, BSE, NFO, BFOMandatory-
expiry_dateExpiry date in DDMMMYY format. Not required when underlying already includes the expiryOptionalDerived from underlying
strike_intStrike interval, positive integer or null. Omit it so the actual strikes in the instrument master are used, which is recommendedOptionalDerived from the instrument master
offsetStrike offset: ATM, ITM1-ITM50, OTM1-OTM50Mandatory-
option_typeOption type: CE or PE (lowercase accepted)Mandatory-
strategyDeprecated. Accepted and ignored; it will be removed in a future versionOptional-

These eight fields are the complete OptionSymbolSchema. Any other field returns HTTP 400. If you omit both expiry_date and an expiry-bearing underlying, the request fails in the service rather than at validation.

Response Fields

FieldTypeDescription
statusstring"success" or "error"
symbolstringResolved option symbol
exchangestringOptions exchange (NFO/BFO)
lotsizenumberLot size for the option
tick_sizenumberMinimum price movement
freeze_qtynumberMaximum quantity per order
underlying_ltpnumberCurrent underlying price

Understanding Offset

OffsetDescriptionCE Strike DirectionPE Strike Direction
ATMAt-The-MoneyClosest to LTPClosest to LTP
ITM1-ITM50In-The-MoneyBelow LTPAbove LTP
OTM1-OTM50Out-of-The-MoneyAbove LTPBelow LTP

Lot Sizes

Lot sizes come from the downloaded instrument master, not from a fixed table. The exchanges revise them, so read lotsize from the response rather than hard-coding a value. The examples on this page reflect one particular master contract.

Notes

  • The offset is calculated based on actual strike intervals in the database
  • underlying_ltp shows the current price used for ATM calculation
  • Use this endpoint to discover the symbol before placing orders
  • For placing orders directly with offset, use OptionsOrder

Back to: API Documentation