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

# Messages and media

> Send messages and download media belonging to your tenant.

## Send a message

`POST /v1/messages` requires `to` and `kind`, plus the matching payload: `text`, `template`, `reaction`, `location`, `contacts` or `interactive`. Image, audio, video, document and sticker use `media`. The reference lists each field and validation rule.

For media, supply an `id` or `link`. Audio does not accept caption/filename; video does not accept filename. Use `replyToMessageId` to reply to a message.

The response uses Watahub's format, not Meta's full response. `messageId` contains the wamid when Meta returns one. Track delivery through [webhooks](https://docs.watahub.dev/en/webhooks.md).

## Upload and download

Upload with `POST /v1/media` using `multipart/form-data`, or `POST /v1/media/{id}` with a phone number ID. Outside the path, use a documented phone selector such as `X-Phone-Number-Id`.

`GET /v1/media/{id}` returns a temporary Meta URL, not bytes. That URL requires the number's Meta token. Prefer `GET /v1/media/{mediaId}/content` to download through Watahub without exposing that token.

Only media uploaded or received by your tenant is accessible. Do not assume `/v1` metadata includes Meta's MIME type, checksum or file size.


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