POST /v1/orders — Buy CS2 Listings from Your Balance
Buy 1–10 CS2 listings by ID in a single atomic request, debited from your CSBoard balance. Requires a trading-enabled API key and linked Steam account.
/v1/listings. To protect yourself from price movements between lookup and purchase, always include max_price_usd as a total ceiling. The endpoint is idempotent: retrying with the same Idempotency-Key replays the original order rather than creating a duplicate charge.
Authentication required. Send your key as Authorization: Bearer csb_pub_....
Trading capability required. The API key must have buying enabled. Configure this in your CSBoard profile.
Prerequisites
Before placing an order, ensure:- Trading-enabled key — buying must be turned on for your API key in your CSBoard profile settings.
- Linked Steam account and trade URL — your CSBoard account must have a Steam account connected with a valid trade URL so items can be delivered.
- Sufficient balance — your CSBoard balance must cover the total cost of the items at their live prices.
Request headers
Request body
id field of GET /v1/listings responses. Each ID must appear only once per request.price_moved error and you are not charged. Strongly recommended — without it you have no overcharge protection.Idempotency-Key header. If both are provided, the header takes precedence. Use one or the other, not both.Response fields
ord_01J9Z3K8Q2.processing, completed, or failed.Example request
Example response
Error codes
| HTTP status | Code | Meaning |
|---|---|---|
| 409 | price_moved | The live total of your items exceeded max_price_usd. Order rejected; no charge made. The response includes current_total_usd showing the actual price. |
| 402 | insufficient_balance | Your balance is too low to cover the order total. |
| 400 | steam_account_required | No linked Steam account or valid trade URL on your CSBoard account. |
| 403 | trading_not_enabled | The API key does not have buying enabled. Enable it in your profile. |
| 401 | unauthorized | Missing or invalid API key. |
| 429 | rate_limit_exceeded | Over 30 requests/min. Wait for the Retry-After header value before retrying. |
hold are subject to a Steam trade hold. Check the tradable_at field on the original listing (from GET /v1/listings) to see exactly when a held item will become tradable in your Steam inventory.Authorizations
Send your key as a Bearer token on every request: Authorization: Bearer csb_pub_.... Generate keys in your CSBoard profile.
Headers
Optional. A retried request with the same key replays the original order instead of buying twice.
Body
1–10 unique ids from /v1/listings. Some items can't be combined in a single order — if so the order is rejected and you can split it.
1 - 10 elementsTotal ceiling in USD. Strongly recommended — your overcharge protection, enforced atomically inside the locked debit.
Optional; or send the Idempotency-Key header. Replays the original order on retry.