POST /v1/p2p/listings — List Your CS2 Items on the P2P Market
Put one CS2 item, or up to 50, up for sale on the CSBoard P2P market at your own price. Free with any API key; Idempotency-Key required.
{ "items": [...] }. Take operational_asset_id and asset_revision from GET /v1/p2p/inventory and send them unchanged.
Authentication required. Send your key as Authorization: Bearer csb_pub_.... Free — any valid key, no balance requirement and no trading permission.
Seller rules
The same rules as on the website apply:- a verified email or a linked Telegram, so we can tell you when an item sells;
- the CSBoard extension or app able to send the Steam trade, and Steam Mobile Authenticator on the account;
- no P2P cooldown, suspension or shop lock;
- a current read of your inventory (see
inventory_proofinGET /v1/p2p/inventory).
Price floor
The price may not be under half of our market price for the item. On the website a seller can confirm a lower price after a warning. Over an API key there is no such confirmation: a lower price answers422 price_below_market with market_usd and floor_usd, so you can adjust and resend. This refusal does not spend your Idempotency-Key. When we have no market price for an item, no floor applies.
Prices are in USD, from 0.10 to 100000, in whole cents. 12.345 is refused, not rounded.
Idempotency
Idempotency-Key is required (8–128 characters, unique per publish request). If you resend the same request with the same key, every item that was already published comes back as it is instead of being listed twice. A single replayed item answers 200 with the header Idempotent-Replay: true.
- Reusing a key with a different price or revision answers
409 idempotency_key_mismatch. - After
409 idempotency_key_consumed, an earlier attempt failed part-way — retry with a new key.
Responses
- One item:
201with the listing, or200on a replay. - A batch: always
200, with one result per item indata. One item that fails does not stop the others; a failed item carries thestatusandcodeit would have answered on its own.
Example request
Example response
Error codes
Authorizations
Send your key as a Bearer token on every request: Authorization: Bearer csb_pub_.... Generate keys in your CSBoard profile.
Headers
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.
8 - 128Body
- Option 1
- Option 2
The copy to list, from GET /p2p/inventory.
256"5b0c1f7e-3d2a-4c8e-9a61-2f4d8b7e1c30"
From GET /p2p/inventory, unchanged. If the item changed since you read it, the publish answers 409 asset_revision_changed — read the inventory again.
16 - 128"sha256:fd0e6de607b774aaaf4d9cdb7e014c003ba614b03f0460b01e8c94bce034bac5"
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 <= 100000Must be a multiple of 0.01