Skip to main content

Option symbol

Resolve ATM/ITM/OTM selection into an actual option symbol and instrument metadata without submitting an order.

Offline source contract; this page is not a production deployment announcement. Replace symbols, expiries, quantities and mode snapshots with current account evidence before use.

POST /api/v1/optionsymbol​

Authentication: apikey JSON; identity checked in route/service. Send a JSON object with Content-Type: application/json.

Parameters​

FieldTypeRequiredDefault / omissionMeaning
apikeyStringYesrequiredPer-broker IMC key; never use the broker access token.
strategyStringNoomitted; see behavior belowStrategy name.
underlyingStringYesrequiredUnderlying index/equity/future symbol.
exchangeStringYesrequiredExchange identifier supported by the selected instrument and broker.
expiry_dateStringNoomitted; see behavior belowExpiry in DDMMMYY format; use an available master-contract expiry.
strike_intIntegerNoomitted; see behavior belowPositive strike interval override; omit to use actual strikes.
offsetStringYesrequiredATM, ITM1–ITM50 or OTM1–OTM50.
option_typeStringYesrequiredCE or PE (lowercase accepted by schema).

Request example​

{
"apikey": "YOUR_BROKER_IMC_KEY",
"underlying": "NIFTY",
"exchange": "NSE_INDEX",
"offset": "ATM",
"option_type": "CE",
"expiry_date": "31DEC26"
}

Python SDK​

from layr0_imc import api

client = api(api_key="YOUR_BROKER_IMC_KEY", host="https://YOUR_IMC_HOST")

result = client.optionsymbol(underlying='NIFTY', exchange='NSE_INDEX', offset='ATM', option_type='CE', expiry_date='31DEC26')
print(result)

Response and errors​

Illustrative 200 success; values are examples, not broker evidence:

{
"status": "success",
"symbol": "NIFTY31DEC2625000CE",
"exchange": "NFO",
"lotsize": 65,
"tick_size": 0.05,
"freeze_qty": 1800,
"underlying_ltp": 25000
}

All incoming JSON objects and arrays follow recursive forbidden-field validation. A prohibited documentation key returns 400 before execution:

{
"status": "error",
"error_code": "FORBIDDEN_JSON_FIELD",
"message": "Documentation fields are not allowed in request JSON."
}

Schema errors use 400. Authentication and broker-session failures retain endpoint-specific errors. See HTTP errors and authentication/mode requirements. No error response authorizes an automatic order retry.

Modes, capabilities and usage​

No order is placed. Resolution needs master contracts and quote access. expiry_date can be omitted when the underlying identifies its expiry; otherwise provide it. The optional strategy field is deprecated. Returns symbol, exchange, lotsize, tick_size, freeze_qty and underlying_ltp. No mode preconditions or route usage-recording decorator are attached.

Source handler: restx_api.option_symbol.OptionSymbol.post. Source services: services.option_symbol_service.get_option_symbol.