Place an order (dry run by default)
place_orderPreview and submit BUY/SELL orders to Zerodha Kite Connect: dry runs validate margin and safety checks, then a confirmed live call sends the order.
Instructions
Place an order. DRY RUN BY DEFAULT: with dry_run=true (the default) nothing is sent; the answer shows the exact request, the estimated value, Kite's margin calculation, every safety check and, when live trading is enabled and the checks pass, a confirmation_token. To send it, repeat the identical call with dry_run=false and that token. Live sends are checked against the server's caps and allow-lists and written to the audit log.
Placing an order only registers it with Kite's OMS; check get_order_history for its fate. Live API orders must come from the static IP registered in the Kite developer console (SEBI rule, since April 2026).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"exchange": "<exchange>",
"tradingsymbol": "<tradingsymbol>",
"transaction_type": "<transaction_type>",
"quantity": "<quantity>",
"product": "<product>",
"order_type": "<order_type>"
},
"name": "place_order"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | alphanumeric label, max 20 chars | |
| price | No | limit price (LIMIT, SL) | |
| dry_run | No | true (default): validate and preview only, nothing is sent. false: send it live, which needs live trading enabled on the server and the confirmation_token from a dry run | |
| product | Yes | CNC delivery, MIS intraday, NRML F&O carry, MTF margin | |
| variety | No | regular, amo (after market), co (cover), iceberg, auction | regular |
| exchange | Yes | NSE, BSE (equity), NFO, BFO (F&O), CDS, BCD, MCX | |
| quantity | Yes | units (NFO/BFO: a multiple of the lot size) | |
| validity | No | DAY (default), IOC, or TTL | |
| autoslice | No | split a quantity above the exchange freeze limit into up to 10 orders | |
| order_type | Yes | MARKET, LIMIT, SL (stop-limit), SL-M (stop-market) | |
| iceberg_legs | No | iceberg only: number of legs | |
| validity_ttl | No | minutes, for validity=TTL | |
| tradingsymbol | Yes | e.g. INFY, NIFTY25NOVFUT | |
| trigger_price | No | trigger (SL, SL-M; stop-loss for co) | |
| auction_number | No | auction only (get_auctions) | |
| iceberg_quantity | No | iceberg only: quantity per leg | |
| transaction_type | Yes | BUY or SELL | |
| market_protection | No | MARKET / SL-M only: -1 automatic, or a % above 0 and up to 100 | |
| confirmation_token | No | the confirmation_token returned by a dry run of this exact call (single use) | |
| disclosed_quantity | No | quantity shown in the market |