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

# Get Order Status (Batch)

> Fetches historical order statuses for multiple orders by internal order IDs and/or client-provided order IDs. Returns execution details, settlement status, and maker match data for each order.

<Info>
  Look up orders by either `orderId` (internal) or `clientOrderId` (your identifier). Provide exactly one per item — not both.
</Info>

A taker rejected by self-trade prevention (`cancel_taker` / `cancel_both`) shows `execution.settlementStatus: "CANCELED"` with `execution.reason: "STP_TAKER_REJECTED"`. With `cancel_maker`, the canceled resting order IDs appear in `execution.stpMakerCancels`.


## OpenAPI

````yaml POST /orders/status/batch
openapi: 3.0.0
info:
  title: Limitless Exchange API
  description: >-
    Production-ready REST API for prediction market trading, portfolio
    management, and market data on Limitless Exchange (Base L2).
  version: '1.0'
  contact:
    name: API Support
    url: https://limitless.exchange
    email: help@limitless.network
servers:
  - url: https://api.limitless.exchange
    description: Production API
security: []
tags:
  - name: Authentication
    description: User authentication and session management
  - name: Markets
    description: Browse, search, and analyze prediction markets
  - name: Market Navigation
    description: Navigation tree, market pages, and property filters
  - name: Trading
    description: Create, manage, and cancel orders
  - name: Portfolio
    description: Position tracking, trade history, and performance
  - name: API Tokens
    description: Scoped API token management for partner integrations
  - name: Partner Accounts
    description: Sub-account creation and allowance recovery for partner integrations
  - name: System
    description: Public API state and availability information
paths:
  /orders/status/batch:
    post:
      tags:
        - Trading
      summary: Get order statuses in batch
      description: >-
        Fetches historical order statuses for multiple orders by internal order
        IDs and/or client-provided order IDs. Returns execution details,
        settlement status, and maker match data for each order.
      operationId: OrderController_getOrderStatusBatch
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchOrderStatusRequestDto'
      responses:
        '200':
          description: Batch order statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchOrderStatusResponseDto'
        '400':
          description: Invalid request body
        '401':
          description: User not authenticated
      security:
        - HmacAuth: []
