# Batch Prepare Upload

```
POST 
/v1/:slug/assets/batch_upload_prepare
```

**Step 1 of Batch Asset Upload Process**

Prepares signed upload URLs for up to 100 assets in a single request. Returns a `batch_id` that must be passed to `batch_upload_complete`.

The response format for each asset matches the single-asset `upload_prepare` response, with a `uuid` field for client-side correlation.

## Request[​](#request "Direct link to Request")

```
{

  "batch": {

    "assets": [

      { "title": "photo.jpg", "size": 1024000, "media_type": "image/jpeg", "uuid": "client-uuid-1" },

      { "title": "doc.pdf", "size": 5242880, "media_type": "application/pdf", "uuid": "client-uuid-2" }

    ]

  }

}
```

## Upload Flow[​](#upload-flow "Direct link to Upload Flow")

1. Call this endpoint with an array of assets
2. Upload each file to its `upload_url` (same flow as single-asset upload\_prepare)
3. Call `batch_upload_complete` with the `batch_id` and all `signed_gcs_id` values

## Request[​](#request "Direct link to request")

## Responses[​](#responses "Direct link to Responses")

* 200
* 401
* 422

batch upload prepared

unauthenticated

batch size exceeded
