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

# create_upload

> Reserve an upload for bytes you hold locally.

Reserve an upload for bytes you hold locally.

## Input

| Field | Type | Notes |
| - | - | - |
| `filename` | string | |
| `mime_type` | string | |
| `size_bytes` | number | |

## Output

`{ "upload_id": string, "upload_url": string, "expires_at": string }`. `upload_url` is a signed link that carries no connection secret. `PUT` the bytes to it with a `Content-Length` no larger than `size_bytes`, then pass `upload_id` to [send\_media](https://docs.zapbip.com/mcp-reference/send-media.md). The upload expires after 15 minutes. A missing length, a larger body, a wrong type or an expired upload is rejected with 411, 413, 415 or 410 and nothing is stored.

## Message kinds

| Kind | Agent to owner | Owner to agent |
| - | - | - |
| `text` | [send\_message](https://docs.zapbip.com/mcp-reference/send-message.md) | text |
| `image` | [send\_media](https://docs.zapbip.com/mcp-reference/send-media.md), up to 5 MB | the image inline when up to 1 MB, otherwise a signed link |
| `video` | [send\_media](https://docs.zapbip.com/mcp-reference/send-media.md), up to 16 MB | signed link |
| `audio` | [send\_media](https://docs.zapbip.com/mcp-reference/send-media.md), up to 16 MB, `voice` for a voice note | signed link |
| `document` | [send\_media](https://docs.zapbip.com/mcp-reference/send-media.md), up to 100 MB | signed link, file name and MIME type |
| `sticker` | [send\_media](https://docs.zapbip.com/mcp-reference/send-media.md) | signed link |
| `location` | [send\_location](https://docs.zapbip.com/mcp-reference/send-location.md) | latitude, longitude, name and address |
| `contacts` | [send\_contact](https://docs.zapbip.com/mcp-reference/send-contact.md) | the contact cards |
| `reaction` | [react](https://docs.zapbip.com/mcp-reference/react.md) | `message_id` and `emoji`, routed to the agent that sent the reacted message |
| `choice` | [ask](https://docs.zapbip.com/mcp-reference/ask.md), up to 3 options as buttons and 4 to 10 as a list | `option_id`, `title` and optional `description` |
| quote | `reply_to` on every send | `reply_to`, routed to the agent that sent the quoted message |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.