components:
  schemas:
    BatchOrderStatusRequestDto:
      type: object
      properties:
        items:
          type: array
          description: List of status lookup queries (1-50 items)
          minItems: 1
          maxItems: 50
          items:
            $ref: '#/components/schemas/BatchOrderStatusItemDto'
      required:
        - items
    BatchOrderStatusResponseDto:
      type: object
      properties:
        results:
          type: array
          description: Array of status results corresponding to request items
          items:
            $ref: '#/components/schemas/BatchOrderStatusResultDto'
      required:
        - results
    BatchOrderStatusItemDto:
      type: object
      properties:
        orderId:
          type: string
          format: uuid
          description: >-
            Internal order ID. Provide either orderId or clientOrderId, not
            both.
          example: 4aa706dd-6c57-4f3c-945a-99818dfd95f1
        clientOrderId:
          type: string
          maxLength: 128
          description: >-
            Client-provided order ID. Provide either orderId or clientOrderId,
            not both.
          example: client-order-001
    BatchOrderStatusResultDto:
      type: object
      properties:
        index:
          type: number
          description: Index of this item in the request array
          example: 0
        status:
          type: string
          enum:
            - found
            - not_found
            - invalid
          description: Lookup result status
          example: found
        error:
          type: string
          nullable: true
          description: Error message if status is 'invalid'
          example: Exactly one of orderId or clientOrderId is required
        orderId:
          type: string
          nullable: true
          description: Resolved internal order ID
        clientOrderId:
          type: string
          nullable: true
          description: Client-provided order ID
        data:
          type: object
          nullable: true
          description: Order data if found
          properties:
            order:
              $ref: '#/components/schemas/OrderResponseDto'
            makerMatches:
              type: array
              description: Maker orders matched against this order
              items:
                $ref: '#/components/schemas/MakerMatch'
            execution:
              $ref: '#/components/schemas/OrderExecutionSummary'
      required:
        - index
        - status
    OrderResponseDto:
      type: object
      properties:
        order:
          $ref: '#/components/schemas/CreatedOrderDto'
          description: Order details including slim market and owner
        makerMatches:
          description: Maker matches if order was matched immediately
          type: array
          items:
            $ref: '#/components/schemas/MakerMatch'
        execution:
          $ref: '#/components/schemas/OrderExecutionDto'
          description: Execution and settlement summary
      required:
        - order
        - execution
    MakerMatch:
      type: object
      properties: {}
    OrderExecutionSummary:
      type: object
      properties:
        clientOrderId:
          type: string
          nullable: true
          description: Client-provided order ID if one was set
        feeRateBps:
          type: number
          description: Fee rate in basis points
          example: 0
        effectiveFeeBps:
          type: number
          description: Effective fee rate after rebates
          example: 0
        matched:
          type: boolean
          description: Whether the order was matched with a counterparty
        settlementStatus:
          type: string
          description: >-
            On-chain settlement status. DELAYED means the order was accepted but
            is held by a per-market taker delay before being released to the
            matching engine. CANCELED with reason STP_TAKER_REJECTED means
            self-trade prevention rejected the order.
          enum:
            - UNMATCHED
            - PENDING
            - MINED
            - CONFIRMED
            - FAILED
            - DELAYED
            - CANCELED
        eligibleAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            ISO-8601 time a delayed (taker-delay) order is released to the
            matching engine. Present only when settlementStatus is DELAYED.
        tradeEventId:
          type: string
          nullable: true
          description: Trade event ID if matched
        txHash:
          type: string
          nullable: true
          description: Transaction hash on Base L2
        totalsRaw:
          type: object
          description: Raw execution totals as strings (to preserve precision)
          properties:
            contractsGross:
              type: string
            contractsFee:
              type: string
            contractsNet:
              type: string
            usdGross:
              type: string
            usdFee:
              type: string
            usdNet:
              type: string
    CreatedOrderDto:
      type: object
      description: >-
        Created order as returned by the API. Large numeric fields (`salt`,
        `makerAmount`, `takerAmount`, `nonce`, `price`) are serialized as
        decimal strings to preserve precision.
      properties:
        id:
          type: string
          format: uuid
          description: Internal order ID
        salt:
          type: string
          description: Order salt as decimal string
          example: '1778155025318314496'
        maker:
          type: string
          example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
        signer:
          type: string
          example: '0x742d35Cc6634C0532925a3b844Bc454e4438f44e'
        taker:
          type: string
          nullable: true
          example: '0x0000000000000000000000000000000000000000'
        tokenId:
          type: string
          example: >-
            19633204485790857949828516737993423758628930235371629943999544859324645414627
        makerAmount:
          type: string
          description: Maker amount as decimal string (scaled by 1e6)
          example: '5000000'
        takerAmount:
          type: string
          description: Taker amount as decimal string (scaled by 1e6)
          example: '10000000'
        expiration:
          type: string
          nullable: true
          description: Always "0". Non-zero expiration is not currently supported.
          example: '0'
        signatureType:
          type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
          example: 2
        nonce:
          type: string
          nullable: true
          description: Always "0". Non-zero nonce is not currently supported.
          example: '0'
        feeRateBps:
          type: integer
          nullable: true
          example: 0
        signature:
          type: string
          pattern: ^0x([a-fA-F0-9]{2})*$
        orderType:
          type: string
          enum:
            - GTC
            - FAK
            - FOK
          example: GTC
        price:
          type: string
          nullable: true
          description: Order price as decimal string (0.01-0.99)
          example: '0.75'
        side:
          type: integer
          enum:
            - 0
            - 1
          description: 0 = BUY, 1 = SELL
          example: 0
        marketId:
          type: string
          description: Internal market identifier
        ownerId:
          type: integer
          description: Profile ID of the order owner
          example: 12345
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        market:
          type: object
          description: Slim market info
          properties:
            id:
              type: integer
              example: 7348
            slug:
              type: string
              example: btc-up-or-down-1-hour
            title:
              type: string
              example: BTC Up or Down - Hourly
            status:
              type: string
              enum:
                - FUNDED
                - RESOLVED
                - LOCKED
                - DRAFT
                - FUNDED_FLAGGED
            yesPositionId:
              type: string
              nullable: true
            noPositionId:
              type: string
              nullable: true
            group:
              type: object
              nullable: true
              properties:
                id:
                  type: integer
                slug:
                  type: string
                title:
                  type: string
        owner:
          type: object
          nullable: true
          description: Public profile of the order owner
          properties:
            id:
              type: integer
            account:
              type: string
              description: Checksummed wallet address
            displayName:
              type: string
              nullable: true
            username:
              type: string
              nullable: true
            imageURI:
              type: string
              nullable: true
      required:
        - id
        - salt
        - maker
        - signer
        - tokenId
        - makerAmount
        - takerAmount
        - signatureType
        - signature
        - orderType
        - side
        - marketId
        - ownerId
        - createdAt
        - market
    OrderExecutionDto:
      type: object
      description: Execution and settlement summary for a created order
      properties:
        matched:
          type: boolean
          description: Whether the order was matched immediately
          example: true
        settlementStatus:
          type: string
          description: >-
            Current settlement status of the order. DELAYED means the order was
            accepted but is held by a per-market taker delay before being
            released to the matching engine. CANCELED with reason
            STP_TAKER_REJECTED means self-trade prevention (cancel_taker /
            cancel_both) rejected the incoming order.
          enum:
            - UNMATCHED
            - MATCHED
            - MINED
            - CONFIRMED
            - RETRYING
            - FAILED
            - DELAYED
            - CANCELED
          example: MINED
        reason:
          type: string
          nullable: true
          description: >-
            Reason the order was canceled. STP_TAKER_REJECTED when self-trade
            prevention rejected the incoming order. Present only when
            settlementStatus is CANCELED.
          enum:
            - STP_TAKER_REJECTED
          example: STP_TAKER_REJECTED
        eligibleAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            ISO-8601 time a delayed (taker-delay) order is released to the
            matching engine. Present only when settlementStatus is DELAYED.
          example: '2026-06-08T10:15:30.000Z'
        tradeEventId:
          type: string
          description: Trade event ID (present when matched)
          example: 4aa706dd-6c57-4f3c-945a-99818dfd95f1
        txHash:
          type: string
          description: On-chain transaction hash (present when mined)
          example: '0xabc123'
          nullable: true
        clientOrderId:
          type: string
          description: Echo of client-provided idempotency key
          example: client-order-001
        stpMakerCancels:
          type: array
          description: >-
            Resting order IDs canceled by self-trade prevention (cancel_maker /
            cancel_both)
          items:
            type: string
          example:
            - 4aa706dd-6c57-4f3c-945a-99818dfd95f1
        feeRateBps:
          type: number
          description: Fee rate in basis points applied to this order
          example: 25
        effectiveFeeBps:
          type: number
          description: Effective fee rate in basis points after any rebates
          example: 26
        totalsRaw:
          $ref: '#/components/schemas/OrderExecutionTotalsRawDto'
      required:
        - matched
        - settlementStatus
        - feeRateBps
        - effectiveFeeBps
        - totalsRaw
    OrderExecutionTotalsRawDto:
      type: object
      description: Raw execution totals in contract units (strings to preserve precision)
      properties:
        contractsGross:
          type: string
          example: '1000000'
        contractsFee:
          type: string
          example: '1000'
        contractsNet:
          type: string
          example: '999000'
        usdGross:
          type: string
          example: '500000'
        usdFee:
          type: string
          example: '500'
        usdNet:
          type: string
          example: '499500'
      required:
        - contractsGross
        - contractsFee
        - contractsNet
        - usdGross
        - usdFee
        - usdNet
  securitySchemes:
    HmacAuth:
      type: apiKey
      in: header
      name: lmts-api-key
      description: >-
        Scoped API token with HMAC-SHA256 signing. Requires three headers:
        lmts-api-key (token ID), lmts-timestamp (ISO-8601), lmts-signature
        (Base64-encoded HMAC). See Authentication docs for details.

````