---
title: "Create bulk orders"
method: POST
path: "/accounts/{account_id}/bulk-orders"
tags: ["Orders"]
---

# Create bulk orders

`POST /accounts/{account_id}/bulk-orders`

Creates multiple orders in a single request, up to 1000. Note that a successful call to this endpoint does not necessarily mean your orders have been accepted, e.g. a downstream venue might reject your order. You should therefore utilize our WebSocket APIs to listen for changes in order lifecycle events.

The response will contain an array of objects, indicating whether your order was submitted. If the order was submitted, the `order_id` field will be populated with the order ID assigned to this order. If the order was rejected, the `reason` field will be populated with the reason for rejection. The data array returned in the response object is guaranteed to be ordered in the same order as the orders you provided in the request. Again, note that even if your order was submitted, that doesn't mean it was _accepted_, and may still be rejected by downstream venues.

## Path parameters

- `account_id` string, required — Account ID for the account.

## Request body

- object
  - `orders` CreateOrder[], required — An array of orders to create.
    - `reference_id` string — An ID that you provide.
    - `order_type` 'limit' | 'market' | 'stop' | 'stop-limit', required — The type of order, can be one of the following: - `limit`: A limit order will execute at-or-better than the limit price you specify - `market`: An order that will execute at the prevailing market prices - `stop`: A stop order will result in a market order when the market price reaches the specified stop price - `stop-limit`: A stop limit order will result in a limit order when the market price reaches the specified stop price
    - `side` 'buy' | 'sell' | 'sell-short', required — Buy, sell, sell-short indicator.
    - `quantity` string, required — String representation of quantity.
    - `price` string — String representation of a price.
    - `stop_price` string — String representation of a price.
    - `time_in_force` 'day' | 'ioc' | 'day-plus' | 'at-open' | 'at-close', required — The lifecycle enforcement of this order. - `day`: The order will exist for the duration of the current trading session - `ioc`: The order will immediately be executed or cancelled - `day-plus`: The order will exist only for the duration the current trading session plus extended hours, if applicable - `at-open`: The order will exist only for the opening auction of the next session - `at-close`: The order will exist only for the closing auction of the current session
    - `locate_broker` string — If you're short-selling and using an away broker for a locate, provide the broker name here.
    - `symbol` string, required
    - `symbol_format` 'cms' | 'osi' — Denotes the format of the provided `symbol` field.
    - `strategy` union
      - SorStrategy
        - `type` 'sor' | 'dark' | 'ap' | 'pov' | 'twap' | 'vwap' | 'dma', required — Strategy type used for execution, can be one of below. - `sor`: Smart order router (default) - `dark`: Dark pool - `ap`: Arrival price - `pov`: Percentage of volume - `twap`: Time weighted average price - `vwap`: Volume weighted average price - `dma`: Direct market access For more information on these strategies, please refer to our [documentation](https://docs.clearstreet.io/studio/docs/execution-strategies).
        - `start_at` integer — Milliseconds since epoch.
        - `end_at` integer — Milliseconds since epoch.
        - `urgency` 'super-passive' | 'passive' | 'moderate' | 'aggressive' | 'super-aggressive' — The urgency associated with the execution strategy.
      - VwapStrategy
        - `type` 'sor' | 'dark' | 'ap' | 'pov' | 'twap' | 'vwap' | 'dma', required — Strategy type used for execution, can be one of below. - `sor`: Smart order router (default) - `dark`: Dark pool - `ap`: Arrival price - `pov`: Percentage of volume - `twap`: Time weighted average price - `vwap`: Volume weighted average price - `dma`: Direct market access For more information on these strategies, please refer to our [documentation](https://docs.clearstreet.io/studio/docs/execution-strategies).
        - `start_at` integer — Milliseconds since epoch.
        - `end_at` integer — Milliseconds since epoch.
        - `urgency` 'super-passive' | 'passive' | 'moderate' | 'aggressive' | 'super-aggressive' — The urgency associated with the execution strategy.
        - `min_percent` integer — The minimum percentage of market volume. Must be an integer between 0 and 100 (inclusive).
        - `max_percent` integer — The maximum percentage of market volume. Must be an integer between 0 and 50 (inclusive).
      - TwapStrategy
        - `type` 'sor' | 'dark' | 'ap' | 'pov' | 'twap' | 'vwap' | 'dma', required — Strategy type used for execution, can be one of below. - `sor`: Smart order router (default) - `dark`: Dark pool - `ap`: Arrival price - `pov`: Percentage of volume - `twap`: Time weighted average price - `vwap`: Volume weighted average price - `dma`: Direct market access For more information on these strategies, please refer to our [documentation](https://docs.clearstreet.io/studio/docs/execution-strategies).
        - `start_at` integer — Milliseconds since epoch.
        - `end_at` integer — Milliseconds since epoch.
        - `urgency` 'super-passive' | 'passive' | 'moderate' | 'aggressive' | 'super-aggressive' — The urgency associated with the execution strategy.
        - `min_percent` integer — The minimum percentage of market volume. Must be an integer between 0 and 100 (inclusive).
        - `max_percent` integer — The maximum percentage of market volume. Must be an integer between 0 and 50 (inclusive).
      - ApStrategy
        - `type` 'sor' | 'dark' | 'ap' | 'pov' | 'twap' | 'vwap' | 'dma', required — Strategy type used for execution, can be one of below. - `sor`: Smart order router (default) - `dark`: Dark pool - `ap`: Arrival price - `pov`: Percentage of volume - `twap`: Time weighted average price - `vwap`: Volume weighted average price - `dma`: Direct market access For more information on these strategies, please refer to our [documentation](https://docs.clearstreet.io/studio/docs/execution-strategies).
        - `start_at` integer — Milliseconds since epoch.
        - `end_at` integer — Milliseconds since epoch.
        - `urgency` 'super-passive' | 'passive' | 'moderate' | 'aggressive' | 'super-aggressive' — The urgency associated with the execution strategy.
        - `min_percent` integer — The minimum percentage of market volume. Must be an integer between 0 and 100 (inclusive).
        - `max_percent` integer — The maximum percentage of market volume. Must be an integer between 0 and 100 (inclusive).
      - PovStrategy
        - `type` 'sor' | 'dark' | 'ap' | 'pov' | 'twap' | 'vwap' | 'dma', required — Strategy type used for execution, can be one of below. - `sor`: Smart order router (default) - `dark`: Dark pool - `ap`: Arrival price - `pov`: Percentage of volume - `twap`: Time weighted average price - `vwap`: Volume weighted average price - `dma`: Direct market access For more information on these strategies, please refer to our [documentation](https://docs.clearstreet.io/studio/docs/execution-strategies).
        - `start_at` integer — Milliseconds since epoch.
        - `end_at` integer — Milliseconds since epoch.
        - `urgency` 'super-passive' | 'passive' | 'moderate' | 'aggressive' | 'super-aggressive' — The urgency associated with the execution strategy.
        - `target_percent` integer, required — The target percentage of market volume. Must be an integer between 0 and 100 (inclusive).
      - DarkStrategy
        - `type` 'sor' | 'dark' | 'ap' | 'pov' | 'twap' | 'vwap' | 'dma', required — Strategy type used for execution, can be one of below. - `sor`: Smart order router (default) - `dark`: Dark pool - `ap`: Arrival price - `pov`: Percentage of volume - `twap`: Time weighted average price - `vwap`: Volume weighted average price - `dma`: Direct market access For more information on these strategies, please refer to our [documentation](https://docs.clearstreet.io/studio/docs/execution-strategies).
        - `start_at` integer — Milliseconds since epoch.
        - `end_at` integer — Milliseconds since epoch.
        - `urgency` 'super-passive' | 'passive' | 'moderate' | 'aggressive' | 'super-aggressive' — The urgency associated with the execution strategy.
        - `max_percent` integer — The maximum percentage of market volume. Must be an integer between 0 and 100 (inclusive).
      - DmaStrategy
        - `type` 'sor' | 'dark' | 'ap' | 'pov' | 'twap' | 'vwap' | 'dma', required — Strategy type used for execution, can be one of below. - `sor`: Smart order router (default) - `dark`: Dark pool - `ap`: Arrival price - `pov`: Percentage of volume - `twap`: Time weighted average price - `vwap`: Volume weighted average price - `dma`: Direct market access For more information on these strategies, please refer to our [documentation](https://docs.clearstreet.io/studio/docs/execution-strategies).
        - `destination` 'arcx' | 'bats' | 'baty' | 'edga' | 'edgx' | 'eprl' | 'iexg' | 'memx' | 'xase' | 'xbos' | 'xcis' | 'xnms' | 'xnys', required — Order Destination. <table><thead> <tr> <th>MIC</th> <th>Exchange</th> </tr></thead> <tbody> <tr> <td>ARCX</td> <td>NYSE ARCA</td> </tr> <tr> <td>BATS</td> <td>BATS Exchange</td> </tr> <tr> <td>BATY</td> <td>BATS Y Exchange</td> </tr> <tr> <td>EDGA</td> <td>EDGA Exchange</td> </tr> <tr> <td>EDGX</td> <td>EDGX Exchange</td> </tr> <tr> <td>EPRL</td> <td>MIAX Pearl Equities</td> </tr> <tr> <td>IEXG</td> <td>Investors' Exchange</td> </tr> <tr> <td>MEMX</td> <td>Members' Exchange</td> </tr> <tr> <td>XASE</td> <td>NYSE American</td> </tr> <tr> <td>XBOS</td> <td>NASDAQ BX Exchange</td> </tr> <tr> <td>XCIS</td> <td>NYSE National</td> </tr> <tr> <td>XNMS</td> <td>NASDAQ/NMS (Global Market)</td> </tr> <tr> <td>XNYS</td> <td>New York Stock Exchange</td> </tr> </tbody></table>
    - `open_close_indicator` 'open' | 'close'

## Response `201`

Orders received. Indicates the orders were received and are pending further processing.

- object
  - `submitted` integer, required — Total number of orders submitted
  - `rejected` integer, required — Total number of orders rejected
  - `data` object[], required — Array indicating whether each respective order was submitted or not. This array is guaranteed to be sorted in the same order as the orders you provided in your request.
    - `submitted` boolean, required — True if the order was submitted successfully, false otherwise.
    - `order_id` string — Unique order ID assigned by us.
    - `reason` string — If the order rejected, the reason for rejection. Empty if the order was accepted.

## Other responses

- `default` — Error response

---

[API](https://skmtc.net/clear-street/apis/common-api-models.md) · [All operations](https://skmtc.net/clear-street/apis/common-api-models/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clear-street/common-api-models/revisions/05b4df42c056/schema)
