> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trycarhub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload media

> Use presigned uploads for videos, batches and reusable media inputs.

Most image endpoints accept either a multipart file or an upload reference. Videos and multi-asset requests require an upload reference.

## Choose an input encoding

| Encoding              | Use it when                                     | Input field                             |
| --------------------- | ----------------------------------------------- | --------------------------------------- |
| `multipart/form-data` | You have one small asset ready to send          | `image`, `audio`, `video` or `images[]` |
| `application/json`    | You upload first, send video, or submit a batch | `input_ref` or `input_refs`             |

Multipart uploads are capped at 10 MB per file. The model's parameters are the same in either encoding.

## Create and use an upload

1. Create a presigned upload with `POST /v1/uploads`.
2. Upload the original bytes to the returned presigned URL. Preserve the URL and signed request headers exactly.
3. Submit `input_ref` (or `input_refs`) in JSON to the inference endpoint.

```json theme={null}
{
  "input_ref": "upl_7Qm2hV9tXbLd",
  "params": {"return_cutout": true}
}
```

<Warning>An upload reference is opaque and organisation-scoped. Do not attempt to construct one or share it across organisations. CarHub resolves the reference server-side and rejects inaccessible or consumed objects.</Warning>

For field names, content types and endpoint-specific parameters, use the generated [API reference](/api-reference/overview).
