Skip to main content
POST
Публикует ваши собственные предметы CS2 на P2P-маркете CSBoard по вашей цене. Отправьте один предмет или пакет до 50 штук в виде { "items": [...] }. Берите operational_asset_id и asset_revision из GET /v1/p2p/inventory и передавайте их без изменений. Требуется аутентификация. Отправьте ключ как Authorization: Bearer csb_pub_.... Бесплатно — подойдёт любой действующий ключ, без требований к балансу и без торгового доступа.

Правила для продавца

Действуют те же правила, что и на сайте:
  • подтверждённый email или привязанный Telegram, чтобы мы могли сообщить вам о продаже;
  • расширение или приложение CSBoard, способное отправить трейд в Steam, и Steam Mobile Authenticator на аккаунте;
  • отсутствие P2P-cooldown, приостановки или блокировки магазина;
  • актуальный снимок вашего инвентаря (см. inventory_proof в GET /v1/p2p/inventory).

Нижняя граница цены

Цена не может быть ниже половины нашей рыночной цены на предмет. На сайте продавец может подтвердить более низкую цену после предупреждения. Через API-ключ такого подтверждения нет: более низкая цена получает 422 price_below_market с market_usd и floor_usd, чтобы вы могли поправить цену и отправить запрос снова. Такой отказ не расходует ваш Idempotency-Key. Если рыночной цены на предмет у нас нет, нижняя граница не применяется. Цены указываются в USD, от 0.10 до 100000, в целых центах. 12.345 отклоняется, а не округляется.

Идемпотентность

Idempotency-Key обязателен (8–128 символов, уникальный для каждого запроса на публикацию). Если вы повторите тот же запрос с тем же ключом, каждый уже опубликованный предмет вернётся как есть, а не будет выставлен второй раз. Повтор для одного предмета отвечает 200 с заголовком Idempotent-Replay: true.
  • Повторное использование ключа с другой ценой или ревизией даёт 409 idempotency_key_mismatch.
  • После 409 idempotency_key_consumed предыдущая попытка оборвалась на полпути — повторите запрос с новым ключом.

Ответы

  • Один предмет: 201 с листингом или 200 при повторе.
  • Пакет: всегда 200 с результатом по каждому предмету в data. Ошибка одного предмета не останавливает остальные; у неудачного предмета есть status и code, которые он получил бы, если бы отправлялся отдельно.
Запись ограничена 30 запросами в минуту на ключ — этот лимит общий с изменением цены и снятием с продажи.

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

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

Коды ошибок

Что происходит после продажи, описано в руководстве по P2P-листингу.

Авторизации

Authorization
string
header
обязательно

Send your key as a Bearer token on every request: Authorization: Bearer csb_pub_.... Generate keys in your CSBoard profile.

Заголовки

Idempotency-Key
string
обязательно

Required, 8–128 characters, unique per publish request. Resending the same request with the same key returns each item that was already published instead of listing it twice. A key reused with a different price or revision answers 409 idempotency_key_mismatch; after 409 idempotency_key_consumed, use a new key. A 422 price_below_market refusal does not spend the key.

Required string length: 8 - 128

Тело

application/json
operational_asset_id
string
обязательно

The copy to list, from GET /p2p/inventory.

Maximum string length: 256
Пример:

"5b0c1f7e-3d2a-4c8e-9a61-2f4d8b7e1c30"

asset_revision
string
обязательно

From GET /p2p/inventory, unchanged. If the item changed since you read it, the publish answers 409 asset_revision_changed — read the inventory again.

Required string length: 16 - 128
Пример:

"sha256:fd0e6de607b774aaaf4d9cdb7e014c003ba614b03f0460b01e8c94bce034bac5"

price_usd
number
обязательно

Asking price in USD, whole cents (12.34; 12.345 is refused, not rounded). It may not be under half of our market price for the item — see price_below_market.

Требуемый диапазон: 0.1 <= x <= 100000Должно быть кратно 0.01

Ответ

A batch result, or a single item that was already published under this Idempotency-Key (header Idempotent-Replay: true).

data
object[]
success_count
integer
total_requested
integer