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

# GET /v1/orders/info — 批量订单查询

> 通过 custom_ids 和/或 order_ids 在一次请求中查询多个 CSBoard 订单的状态，每次最多 200 个 id。

使用此端点可在一次调用中轮询多个订单的状态。以逗号分隔的列表形式提供 `custom_ids`（您在下单时分配的 id）和/或 `order_ids`（CSBoard 订单 id）。两者至少需提供一个，且两者总和不得超过 200 个 id。

**需要身份验证。** 请将密钥作为 `Authorization: Bearer csb_pub_...` 发送。

## 查询参数

<ParamField query="custom_ids" type="string">
  以逗号分隔的、您在下单时分配的自定义 id。
</ParamField>

<ParamField query="order_ids" type="string">
  以逗号分隔的 CSBoard 订单 id。
</ParamField>

<Note>
  `custom_ids` 和 `order_ids` 至少需提供一个。两个参数中 id 的总数不得超过 200。
</Note>

## 响应字段

<ResponseField name="data" type="Order[]" required>
  匹配的订单数组。每个 `Order` 的结构与 [`GET /v1/orders`](/api-reference/get-orders) 中相同——包括 `order_id`、`status`、`charged_total_usd` 以及逐件 `items` 明细。
</ResponseField>

## 示例请求

```bash theme={null}
curl "https://csboard.com/v1/orders/info?custom_ids=batch-2026-06-29-01,batch-2026-06-29-02" \
  -H "Authorization: Bearer csb_pub_..."
```

## 示例响应

```json theme={null}
{
  "data": [
    {
      "order_id": "ord_01J9Z3K8Q2",
      "steam_id": "76561198000000000",
      "status": "completed",
      "custom_id": "batch-2026-06-29-01",
      "currency": "USD",
      "charged_total_usd": 26.47,
      "item_count": 2,
      "hold_until": null,
      "created_at": "2026-06-29T17:12:04Z",
      "updated_at": "2026-06-29T17:15:40Z",
      "items": []
    }
  ]
}
```

## 错误代码

| HTTP 状态码 | 代码                                    | 含义                                |
| -------- | ------------------------------------- | --------------------------------- |
| 401      | `missing_api_key` / `invalid_api_key` | API 密钥缺失或无效。                      |
| 422      | `invalid_request`                     | 未提供任何 id，或 id 总数超过 200。           |
| 429      | `rate_limit_exceeded`                 | 请求过多。请按照 `Retry-After` 响应头中的秒数退避。 |


## OpenAPI

````yaml GET /orders/info
openapi: 3.1.0
info:
  title: CSBoard API
  version: 1.0.0
  description: >-
    Market data over the CSBoard marketplace — live listings, floats, stickers,
    minAsk prices, FX rates — plus opt-in buying straight from your balance.
    Free to read, key-gated, built for automation.
  contact:
    name: CSBoard
    url: https://csboard.com/docs
servers:
  - url: https://csboard.com/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Status
    description: Liveness and freshness probes.
  - name: Market data
    description: Read the live catalog, prices, and FX rates.
  - name: Trading
    description: Buy listings from your CSBoard balance. Opt-in, key-gated.
  - name: Account
    description: Your balance, settled funds, and trading status.
paths:
  /orders/info:
    get:
      tags:
        - Trading
      summary: Batch order lookup
      description: >-
        Look up the status of many orders at once by `custom_ids` and/or
        `order_ids` (comma-separated). Supply at least one of the two; up to 200
        ids in total across both parameters.
      operationId: getOrdersInfo
      parameters:
        - name: custom_ids
          in: query
          description: Comma-separated custom ids you assigned at purchase time.
          schema:
            type: string
        - name: order_ids
          in: query
          description: Comma-separated CSBoard order ids.
          schema:
            type: string
      responses:
        '200':
          description: Matching orders.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Order'
                required:
                  - data
              example:
                data:
                  - order_id: ord_01J9Z3K8Q2
                    steam_id: '76561198000000000'
                    status: completed
                    custom_id: batch-2026-06-29-01
                    currency: USD
                    charged_total_usd: 26.47
                    item_count: 2
                    hold_until: null
                    created_at: '2026-06-29T17:12:04Z'
                    updated_at: '2026-06-29T17:15:40Z'
                    items: []
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          description: Invalid request — no ids supplied, or more than 200 ids in total.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                code: invalid_request
                detail: Provide custom_ids and/or order_ids, up to 200 ids total.
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  schemas:
    Order:
      type: object
      properties:
        order_id:
          type: string
        steam_id:
          type:
            - string
            - 'null'
        status:
          type: string
          enum:
            - completed
            - hold
            - delivering
            - pending
            - cancelled
            - failed
        custom_id:
          type:
            - string
            - 'null'
          description: Your own id, if you set one at purchase time.
        currency:
          type: string
          example: USD
        charged_total_usd:
          type: number
        item_count:
          type: integer
        hold_until:
          type:
            - string
            - 'null'
          format: date-time
        created_at:
          type: string
          format: date-time
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
        items:
          type: array
          items:
            $ref: '#/components/schemas/OrderItem'
      required:
        - order_id
        - status
        - currency
        - charged_total_usd
        - item_count
        - created_at
        - items
    Error:
      type: object
      description: >-
        All errors return { code, detail }. Some carry extra fields (e.g.
        price_moved adds current_total_usd, insufficient_balance adds
        required_usd/current_usd).
      properties:
        code:
          type: string
          description: >-
            Machine-readable error code, e.g. rate_limit_exceeded,
            trading_not_enabled, price_moved.
        detail:
          type: string
          description: Human-readable explanation.
      required:
        - code
    OrderItem:
      type: object
      properties:
        market_hash_name:
          type:
            - string
            - 'null'
        price_usd:
          type:
            - number
            - 'null'
        status:
          type: string
          enum:
            - hold
            - delivering
            - delivered
            - returned
        tradable_at:
          type:
            - string
            - 'null'
          format: date-time
          description: When the item leaves Steam trade hold, or null.
        return_reason:
          type:
            - string
            - 'null'
          enum:
            - trade_timeout
            - declined
            - expired
            - rolled_back
            - unavailable
            - null
          description: Why the item was returned, if its status is `returned`.
        steam_trade_offer_id:
          type:
            - string
            - 'null'
        steam_trade_offer_finished_at:
          type:
            - string
            - 'null'
          format: date-time
      required:
        - status
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: unauthorized
            message: Missing or invalid API key.
    RateLimited:
      description: Rate limit exceeded. Includes a Retry-After header.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: rate_limit_exceeded
            message: Too many requests.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Send your key as a Bearer token on every request: `Authorization: Bearer
        csb_pub_...`. Generate keys in your CSBoard profile.

````