跳转到主要内容
POST
Buy and deliver to a Steam trade URL
此端点允许您将商品购买并直接交付到您提供的任意 Steam 交易链接——而不仅限于绑定到您账户的交易链接。交易链接由 partner 和 token 字段组成。购买只能使用您的已结算(不可撤销)余额,因此适用于批发量与自动化交付工作流。 为每笔提取保存一个 custom_id。成功响应最多缓存 24 小时,重放时会返回 Idempotent-Replayed: true 响应头。如果响应丢失,请用已保存的标识符查询订单。订单创建前,查询可能返回空结果。请保持待处理状态,直到核实原订单。
此端点处于熔断开关保护之下,要求账户启用了交易且不可撤销状态干净。熔断开关关闭时,将返回 403 external_buy_disabled。
需要身份验证。 请将密钥作为 Authorization: Bearer csb_pub_... 发送。 需要交易能力。 该密钥必须启用购买功能,且账户必须处于不可撤销状态干净。

请求体

string[]
必填
1–100 个唯一的挂单 id。
string
必填
Steam 交易链接中的 partner 值(1–32 个字符)。与 token 一起构成商品交付的目标交易链接。
string
必填
Steam 交易链接中的 token 值(1–32 个字符)。与 partner 一起构成目标交易链接。
number
美元价格上限。如果实时总价超过该值,订单将以 price_moved 被拒绝且不扣款。强烈建议使用。
string
提取标识符(1–128 个字符)。缓存过期后,使用相同标识符可能会发起新的购买。
boolean
默认值:"false"
如果为 true,跳过已不再可用的商品而不会让整个请求失败。
integer
默认值:"730"
item_ids 所属的游戏:730 CS2(默认)、570 Dota 2、252490 Rust。请使用读取这些 id 时(GET /v1/listings)所用的同一个 appId。Dota 2 和 Rust 每个订单最多 10 个 id,并进入队列,因此每个皮肤最初返回 pending。

响应字段

object
必填

示例请求

示例响应

错误代码

资金完全来自您的已结算余额。在大批量下单前,请检查 GET /v1/balance 上的 settled_balance_usd,并始终发送 max_price_usd 作为超额扣款保护。

不可用的商品

挂单可能在您读取之后、购买之前离开目录。409 item_unavailable 的响应体会在 unavailable_ids 中列出所有缺失的 id。购买 CS2(不传 appId 或传 730)时,它还可能带有 unknown_ids:缺失的 id 中我们完全没有记录的那些。要么它不是 CSBoard 的挂单 id,要么该挂单离开目录已超过一小时。最常见的混淆是把 Steam 资产 id(asset id)当成挂单 id——CSBoard 的挂单 id 从不全由数字组成,请发送 /v1/listings 或流中某一行的 id。
如需在尝试购买前剔除已售出的挂单,请订阅 GET /v1/listings/stream 的 gone 事件。

授权

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.

请求体

application/json
item_ids
string[]
必填

1–100 unique listing ids to buy.

Required array length: 1 - 100 elements
partner
string
必填

Steam trade URL partner value. With token, forms the destination trade URL.

Required string length: 1 - 32
token
string
必填

Steam trade URL token value. With partner, forms the destination trade URL.

Required string length: 1 - 32
max_price_usd
number

Total ceiling in USD. Order is rejected with price_moved if the live total exceeds it.

custom_id
string

Save one key per withdrawal. A cached success can be replayed for up to 24 hours. After expiry the same value may start a new purchase.

Required string length: 1 - 128
skip_unavailable
boolean
默认值:false

If true, skip items that are no longer available instead of failing the whole request.

autoclaim
boolean

Sticky per-account setting (not per-order). Send true once to switch your key into auto-claim mode: every held order is then auto-released the moment its hold clears (your bot must auto-accept the Steam trade offer within ~15 minutes). Send false to switch back to manual claiming via POST /orders/{id}/claim. Omit to leave the setting unchanged.

appId
enum<integer>
默认值:730

Game the item_ids belong to: 730 = CS2 (the default), 570 = Dota 2, 252490 = Rust. Send the same appId you read the ids with from GET /listings. Dota 2 and Rust take up to 10 ids per order. A game this key may not buy in answers 400 unsupported_game — tradable in GET /games tells you in advance.

可用选项:
730,
570,
252490

响应

Purchase accepted and debited from settled balance.

data
object
必填