Skip to main content
Доступ по запросу. Instant Sell включается на уровне аккаунта. Ваш API-ключ может обращаться к GET /v1/sell/status из коробки, но котировки и продажа возвращают selling_not_enabled, пока доступ не выдан. Напишите в поддержку, чтобы запросить доступ.

Как это работает

  1. КотировкаPOST /v1/sell/quotes с трейд-ссылкой Steam возвращает все предметы этого инвентаря, которые мы готовы купить, с точной суммой в USD, которая будет вам зачислена за каждый предмет.
  2. Создание ордераPOST /v1/sell/orders с выбранными asset_ids. Бот из сети CSBoard отправляет трейд-оффер Steam на трейд-ссылку продавца. Большие корзины могут разбиваться на до 3 офферов от разных ботов — массив offers[] ордера отражает каждый из них.
  3. Продавец принимает — ордер переходит в статус received. Начинается трейд-защита Steam (около 8 дней). Ожидаемая сумма видна в GET /v1/balance в поле incoming_hold.
  4. Расчёт — когда холд заканчивается, ордер завершается, и вся сумма зачисляется на ваш баланс CSBoard. Других направлений выплаты нет: деньги всегда приходят на баланс того API-ключа, который создал ордер.
Деньги зачисляются только после расчёта, никогда в момент принятия оффера. Ордер в статусе received — это деньги в пути, а не деньги на балансе. Планируйте кеш-флоу с учётом холда ~8 дней.

Верификация офферов для ваших пользователей

Каждый оффер содержит профиль отправляющего бота и id трейд-оффера Steam:
Отображайте эти данные рядом с собственным UI, чтобы продавец мог сверить входящий оффер Steam с ожидаемыми trade_offer_id и steam_id бота перед принятием — эта проверка закрывает скам с подменой отправителя независимо от того, какой бот отправляет оффер.

Эндпоинты

Все эндпоинты живут под /v1/sell и используют тот же Bearer-ключ csb_pub_, что и остальной API.

GET /v1/sell/status

Обнаружение возможностей. Работает для любого ключа.

POST /v1/sell/quotes

Возвращает предметы, которые можно продать, с точной суммой в USD за каждый:
Котировки действительны около двух минут. Если срок истёк, запросите котировку заново перед созданием ордера.

POST /v1/sell/orders

  • min_total_usd — необязательный порог против дрифта цены. Если реальная сумма опустится ниже этого значения между котировкой и исполнением, ордер будет отклонён с кодом price_drift без побочных эффектов.
  • external_id — ваш идемпотентный id, уникальный в рамках ключа. Повтор запроса с тем же external_id вернёт исходный ордер, а не создаст дубликат.
  • Заголовок Idempotency-Key — защита от повторов на уровне запроса, семантика та же, что у POST /v1/orders.

GET /v1/sell/orders/:id

Также доступен как GET /v1/sell/orders?external_id=….
credited_usd растёт по мере расчёта офферов — разбитый ордер может частично рассчитаться, пока остальные офферы всё ещё в холде.

POST /v1/sell/orders/:id/cancel

Разрешено, пока ордер в статусе pending или offer_sent (до принятия продавцом). На более поздних стадиях возвращается 409 not_cancellable.

Жизненный цикл ордера

Ошибки

Ошибки следуют стандартному конверту { "code", "detail" }. Коды, специфичные для продажи: invalid_trade_url, private_inventory, inventory_unavailable, item_not_in_inventory, item_not_tradable, no_eligible_items, price_drift, too_many_items, active_order_exists, too_many_active_orders, daily_cap_exceeded, offer_declined, offer_expired, sell_disabled, selling_not_enabled, rate_limited.

Лимиты

  • Котировки: 10 запросов/мин на ключ (сканирование инвентаря — дорогая операция).
  • Ордера: 5 созданий/мин на ключ, 10 активных ордеров, дневной кап объёма $2 000 по умолчанию. Лимиты поднимаются индивидуально — напишите в поддержку.