跳转到主要内容
GET
Get a single order
通过 CSBoard 订单 id 获取单个订单。响应包含完整的逐件商品明细,包括交付状态、退货原因以及 Steam 报价详情。 需要身份验证。 请将密钥作为 Authorization: Bearer csb_pub_... 发送。

路径参数

string
必填
CSBoard 订单 id,例如 ord_01J9Z3K8Q2。

响应字段

响应是一个 Order 对象,其结构与 GET /v1/orders 中的条目相同:
string
必填
string | null
string
必填
可选值:completed、hold、delivering、pending、cancelled、failed 之一。
string | null
string
必填
始终为 "USD"。
number
必填
integer
必填
datetime | null
string
instant 或 manual。manual 表示由真人发送交易,最长 12 小时,在此期间订单可能一直处于 delivering 且没有交易报价。P2P 挂单始终为 manual。
datetime | null
交付截止时间,仅在 status 为 pending 或 delivering 时有值(持有中的订单为 null)。如果卖家未能按时交付,订单会被自动取消并退款。参见 POST /v1/orders/{id}/cancel。
string | null
订单失败的原因,是用于程序分支判断的代码,例如 recipient_inventory_private 或 listing_gone。仅在 status 为 failed 或 cancelled 时有值。代码列表 可能会扩充——遇到不认识的值时请按 unavailable 处理。
string | null
需要采取行动的一方:recipient、seller、buyer 或 market。仅在 status 为 failed 或 cancelled 时有值。
string | null
一句英文说明:发生了什么、该怎么做。可原样展示;程序逻辑请依据 fail_reason,因为措辞可能会变。
datetime
必填
datetime | null
OrderItem[]
必填
逐件商品明细。每件商品包含 market_hash_name、price_usd、status(hold | delivering | delivered | returned)、tradable_at、return_reason、steam_trade_offer_id 以及 steam_trade_offer_finished_at。

示例请求

示例响应

错误代码

授权

Authorization
string
header
必填

Send your key as a Bearer token on every request: Authorization: Bearer csb_pub_.... Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and X-RateLimit-Bucket for the bucket the call spent. See Rate limits.

路径参数

id
string
必填

CSBoard order id.

响应

The order.

order_id
string
必填
status
enum<string>
必填
可用选项:
completed,
hold,
delivering,
pending,
cancelled,
failed
currency
string
必填
示例:

"USD"

charged_total_usd
number
必填
item_count
integer
必填
created_at
string<date-time>
必填
items
object[]
必填
steam_id
string | null
custom_id
string | null

Your own id, if you set one at purchase time.

hold_until
string<date-time> | null
delivery_type
enum<string>

How the order ships. instant: a bot sends the Steam trade within minutes. manual: a person (or a slow desk) sends it, which can take up to 12 hours, so the order may stay delivering that long with no trade offer yet. A player's (P2P) lot is always manual.

可用选项:
instant,
manual
delivery_deadline_at
string<date-time> | null

The delivery deadline: 12 hours after purchase for manual delivery, the vendor's accept window otherwise. Set only while status is pending or delivering; null once the order is completed, cancelled or failed, and on a held order (it waits on hold_until). If the seller misses it, the order is cancelled and refunded automatically.

fail_reason
string | null

Why the order failed. Set when status is failed or cancelled, null otherwise. The recipient has to act on recipient_inventory_private, recipient_inventory_full, invalid_trade_url, recipient_cannot_trade, recipient_too_many_offers, offer_declined and offer_expired; the seller on seller_did_not_deliver, seller_cancelled and rolled_back; you on cancelled_by_buyer; the market on listing_gone, market_unavailable and unavailable. The list may grow: treat a value you do not know as unavailable.

示例:

"recipient_inventory_private"

fail_side
enum<string> | null

Who has to act on the failure: recipient (the account the skins go to — fix it and buy again), seller or market (buy another listing), buyer (you cancelled). null unless status is failed or cancelled.

可用选项:
recipient,
seller,
buyer,
market,
null
fail_message
string | null

One English sentence: what happened and what to do. Safe to show to a person; branch on fail_reason, since the wording can change. null unless status is failed or cancelled.

示例:

"The recipient's Steam inventory is private, so the trade could not be sent. Set Inventory to Public in the recipient's Steam privacy settings and buy again."

refund
object | null

Refund credited for this order, or null if none. A cancelled or failed order is ALWAYS refunded — this field is the receipt, so you never have to infer it from the status or reconcile against your balance.

updated_at
string<date-time> | null