---
title: "Batch Place Orders"
method: POST
path: "/api/v1/order/place-batch"
tags: ["Trade"]
---

# Batch Place Orders

`POST /api/v1/order/place-batch`

Create multiple new orders in a single request

## Request body

- BatchPlaceOrdersRequest — Batch place order request. TODO: Maximum 20 orders per request TODO: Rate limiting (10 reqs per sec, 20 * 10 = 200 orders in one sec)
  - `await_outcome` boolean — If true, gateway waits up to a server-defined timeout (currently 3s) for final engine outcomes and maps them into `exit_info`. If false (default), `exit_info` reports edge outcomes (validation + publish ack).
  - `request` PlaceOrderRequest[], required
    - `close_on_trigger` boolean, required
    - `expire_time` string, date-time, nullable
    - `margin_mode` 'Cross' | 'Isolated', required
    - `order_link_id` string
    - `order_type` 'Limit' | 'Market', required — Order type: Limit, Market.
    - `post_only` boolean, required
    - `price` string, required
    - `qty` string, required
    - `reduce_only` boolean, required
    - `side` 'Sell' | 'Buy', required — Order side: buy or sell.
    - `slippage_tolerance` union
      - object
        - `tick_size` integer, required
      - object
        - `percent` number, double, required
    - `smp_group` integer, nullable — Self-match prevention group id. Orders with the same `(user_id, smp_group)` are eligible for SMP checks.
    - `smp_type` 'CancelMaker' | 'CancelTaker' | 'CancelBoth' — Self Match Prevention strategy.
    - `sub_account_address` string, required
    - `symbol` string, required
    - `time_in_force` union, required — Time in Force instructions.
      - 'GTC' — Good Till Cancel
      - 'IOC' — Immediate or Cancel
      - 'FOK' — Fill or Kill
      - object — Good Till Date
        - `GTD` integer, required — Good Till Date
      - 'Day' — Good For Day
    - `tpsl` TpSl
      - `mode` 'Full' | 'Partial', required
      - `stop_loss` union
        - object
          - `market` object, required
            - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
            - `trigger_price` string, required
        - object
          - `limit` object, required
            - `limit_price` string, required
            - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
            - `trigger_price` string, required
      - `take_profit` union
        - object
          - `market` object, required
            - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
            - `trigger_price` string, required
        - object
          - `limit` object, required
            - `limit_price` string, required
            - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
            - `trigger_price` string, required
    - `trigger` ConditionalOrder
      - `trigger_by` 'LastPrice' | 'IndexPrice' | 'MarkPrice', required
      - `trigger_direction` 'Up' | 'Down', required
      - `trigger_price` string, required — The price level that activates the order.

## Response `200`

Orders placed

- BatchPlaceOrdersResponse — Response of batch place orders.
  - `exit_info` ExitMessage[], required — Information about the exit status of each order in the batch.
    - union
      - object
        - `Error` object, required
          - `code` integer, required
          - `msg` string, required
      - object
        - `Success` object, required
          - `code` integer, required
          - `msg` string, required
  - `result` PlaceOrderResponse[], required
    - `order_id` string, uuid, required
    - `order_link_id` string
  - `time` string, date-time, required

---

[API](https://skmtc.net/ekidenfi/apis/ekiden-gateway.md) · [All operations](https://skmtc.net/ekidenfi/apis/ekiden-gateway/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ekidenfi/ekiden-gateway/revisions/75ffe546b73a/schema)
