Skip to Content

Multi Order

This API allows you to place multiple orders in a single request.

USE CASE

Place multiple buy or sell orders in a single request.

Details

  • You can place upto 10 orders simultaneously via the API.
  • While Placing Multi orders you need to pass an ARRAY containing the orders request attributes
  • Send an array of up to 10 orders. Each order uses the same attributes as the Single Order API.
  • Placing orders needs an app with the Order Placement permission.
  • Placing, modifying and cancelling orders together must stay within 10 orders per second. Requests beyond this limit are rejected.
  • Price inputs must be multiples of the symbol tick size, and quantity must follow the lot-size rules, for every order in the array.
  • orderTag, when passed, must be 1 to 30 letters or digits and cannot be your client ID or Untagged.
  • The response has one entry per order, each with its own statusCode, code, message and order id. Check every entry, not only the top-level status.
  • To get hedge margin benefits on related orders, use this API rather than the Multi-leg Order API, which does not support them.
  • To change or cancel these orders, use Modify Multi Order or Cancel Multi Order.
  • For order types, product types, validations and sync vs async behaviour, refer to the Order Placement Guide.
  • When order rate limiting is triggered, the API returns 429 Too Many Requests.
  • Retry timing is provided through response headers, not in the response body.
  • Retry-After — Wait time before retrying, in seconds
  • X-Retry-After-Ms — Wait time before retrying, in milliseconds
  • Use the retry interval returned in the response headers before sending another order request.
  • Rate limits differ between the Standard and Prime plans. See Plans & rate limits.

Request Attributes

AttributeData TypeDescription
symbol*stringEg: NSE:SBIN-EQ
qty*intThe quantity should be in multiples of lot size for derivatives.
type*int
  • 1 => Limit Order
  • 2 => Market Order
  • 3 => Stop Order (SL-M)
  • 4 => Stoplimit Order (SL-L)
  • View Details
side*int
productType*string
  • CNC => For equity only
  • INTRADAY => Applicable for all segments.
  • MARGIN => Applicable only for derivatives
  • MTF => Approved Symbols Only
  • View Details
limitPrice*float
  • Default => 0
  • Provide valid price for INTRADAY, CNC, MTF, or MARGIN (required for Limit and Stoplimit orders).
stopPrice*float
  • Default => 0
  • Provide valid price for INTRADAY, CNC, MTF, or MARGIN (required for Stop and Stoplimit orders).
disclosedQty*int
  • Default => 0
  • Allowed only for Equity
validity*string
  • IOC => Immediate or Cancel
  • DAY => Valid till the end of the day
offlineOrder*boolean
  • False => When market is open
  • True => When placing AMO order
stopLossfloat
  • Default => 0
  • Provide valid price for INTRADAY, CNC, MTF, or MARGIN.
takeProfitfloat
  • Default => 0
  • Provide valid price for INTRADAY, CNC, MTF, or MARGIN.

Response Attributes

AttributeData TypeDescription
sstringOverall status of the batch request: ok or error.
codeintOverall response code for the batch request, e.g. 200.
messagestringOverall message for the batch request (empty string on success).
dataarrayArray of per-order results, one entry for each order submitted in the request array, in the same order.
data[].statusCodeintHTTP-style status code for this individual order within the batch, e.g. 200 on success or 400 on failure.
data[].statusDescriptionstringHTTP status description for this individual order, e.g. HTTP OK or 400 Bad Request.
data[].bodyobjectResult for this order. It has the same fields as the Single Order response.
data[].body.sstringok / error
data[].body.codeint
  • This is the code to identify specific responses
  • If 201 comes in code it implies that order request has been made but no acknowledgement has been received in this case check orderbook before placing order
data[].body.messagestring
  • Message to clarify the request status.
  • Eg: Order submitted successfully.
  • Your Order Ref. No.119062829763
data[].body.idstring
  • The order number of the placed order.
  • Eg: 119031547242
Last updated on