---
title: "Place Spot batch (delayed)"
method: POST
path: "/v1/spot/orders/batch/delayed"
tags: ["Spot trading"]
---

# Place Spot batch (delayed)

`POST /v1/spot/orders/batch/delayed`

## Request

- Base URL: `https://api.ondoperps.xyz`
- URL: `https://api.ondoperps.xyz/v1/spot/orders/batch/delayed`
- Auth: one of:
  - HTTP bearer
  - API key in header `ONDO-KEY-ID`

Submit 1–20 orders. Not all-or-nothing: inspect addedOrders and failedOrders even on HTTP success. Item failures use errorCode. Re-sign this delayed path when instructed by the server.

See the [Spot API guide](/api-reference/spot-api-guide). Requires authentication; API-key scope: `trade`.

## Request body

- SpotBatchAddOrderReq
  - `orders` SpotAddOrderReq[], required
    - `side` 'buy' | 'sell', required: buy or sell
    - `price` string: Limit price. Must be aligned with quoteIncrement from /v1/markets. Omit for market orders.
    - `size` string, required: Order quantity in base currency. Used for both limit and market orders. Must be aligned with baseIncrement from /v1/markets.
    - `market` string, required: Trading market pair
    - `clientOrderId` string: Optional client-provided order ID. Must be alphanumeric including underscores and dashes, and at most 64 characters.
    - `type` 'limit' | 'market': Order type. Defaults to "limit".
    - `timeInForce` 'GTC' | 'IOC': "GTC" (Good until cancelled) or "IOC" (Immediate or cancel). Cannot be set for market orders. Defaults to "GTC".
    - `postOnly` boolean: Use only with a GTC limit order. Rejects an order that would immediately match; cannot be combined with IOC.

## Response `200`

Success. Inspect item-level outcomes for batch operations.

- object
  - `success` boolean, required
  - `result` SpotBatchAddOrderRes
    - `addedOrders` SpotOrder[], nullable
      - `orderId` string, required: Internal order ID
      - `clientOrderId` string: Client-provided order ID (if set)
      - `side` 'buy' | 'sell', required: buy or sell
      - `price` string, required: Limit price
      - `size` string, required: Order quantity in base currency
      - `market` string, required: Trading market
      - `filledSize` string, required: Quantity of the order that has been filled
      - `lastFillSize` string, required: Quantity filled in the most recent trade
      - `filledCost` string, required: Cost of the filled portion of the order (filledSize × fill price)
      - `fee` string, required: Fee in the asset received: base equivalent quantity for buys, USDC for sells. Zero during the launch promotion.
      - `status` 'open' | 'fullyfilled' | 'canceled', required: Order status
      - `createdAt` string, date-time, required: Order creation time
      - `filledAt` string, date-time: Time when the order was fully filled (if applicable)
      - `canceledAt` string, date-time: Order cancellation time (if cancelled)
      - `cancelReason` string: Cancellation reason when provided. Treat this as an extensible string.
      - `type` 'limit' | 'market', required: Order type
      - `timeInForce` 'GTC' | 'IOC': Time in force (GTC or IOC). Not returned for market orders.
    - `failedOrders` object[], nullable
      - `order` SpotAddOrderReq: Spot limit or market order. Size is a positive multiple of baseIncrement; the minimum quantity is one increment. There is no separate minimum notional. Limit orders require price, a positive multiple of quoteIncrement below 10000000. Omit price and timeInForce for market orders. quoteSize, reduceOnly, TP/SL, builderCode, and rpi are not supported. See the Spot API guide for price protection and reconciliation.
        - `side` 'buy' | 'sell', required: buy or sell
        - `price` string: Limit price. Must be aligned with quoteIncrement from /v1/markets. Omit for market orders.
        - `size` string, required: Order quantity in base currency. Used for both limit and market orders. Must be aligned with baseIncrement from /v1/markets.
        - `market` string, required: Trading market pair
        - `clientOrderId` string: Optional client-provided order ID. Must be alphanumeric including underscores and dashes, and at most 64 characters.
        - `type` 'limit' | 'market': Order type. Defaults to "limit".
        - `timeInForce` 'GTC' | 'IOC': "GTC" (Good until cancelled) or "IOC" (Immediate or cancel). Cannot be set for market orders. Defaults to "GTC".
        - `postOnly` boolean: Use only with a GTC limit order. Rejects an order that would immediately match; cannot be combined with IOC.
      - `error` string
      - `errorCode` string

## Other responses

- `400`: Validation error; inspect error_code and error.
- `429`: Rate limit exceeded. Slow down request frequency.

## Changes

- **2026-11-03** `1601c3adedda`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ondoperps/apis/ondo-perps-rest-api/changes/v1/spot/orders/batch/delayed/post.md)

---

[API](https://skmtc.dev/ondoperps/apis/ondo-perps-rest-api.md) - [All operations](https://skmtc.dev/ondoperps/apis/ondo-perps-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/ondoperps/apis/ondo-perps-rest-api/revisions/1601c3adedda?raw)
