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

# Introduction

> Send WhatsApp messages programmatically with the Clapvo API.

The Clapvo API lets you send WhatsApp messages from your connected numbers directly from your own systems — no agent or dashboard needed. This reference covers everything you need to make your first request.

## Base URL

All API requests are made to:

```
https://api.clapvo.com
```

## Authentication

Every request must include your API token in the `x-api-key` header. Requests without a valid token are rejected.

```bash theme={null}
x-api-key: <YOUR_API_TOKEN>
```

You generate tokens from the **Developer** section in Clapvo. See [Authentication](/docs/api-reference/authentication) for step-by-step instructions on creating and managing your API token.

<Warning>
  Keep your API token secret. Treat it like a password — never expose it in client-side code or public repositories.
</Warning>

## Phone number format

Both `from` and `to` use international format with the country code and **no** leading `+`, spaces, or dashes.

| Number          | Format         |
| --------------- | -------------- |
| +91 84956 32548 | `918495632548` |

The `from` number must be a WhatsApp number connected to your Clapvo account. See [Add a connection](/docs/product/connections/add-connection) to connect a number.

## Message types

A single endpoint, [Send a message](/docs/api-reference/messages/send-a-message), handles every message type. Set `message.type` to choose what you send:

| Type     | `type` value | Notes                              |
| -------- | ------------ | ---------------------------------- |
| Text     | `message`    | Put your text in `message.message` |
| Image    | `image`      | Include a `media` object           |
| Document | `document`   | Include a `media` object           |
| Video    | `video`      | Include a `media` object           |
| Audio    | `audio`      | Include a `media` object           |

For media messages, `caption` is optional; all other fields are required.

Ready to dive in? Head to the [Send a message](/docs/api-reference/messages/send-a-message) endpoint to try it live.

## Status codes

Each response returns a standard HTTP status code so you can tell what happened at a glance.

| Code  | Status               | Description                                           |
| ----- | -------------------- | ----------------------------------------------------- |
| `200` | Success              | Message queued for delivery                           |
| `400` | Bad Request          | Invalid or missing required parameters                |
| `401` | Unauthorized         | Invalid or expired API token                          |
| `403` | Access denied        | The token lacks permission for this action            |
| `404` | Connection not found | The `from` number is not a connection on your account |
