# Buy items in bulk and send to one tradelink

`POST /v1/buy`

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.

Prices are integers. `1000` = `1 USD`.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `api` | query | string | required | Your [WAXPEER API](https://waxpeer.com/profile/user) |

## Request body

```json
{
  "tradelink": "string",
  "all": false,
  "items": [
    {
      "item_id": "string",
      "name": "string",
      "price": 0,
      "project_id": "string"
    }
  ]
}
```

## Example (curl)

```bash
curl -X POST 'https://api.waxpeer.com/v1/buy?api=%7B%7BAPI_KEY%7D%7D' \
  -H 'Content-Type: application/json' \
  -d '{
  "tradelink": "string",
  "all": false,
  "items": [
    {
      "item_id": "string",
      "name": "string",
      "price": 0,
      "project_id": "string"
    }
  ]
}'
```

## Example response

```json
{
  "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"
    }
  ]
}
```

## Responses

- `200` Per-item purchase results

## Notes for agents

- Auth is the query parameter `api`, not an Authorization header.
- See [/statuses.md](/statuses.md) for numeric trade status plus `escrow_status` / `release_date`.
- Prefer GET /v2/search-items-by-name over v1.
- Do not use GET /v1/ready-to-transfer-p2p; use the [trade websocket](/websocket.md).
