# Get a bulk upload URL

`GET /api/bobsync/products-bulk`

**Base URLs:**

- Sandbox: `https://api.tools.qa.bobshop.co.za`
- Production: `https://api.tools.bobshop.co.za`

**Authentication:** Bearer token required (see the Authentication page).

## Example request

```bash
curl -X GET 'https://api.tools.qa.bobshop.co.za/api/bobsync/products-bulk' \
  -H "Authorization: Bearer <API_KEY>"
```

Returns a signed URL, valid for 7 days. Upload your file to it with an HTTP
`PUT`, then pass the same URL to [Start a bulk upload](bulk_upload_start.md).

The file is a JSON array of products, each in the same format as a single
upsert. See [Bulk file format](bulk_file_format.md).

## Failures

| Status | Body | Meaning |
| --- | --- | --- |
| `400` | `could not generate temporary file` or `could not get upload url` | We could not create the upload URL. Retry. |

## Response

`200` with the signed upload URL.

```json
{
    "url": "https://bobshop-tools-backend-qa-infra-bulk-uploads.s3.af-south-1.amazonaws.com/0f8c...json?X-Amz-Algorithm=AWS4-HMAC-SHA256&..."
}
```
