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

# Get a single order by its exchange order ID or your client order ID



## OpenAPI

````yaml https://vooi-api-app.fly.dev/swagger/json get /exchange/order
openapi: 3.1.0
info:
  title: VOOI API
  description: Unified perps API
  version: '1.0'
  contact: {}
servers:
  - url: https://perps-api.vooi.io
security: []
tags: []
paths:
  /exchange/order:
    get:
      tags:
        - Exchange
      summary: Get a single order by its exchange order ID or your client order ID
      operationId: ExchangeController_getOrder
      parameters:
        - name: asset
          required: false
          in: query
          schema:
            type: string
            minLength: 1
            example: ETH
          description: >-
            Market the order is on — required for Aster, Binance, Bybit, Lighter
            and Robinhood, and for MEXC when looking up by clientOrderId; not
            used otherwise.
        - name: clientOrderId
          required: false
          in: query
          schema:
            type: string
            minLength: 1
          description: >-
            Your custom order identifier, the one you passed when creating the
            order.
        - name: exchange
          required: true
          in: query
          schema:
            type: string
            enum:
              - aster
              - binance
              - bybit
              - extended
              - gate
              - hyperliquid
              - lighter
              - mexc
              - ondo
              - robinhood
          description: Supported perpetual exchange
        - name: orderId
          required: false
          in: query
          schema:
            type: string
            minLength: 1
          description: Order identifier assigned by the exchange.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrderDto'
        '404':
          description: Order not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDTO'
        '503':
          description: ExchangeApiError
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponseDTO'
      security:
        - bearer: []
components:
  schemas:
    OrderDto:
      type: object
      properties:
        baseSymbol:
          type: string
          example: ETH
        clientOrderId:
          description: Order identifier, as returned by the exchange.
          type:
            - string
            - 'null'
        createdAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
        exchange:
          type: string
          enum:
            - aster
            - binance
            - bybit
            - extended
            - gate
            - hyperliquid
            - lighter
            - mexc
            - ondo
            - robinhood
          description: Perpetual exchange
        filledSize:
          description: >-
            Size already executed, in base asset units. Null when the exchange
            does not report it, or for orders placed before the field existed.
          example: '0.0005'
          type:
            - string
            - 'null'
        orderId:
          type: string
        positionSide:
          type: string
          enum:
            - both
            - long
            - short
        price:
          description: Limit price in quote currency, or null for market orders.
          example: '1800.00'
          type:
            - string
            - 'null'
        quoteSymbol:
          type: string
          example: USDC
        reduceOnly:
          description: Whether the order only reduces an existing position
          type:
            - boolean
            - 'null'
        side:
          type: string
          enum:
            - buy
            - sell
        size:
          type: string
          example: '0.001'
        status:
          type: string
          enum:
            - canceled
            - created
            - error
            - executed
            - partiallyFilled
        timeInForce:
          anyOf:
            - type: string
              enum:
                - gtc
                - ioc
                - fok
                - alo
            - type: 'null'
          description: >-
            Time in force policy of the order. gtc — Good-Till-Cancel, ioc —
            Immediate-Or-Cancel, fok — Fill-Or-Kill, alo — Add Liquidity Only.
            Null for market, trigger, or liquidation orders where TIF is not
            applicable.
          example: gtc
        triggerPrice:
          example: '1800.00'
          type:
            - string
            - 'null'
        type:
          type: string
          enum:
            - limit
            - liquidation
            - market
            - other
            - stopLoss
            - stopLossLimit
            - takeProfit
            - takeProfitLimit
        updatedAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
      required:
        - baseSymbol
        - clientOrderId
        - createdAt
        - exchange
        - filledSize
        - orderId
        - positionSide
        - price
        - quoteSymbol
        - reduceOnly
        - side
        - size
        - status
        - timeInForce
        - triggerPrice
        - type
        - updatedAt
      title: Order
    ErrorResponseDTO:
      type: object
      properties:
        message:
          type: string
          example: 'Invalid order id: 123'
        statusCode:
          example: 503
          type: number
      required:
        - message
      title: ErrorResponse
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      type: http

````

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