Доступ по запросу. Instant Sell включается на уровне аккаунта. Ваш API-ключ может обращаться к
GET /v1/sell/status из коробки, но котировки и продажа возвращают selling_not_enabled, пока доступ не выдан. Напишите в поддержку, чтобы запросить доступ.Как это работает
- Котировка —
POST /v1/sell/quotesс трейд-ссылкой Steam возвращает все предметы этого инвентаря, которые мы готовы купить, с точной суммой в USD, которая будет вам зачислена за каждый предмет. - Создание ордера —
POST /v1/sell/ordersс выбраннымиasset_ids. Бот из сети CSBoard отправляет трейд-оффер Steam на трейд-ссылку продавца. Большие корзины могут разбиваться на до 3 офферов от разных ботов — массивoffers[]ордера отражает каждый из них. - Продавец принимает — ордер переходит в статус
received. Начинается трейд-защита Steam (около 8 дней). Ожидаемая сумма видна вGET /v1/balanceв полеincoming_hold. - Расчёт — когда холд заканчивается, ордер завершается, и вся сумма зачисляется на ваш баланс CSBoard. Других направлений выплаты нет: деньги всегда приходят на баланс того API-ключа, который создал ордер.
Верификация офферов для ваших пользователей
Каждый оффер содержит профиль отправляющего бота и id трейд-оффера Steam:trade_offer_id и steam_id бота перед принятием — эта проверка закрывает скам с подменой отправителя независимо от того, какой бот отправляет оффер.
Эндпоинты
Все эндпоинты живут под/v1/sell и используют тот же Bearer-ключ csb_pub_, что и остальной API.
GET /v1/sell/status
Обнаружение возможностей. Работает для любого ключа.POST /v1/sell/quotes
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 по умолчанию. Лимиты поднимаются индивидуально — напишите в поддержку.