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

# Place Spot order (delayed)

> Place a fully funded Spot limit or market order. Use base-denominated size; quoteSize is unsupported. Acknowledgement is not a fill guarantee. Reconcile an uncertain submission by clientOrderId before replacing it. Client IDs are not idempotency keys: accepted-ID reuse fails with clientOrderID_collision. Price protection uses the underlying oracle; see /mark-price-protection. Use this path when the server directs the account to delayed placement. Sign the exact delayed path with a fresh timestamp.

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



## OpenAPI

````yaml /api-reference/rest-spec.json post /v1/spot/orders/delayed
openapi: 3.0.3
info:
  title: Ondo Perps REST API
  version: '1.0'
  description: >-
    REST API for Ondo Perps: account, wallet, deposits/withdrawals, API keys,
    Spot trading, internal transfers, and perpetual futures trading.
servers:
  - url: https://api.ondoperps.xyz
security:
  - BearerAuth: []
paths:
  /v1/spot/orders/delayed:
    post:
      tags:
        - Spot trading
      summary: Place Spot order (delayed)
      description: >-
        Place a fully funded Spot limit or market order. Use base-denominated
        size; quoteSize is unsupported. Acknowledgement is not a fill guarantee.
        Reconcile an uncertain submission by clientOrderId before replacing it.
        Client IDs are not idempotency keys: accepted-ID reuse fails with
        clientOrderID_collision. Price protection uses the underlying oracle;
        see /mark-price-protection. Use this path when the server directs the
        account to delayed placement. Sign the exact delayed path with a fresh
        timestamp.


        See the [Spot API guide](/api-reference/spot-api-guide). Requires
        authentication; API-key scope: `trade`.
      operationId: postSpotOrdersDelayed
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SpotAddOrderReq'
      responses:
        '200':
          description: Success. Inspect item-level outcomes for batch operations.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  result:
                    $ref: '#/components/schemas/SpotOrder'
                required:
                  - success
        '400':
          description: Validation error; inspect error_code and error.
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - BearerAuth: []
        - ApiKeyAuth: []
components:
  schemas:
    SpotAddOrderReq:
      type: object
      required:
        - market
        - side
        - size
      properties:
        side:
          type: string
          description: buy or sell
          enum:
            - buy
            - sell
          example: buy
        price:
          type: string
          description: >-
            Limit price. Must be aligned with quoteIncrement from /v1/markets.
            Omit for market orders.
          example: '1.55'
        size:
          type: string
          description: >
            Order quantity in base currency. Used for both limit and market
            orders. Must be aligned with baseIncrement from /v1/markets.
          example: '20.30'
        market:
          type: string
          description: Trading market pair
          example: SPY-USDC
        clientOrderId:
          type: string
          description: >
            Optional client-provided order ID. Must be alphanumeric including
            underscores and dashes, and at most 64 characters.
          example: order123
          maxLength: 64
          pattern: ^[A-Za-z0-9_-]+$
        type:
          type: string
          description: Order type. Defaults to "limit".
          enum:
            - limit
            - market
          example: limit
        timeInForce:
          type: string
          description: >
            "GTC" (Good until cancelled) or "IOC" (Immediate or cancel). Cannot
            be set for market orders. Defaults to "GTC".
          enum:
            - GTC
            - IOC
          example: GTC
        postOnly:
          type: boolean
          description: >-
            Use only with a GTC limit order. Rejects an order that would
            immediately match; cannot be combined with IOC.
          example: false
      description: >-
        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.
    SpotOrder:
      type: object
      required:
        - orderId
        - side
        - price
        - size
        - market
        - filledSize
        - lastFillSize
        - filledCost
        - fee
        - status
        - createdAt
        - type
      properties:
        orderId:
          type: string
          description: Internal order ID
          example: 70a37d8f972f2494837f9dba8364cbb4
        clientOrderId:
          type: string
          description: Client-provided order ID (if set)
          example: order123
        side:
          type: string
          description: buy or sell
          enum:
            - buy
            - sell
          example: buy
        price:
          type: string
          description: Limit price
          example: '1.55'
        size:
          type: string
          description: Order quantity in base currency
          example: '20.30'
        market:
          type: string
          description: Trading market
          example: SPY-USDC
        filledSize:
          type: string
          description: Quantity of the order that has been filled
          example: '5.403'
        lastFillSize:
          type: string
          description: Quantity filled in the most recent trade
          example: '5.403'
        filledCost:
          type: string
          description: Cost of the filled portion of the order (filledSize × fill price)
          example: '8.37465'
        fee:
          type: string
          description: >-
            Fee in the asset received: base equivalent quantity for buys, USDC
            for sells. Zero during the launch promotion.
          example: '0.0837'
        status:
          type: string
          description: Order status
          enum:
            - open
            - fullyfilled
            - canceled
          example: open
        createdAt:
          type: string
          format: date-time
          description: Order creation time
          example: '2022-06-16T12:35:11.123456Z'
        filledAt:
          type: string
          format: date-time
          description: Time when the order was fully filled (if applicable)
          example: '2022-06-16T12:35:11.123456Z'
        canceledAt:
          type: string
          format: date-time
          description: Order cancellation time (if cancelled)
          example: '2022-06-16T12:35:11.123456Z'
        cancelReason:
          type: string
          description: >-
            Cancellation reason when provided. Treat this as an extensible
            string.
          example: liquidation
        type:
          type: string
          description: Order type
          enum:
            - limit
            - market
          example: limit
        timeInForce:
          type: string
          description: Time in force (GTC or IOC). Not returned for market orders.
          enum:
            - GTC
            - IOC
          example: GTC
  responses:
    TooManyRequests:
      description: Rate limit exceeded. Slow down request frequency.
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                example: false
              error:
                type: string
                description: Human-readable error message
              error_code:
                type: string
                enum:
                  - too_many_requests
          example:
            success: false
            error: Description of the error
            error_code: too_many_requests
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    ApiKeyAuth:
      type: apiKey
      in: header
      name: ONDO-KEY-ID
      description: >-
        Also send ONDO-TIMESTAMP and ONDO-SIGN. See
        /api-reference/api_key_authentication for exact HMAC signing; the key ID
        alone is insufficient.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.