For the complete documentation index, see llms.txt. This page is also available as Markdown.

OptionsOrder

Place an options order by specifying offset (ATM/ITM/OTM) instead of exact strike price. The API automatically resolves the correct option symbol based on the current underlying price.

Endpoint URL

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

Sample API Request (ATM Option)

{
  "apikey": "<your_app_apikey>",
  "strategy": "python",
  "underlying": "NIFTY",
  "exchange": "NSE_INDEX",
  "expiry_date": "28OCT25",
  "offset": "ATM",
  "option_type": "CE",
  "action": "BUY",
  "quantity": "65",
  "pricetype": "MARKET",
  "product": "NRML",
  "splitsize": "0"
}

Sample cURL Request

Sample API Response (ATM Option)

Sample API Request (ITM Option)

Sample API Response (ITM Option)

Sample API Request (OTM Option)

Offset Values

Offset
Description

ATM

At-The-Money (strike closest to current price)

ITM1 to ITM50

In-The-Money (1-50 strikes away)

OTM1 to OTM50

Out-of-The-Money (1-50 strikes away)

Understanding ITM/OTM for CE and PE

Option Type
ITM Direction
OTM Direction

CE (Call)

Lower strikes

Higher strikes

PE (Put)

Higher strikes

Lower strikes

Request Body

Parameter
Description
Mandatory/Optional
Default Value

apikey

Your OpenAlgo API key

Mandatory

-

strategy

Strategy identifier

Mandatory

-

underlying

Underlying symbol (NIFTY, BANKNIFTY, etc.)

Mandatory

-

exchange

Exchange: NSE_INDEX, BSE_INDEX, NFO, BFO

Mandatory

-

expiry_date

Expiry date in DDMMMYY format (e.g., 30JUL26)

Optional

Derived when underlying includes expiry

offset

Strike offset: ATM, ITM1-ITM50, OTM1-OTM50

Mandatory

-

option_type

Option type: CE or PE

Mandatory

-

action

Order action: BUY or SELL

Mandatory

-

quantity

Order quantity

Mandatory

-

pricetype

Price type: MARKET, LIMIT, SL, SL-M

Optional

MARKET

product

Product type: MIS or NRML

Optional

MIS

splitsize

Split order into chunks (0 = no split)

Optional

0

price

Limit price (for LIMIT orders)

Optional

0

trigger_price

Trigger price (for SL orders)

Optional

0

Response Fields

Field
Type
Description

status

string

"success" or "error"

orderid

string

Unique order ID from broker

symbol

string

Resolved option symbol

exchange

string

Exchange where order was placed (NFO/BFO)

offset

string

Offset used for resolution

option_type

string

CE or PE

underlying

string

Underlying futures symbol used for price reference

underlying_ltp

number

Last traded price of underlying

mode

string

"live" or "analyze"

Notes

  • The underlying is used to fetch the current price for ATM calculation

  • For NSE_INDEX or BSE_INDEX exchange, the order is placed on NFO/BFO respectively

  • The expiry_date must be in DDMMMYY format (e.g., 28OCT25, 25NOV25)

  • Use splitsize to break large orders into smaller chunks (max 100 orders per split)

  • The API uses the synthetic futures price or spot price to determine ATM strike

  • Quantity is a positive integer. Offset is validated from ATM, ITM1-ITM50, or OTM1-OTM50.


Back to: API Documentation

Last updated