---
title: "Create Multiple Orders"
method: POST
path: "/v1/orders/batched"
tags: ["Orders"]
---

# Create Multiple Orders

`POST /v1/orders/batched`

Create up to 20 orders in a single request. If any entry fails request-shape validation, the whole batch is rejected by the gateway before reaching the exchange. Per-entry exchange outcomes (accept, fill, reject) are delivered on the order stream, not in this response. `createdOrderIds` are returned in request order.

## Request body

- CreateOrderListRequest — Batched create-order request.
  - `orders` CreateOrderRequest[], required — Orders to create (1 to 20).
    - `marketSlug` string, required — Unique market slug into which the order should be entered
    - `type` 'ORDER_TYPE_MARKET_TO_LIMIT' | 'ORDER_TYPE_LIMIT' | 'ORDER_TYPE_STOP' | 'ORDER_TYPE_STOP_LIMIT' — OrderType indicates the type of an order.
    - `price` Amount — Represents a monetary amount with its currency
      - `value` string, decimal, required — The amount as a decimal string
      - `currency` string, required — The currency code
    - `quantity` number, double — Order quantity in contracts. Supports decimal quantities on markets whose minimumTradeQty is less than 1.
    - `tif` 'TIME_IN_FORCE_DAY' | 'TIME_IN_FORCE_GOOD_TILL_CANCEL' | 'TIME_IN_FORCE_IMMEDIATE_OR_CANCEL' | 'TIME_IN_FORCE_GOOD_TILL_TIME' | 'TIME_IN_FORCE_FILL_OR_KILL' — TimeInForce specifies how long the order remains in effect.
    - `participateDontInitiate` boolean — If true, order must rest on the book prior to matching (maker only). Order will be rejected if it would immediately match.
    - `goodTillTime` string — Expiration time for orders with TIME_IN_FORCE_GOOD_TILL_DATE
    - `intent` 'ORDER_INTENT_BUY_LONG' | 'ORDER_INTENT_SELL_LONG' | 'ORDER_INTENT_BUY_SHORT' | 'ORDER_INTENT_SELL_SHORT' — Intent of the order. `ORDER_INTENT_BUY_LONG` = Buy YES contracts, `ORDER_INTENT_SELL_LONG` = Sell YES contracts, `ORDER_INTENT_BUY_SHORT` = Buy NO contracts, `ORDER_INTENT_SELL_SHORT` = Sell NO contracts.
    - `outcomeSide` 'OUTCOME_SIDE_YES' | 'OUTCOME_SIDE_NO' — Outcome side of the market (YES = long, NO = short).
    - `action` 'ORDER_ACTION_BUY' | 'ORDER_ACTION_SELL' — Order action (BUY or SELL).
    - `cashOrderQty` Amount — Represents a monetary amount with its currency
      - `value` string, decimal, required — The amount as a decimal string
      - `currency` string, required — The currency code
    - `manualOrderIndicator` 'MANUAL_ORDER_INDICATOR_MANUAL' | 'MANUAL_ORDER_INDICATOR_AUTOMATED' — ManualOrderIndicator designates the manual or automated nature of an order.
    - `synchronousExecution` boolean — If true, will block until the order is filled, rejected, canceled, or expired, up to maxBlockTime seconds
    - `maxBlockTime` string, int64 — Maximum block time in seconds if synchronous execution is requested
    - `slippageTolerance` SlippageTolerance — Slippage tolerance configuration for market orders
      - `currentPrice` Amount — Represents a monetary amount with its currency
        - `value` string, decimal, required — The amount as a decimal string
        - `currency` string, required — The currency code
      - `bips` integer, nullable — Slippage tolerance in basis points (1 bip = 0.01%)
      - `ticks` integer, nullable — Slippage tolerance in price ticks. Takes priority over bips if both are set.

## Response `200`

Orders created successfully

- CreateOrderListResponse
  - `createdOrderIds` string[] — Exchange-assigned order IDs, in request order.

## Other responses

- `400` — Bad request - invalid batched order request or exceeds max batch size
- `401` — Unauthorized - invalid or missing authentication token
- `500` — Internal server error

---

[API](https://skmtc.net/polymarket/apis/portfolio-api.md) · [All operations](https://skmtc.net/polymarket/apis/portfolio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/polymarket/portfolio-api/versions/150874842db1/schema)
