> ## Documentation Index
> Fetch the complete documentation index at: https://staging-docs.orderly.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Batch create order

> **Limit: 1 request per 1 second**

`POST /v1/batch-order`

Creates up to 10 orders in one request. Send the orders in the `orders` JSON array. Each order in the request counts as one order toward the overall create order rate limit.

**Reduce-only limitation:** `POST /v1/batch-order` does not support or apply `reduce_only`. Do not include `reduce_only` in a batch order item. If reduce-only execution is required, submit each order separately using [`POST /v1/order`](/build-on-omnichain/restful-api/private/create-order) with `reduce_only: true`. Without this constraint, an order may increase a position instead of reducing it.



Note: This endpoint requires `trading` scope in orderly key.



## OpenAPI

````yaml orderly.openapi post /v1/batch-order
openapi: 3.0.1
info:
  title: EVM
  description: ''
  version: 1.0.0
servers:
  - url: https://api.orderly.org
    description: Mainnet
  - url: https://testnet-api.orderly.org
    description: Testnet
security: []
tags:
  - name: public
  - name: private
paths:
  /v1/batch-order:
    post:
      tags:
        - private
      summary: Batch create order
      description: >-
        **Limit: 1 request per 1 second**


        `POST /v1/batch-order`


        Creates up to 10 orders in one request. Send the orders in the `orders`
        JSON array. Each order in the request counts as one order toward the
        overall create order rate limit.


        **Reduce-only limitation:** `POST /v1/batch-order` does not support or
        apply `reduce_only`. Do not include `reduce_only` in a batch order item.
        If reduce-only execution is required, submit each order separately using
        [`POST /v1/order`](/build-on-omnichain/restful-api/private/create-order)
        with `reduce_only: true`. Without this constraint, an order may increase
        a position instead of reducing it.




        Note: This endpoint requires `trading` scope in orderly key.
      parameters:
        - $ref: '#/components/parameters/orderly_timestamp'
        - $ref: '#/components/parameters/orderly_account_id'
        - $ref: '#/components/parameters/orderly_key'
        - $ref: '#/components/parameters/orderly_signature'
        - $ref: '#/components/parameters/recv_window_header'
      requestBody:
        description: >-
          `reduce_only` is not supported or applied to batch order items. Use
          `POST /v1/order` with `reduce_only: true` when reduce-only execution
          is required.
        content:
          application/json:
            schema:
              type: object
              properties:
                orders:
                  type: array
                  items:
                    $ref: '#/components/schemas/BatchCreateOrderBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchOrderResponse'
      deprecated: false
components:
  parameters:
    orderly_timestamp:
      name: orderly-timestamp
      in: header
      description: Timestamp of the signed request in milliseconds.
      required: true
      style: simple
      explode: false
      schema:
        type: string
      example: '1649920583000'
    orderly_account_id:
      name: orderly-account-id
      in: header
      description: Account ID of the authenticated account.
      required: true
      style: simple
      explode: false
      schema:
        type: string
      example: 6.858456565150415e+75
    orderly_key:
      name: orderly-key
      in: header
      description: Public orderly key used to sign the request.
      required: true
      style: simple
      explode: false
      schema:
        type: string
      example: ed25519:8tm7dnKYkSc3FzgPuJaw1wztr79eeZpN35nHW5pL5XhX
    orderly_signature:
      name: orderly-signature
      in: header
      description: Signature of the request payload generated with the orderly key.
      required: true
      style: simple
      explode: false
      schema:
        type: string
      example: >-
        dG4bkKiqG0dUYLzViRZkvbI6Sy239JxAdNMIBxFZ4w030Jofr0ORV06GHtvXZkaZaWUXE+XAU3fnzKN/5fDeBQ==
    recv_window_header:
      name: x-recv-window
      in: header
      description: >-
        Use this parameter to control the timeout threshold for placing order,
        unit in miliseconds
      required: false
      schema:
        type: number
      example: 20
  schemas:
    BatchCreateOrderBody:
      description: >-
        Fields for one `POST /v1/batch-order` item. `reduce_only` is not
        supported by this endpoint and is intentionally not included in this
        schema.
      required:
        - order_type
        - side
        - symbol
      type: object
      properties:
        symbol:
          type: string
        client_order_id:
          type: string
        order_type:
          type: string
        order_price:
          type: number
        order_quantity:
          type: number
        order_amount:
          type: number
        visible_quantity:
          type: number
        side:
          type: string
        order_tag:
          type: string
          maxLength: 128
          example: enum:broker_b:GRID_PRO
          description: >
            Optional tag for the order. Supports two formats:

            - Referral code: plain string (e.g., `REFERRAL2026`) - overrides
            referral relationship

            - Custom trading fee: `enum:<owning_broker_id>:<enum_id>` (e.g.,
            `enum:broker_b:GRID_PRO`) - adds the custom fee and preserves the
            existing referral relationship

            New custom-fee-tagged orders must use the current three-segment
            format. Legacy `enum:<enum_id>` tags are supported only on orders
            accepted before cutover.

            Maximum length: 128 characters. Cannot be modified after order
            placement.
        margin_mode:
          type: string
          description: >-
            Margin mode for the order. Default: the symbol's current default
            margin mode.
          enum:
            - CROSS
            - ISOLATED
    BatchOrderResponse:
      allOf:
        - $ref: '#/components/schemas/BasicResponse'
        - type: object
          required:
            - data
          properties:
            data:
              type: object
              required:
                - rows
              properties:
                rows:
                  type: array
                  items:
                    $ref: '#/components/schemas/CreatedOrder'
    BasicResponse:
      required:
        - success
      type: object
      properties:
        success:
          description: Indicates whether the request was successful.
          type: boolean
          example: true
        timestamp:
          description: Server timestamp in milliseconds.
          type: integer
          example: 1702989203989
    CreatedOrder:
      type: object
      properties:
        order_id:
          type: number
          example: 13
        client_order_id:
          type: string
          example: testclientid
        order_type:
          type: string
          example: LIMIT
        order_price:
          type: number
          example: 100.12
        order_quantity:
          type: number
          example: 0.987654
        error_message:
          type: string
          example: none

````