Skip to main content
POST
/
market
/
buy
Buy and deliver to a Steam trade URL
curl --request POST \
  --url https://csboard.com/v1/market/buy \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "item_ids": [
    "itm_8841201",
    "itm_8841340"
  ],
  "partner": "447383001",
  "token": "Ab3xZ9Qp",
  "max_price_usd": 30,
  "custom_id": "batch-2026-06-29-01",
  "skip_unavailable": false
}
'
{
  "data": {
    "purchase_id": "pur_01J9Z3K8Q2",
    "steam_id": "76561198000000000",
    "created_at": "2026-06-29T17:12:04Z",
    "custom_id": "batch-2026-06-29-01",
    "skins": [
      {
        "name": "AK-47 | Redline (Minimal Wear)",
        "price": 14.37,
        "status": "delivering",
        "return_reason": null,
        "steam_trade_offer_id": "5512345678"
      }
    ]
  }
}

Authorizations

Authorization
string
header
required

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

Body

application/json
item_ids
string[]
required

1–100 unique listing ids to buy.

Required array length: 1 - 100 elements
partner
string
required

Steam trade URL partner value. With token, forms the destination trade URL.

Required string length: 1 - 32
token
string
required

Steam trade URL token value. With partner, forms the destination trade URL.

Required string length: 1 - 32
max_price_usd
number

Total ceiling in USD. Order is rejected with price_moved if the live total exceeds it.

custom_id
string

Idempotency key. A retry with the same value replays the original purchase.

Required string length: 1 - 128
skip_unavailable
boolean
default:false

If true, skip items that are no longer available instead of failing the whole request.

Response

Purchase accepted and debited from settled balance.

data
object
required