Buy items in bulk and send to one tradelink
Buy up to multiple items in one request. Each item is purchased independently — check the per-item success in the response array. Prices are integer units (USD * 1000), same as /v1/buy-one-p2p. We recommend adding a project_id per item so you can track trades with the /check-many-project-id GET method in case of a timeout.
A trade-locked listing can be bought only by exact item_id and only with allow_trade_locked. The opt-in confirms that you saw unlock_at and accept delayed delivery. Without it the purchase is refused: "trade-locked listing: pass allow_trade_locked=1 to confirm delayed delivery". You are charged in full at purchase time. There is no endpoint to cancel a reservation. A successful hold purchase adds purchase_status "reserved", unlock_at, and send_until (RFC 3339 UTC). Regular purchases omit those fields. GET /v1/buy-one-p2p-name never sells hold items.
Duplicates
double purchase on an item: the same item_id was sent twice in one request, or already received in the last 5 seconds.
Parameters
| Name | Location | Type | Description |
|---|---|---|---|
apirequired | query | string | Your WAXPEER API key |
Request body
| Name | Location | Type | Description | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
tradelinkoptional | body | string | Partner's Steam trade URL (tradelink) | ||||||||||||||||
alloptional | body | boolean | all | ||||||||||||||||
itemsrequired | body | array<object> | Array of items | ||||||||||||||||
| |||||||||||||||||||
allow_trade_lockedoptional | body | boolean | allow_trade_locked | ||||||||||||||||
{
"tradelink": "string",
"all": false,
"items": [
{
"item_id": "string",
"name": "string",
"price": 0,
"project_id": "string"
}
],
"allow_trade_locked": false
}Responses
200 Successful operation
| Name | Type | Description | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
successoptional | boolean | Whether the operation succeeded | ||||||||||||||||||||||||||||||||||||
msgoptional | string | Reason message when success is false | ||||||||||||||||||||||||||||||||||||
itemsoptional | array<object> | Array of items | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||
{
"success": false,
"msg": "string",
"items": [
{
"success": false,
"id": 0,
"item_id": "string",
"name": "string",
"price": 0,
"internal_item_id": "string",
"new_price": 0,
"msg": "string",
"error_msg": "string",
"purchase_status": "reserved",
"unlock_at": "2026-08-04T12:00:00Z",
"send_until": "2026-08-05T12:00:00Z"
}
]
}