Перейти к основному содержанию
POST
Buy and deliver to a Steam trade URL
Этот эндпоинт позволяет покупать и доставлять предметы напрямую на любой указанный вами Steam trade URL — не только на trade URL, привязанный к вашему аккаунту. Trade URL формируется из полей partner и token. Покупки финансируются только из вашего подтверждённого (защищённого от реверса) баланса, что делает эндпоинт пригодным для оптовых объёмов и потоков автоматической доставки. Сохраните один custom_id для каждой выдачи. Успешный ответ хранится в кэше до 24 часов и при повторе содержит заголовок Idempotent-Replayed: true. Если ответ потерян, проверьте заказ по сохранённому идентификатору. Пустой результат возможен до появления заказа. Оставьте выдачу в ожидании до сверки.
Этот эндпоинт работает за kill-switch и требует аккаунта, для которого включена торговля и нет истории реверсов. Когда kill-switch выключен, возвращается 403 external_buy_disabled.
Требуется аутентификация. Отправьте ключ как Authorization: Bearer csb_pub_.... Требуется возможность торговли. Для ключа должны быть включены покупки, а аккаунт должен быть чистым от реверсов.

Тело запроса

string[]
обязательно
От 1 до 100 уникальных id листингов для покупки.
string
обязательно
Значение partner из Steam trade URL (1–32 символа). Вместе с token образует конечный trade URL, на который доставляются предметы.
string
обязательно
Значение token из Steam trade URL (1–32 символа). Вместе с partner образует конечный trade URL.
number
Верхняя граница итоговой цены в USD. Если живой итог превышает её, заказ отклоняется с ошибкой price_moved и ничего не списывается. Настоятельно рекомендуется.
string
Идентификатор выдачи (1–128 символов). После истечения срока кэша запрос с тем же идентификатором может запустить новую покупку.
boolean
по умолчанию:"false"
Если true, пропускать предметы, которые больше недоступны, вместо того чтобы отклонить весь запрос.
integer
по умолчанию:"730"
Игра, к которой относятся item_ids: 730 CS2 (по умолчанию), 570 Dota 2, 252490 Rust. Передавайте тот же appId, с которым читали id из GET /v1/listings. В заказе Dota 2 и Rust до 10 id; такие заказы ставятся в очередь, поэтому каждый скин сначала отвечает pending.

Поля ответа

object
обязательно

Пример запроса

Пример ответа

Коды ошибок

Средства берутся исключительно из вашего подтверждённого баланса. Перед большой партией проверяйте settled_balance_usd через GET /v1/balance и всегда передавайте max_price_usd в качестве защиты от переплаты.

Недоступные предметы

Листинг может уйти из каталога между вашим чтением и покупкой. В теле 409 item_unavailable все пропавшие id перечислены в unavailable_ids. При покупке CS2 (без appId или с 730) там может быть и unknown_ids — те из пропавших id, о которых у нас нет никакой записи. Либо это не id листинга CSBoard, либо листинг ушёл из каталога больше часа назад. Чаще всего вместо id листинга присылают asset id из Steam. У листингов CSBoard id никогда не состоит из одних цифр, поэтому отправляйте id строки из /v1/listings или стрима.
Чтобы убирать проданные листинги до попытки покупки, подпишитесь на события gone в GET /v1/listings/stream.

Авторизации

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
обязательно