Anatomy of an order
Every order in Kite Connect is built from the same set of parameters — the following chapters just vary a few of these per order type.
kite.place_order(
variety="regular", # regular, amo, co, iceberg, auction
exchange="NSE", # NSE, BSE, NFO, BFO, CDS, MCX
tradingsymbol="INFY",
transaction_type="BUY", # BUY or SELL
quantity=10,
product="CNC", # CNC, MIS, NRML
order_type="MARKET", # MARKET, LIMIT, SL, SL-M
price=None, # required for LIMIT/SL
trigger_price=None, # required for SL/SL-M
validity="DAY", # DAY, IOC, TTL
tag="my-strategy-01", # optional, up to 20 chars, your own reference
)
Return value: just an order_id string. Nothing else — confirming what happened requires polling the order book (chapter 18) or listening for order updates via WebSocket (kws.on_order_update).
The parameters that must agree with each other
| order_type | price required? | trigger_price required? |
|---|---|---|
MARKET | No | No |
LIMIT | Yes | No |
SL | Yes | Yes |
SL-M | No | Yes |
Sending price on a MARKET order is ignored; omitting price on a LIMIT order is rejected.
variety — which order pipeline this enters
regular— normal live-market order (chapters 44-51).amo— after-market order, queued for next session open (chapter 62).co— cover order, market order + compulsory stop-loss (chapter 52).iceberg— large order split into disclosed chunks (chapter 64).auction— special auction-session orders, rare for retail algo use.
validity
DAY— stays live until end of trading day or filled/cancelled.IOC(Immediate or Cancel) — fills whatever's immediately available, cancels the rest. Use for market-impact-sensitive fills where you'd rather partial-fill now than rest an order.TTL— time-limited validity in minutes (needsvalidity_ttlparam).
Every following order chapter is this same function call with a specific combination of these fields — memorize this table, not each chapter's snippet in isolation.