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 orUntagged.- The response has one entry per order, each with its own
statusCode,code,messageand orderid. 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 secondsX-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
| Attribute | Data Type | Description |
|---|---|---|
symbol* | string | Eg: NSE:SBIN-EQ |
qty* | int | The quantity should be in multiples of lot size for derivatives. |
type* | int |
|
side* | int |
|
productType* | string |
|
limitPrice* | float |
|
stopPrice* | float |
|
disclosedQty* | int |
|
validity* | string |
|
offlineOrder* | boolean |
|
stopLoss | float |
|
takeProfit | float |
|
Response Attributes
| Attribute | Data Type | Description |
|---|---|---|
s | string | Overall status of the batch request: ok or error. |
code | int | Overall response code for the batch request, e.g. 200. |
message | string | Overall message for the batch request (empty string on success). |
data | array | Array of per-order results, one entry for each order submitted in the request array, in the same order. |
data[].statusCode | int | HTTP-style status code for this individual order within the batch, e.g. 200 on success or 400 on failure. |
data[].statusDescription | string | HTTP status description for this individual order, e.g. HTTP OK or 400 Bad Request. |
data[].body | object | Result for this order. It has the same fields as the Single Order response. |
data[].body.s | string | ok / error |
data[].body.code | int |
|
data[].body.message | string |
|
data[].body.id | string |
|
Last updated on