<!-- Source: https://docs.sendeasy.app/en/server/api-publica -->

# Public API (Server)

## Base URL

```txt
https://backend.sendeasy.app
```

## Authentication models

1. Channel token (`/api/messages/send`, `/api/v1/email/*`)
2. API token (`/api/v1/waba/*`, `/api/v1/ai/*`)
3. Integration token (`/api/integration/generic`)

## Main endpoints

| Method | Endpoint                         | Auth                                                                                           |
| ------ | -------------------------------- | ---------------------------------------------------------------------------------------------- |
| `POST` | `/api/messages/send`             | Channel token                                                                                  |
| `POST` | `/api/integration/generic`       | Integration token                                                                              |
| `POST` | `/api/v1/email/send`             | Email channel token — see [/en/server/email](https://docs.sendeasy.app/en/server/email.md)     |
| `GET`  | `/api/v1/email/health`           | Email channel token                                                                            |
| `POST` | `/api/v1/ai/completion`          | API token — see [/en/server/bots](https://docs.sendeasy.app/en/server/bots.md)                 |
| `POST` | `/api/v1/ai/extract`             | API token                                                                                      |
| `POST` | `/api/v1/ai/search`              | API token                                                                                      |
| `GET`  | `/api/v1/ai/health`              | API token                                                                                      |
| `POST` | `/api/v1/diagnostic-submissions` | API token — see [/en/server/diagnosticos](https://docs.sendeasy.app/en/server/diagnosticos.md) |

## Success and error contracts

Success example:

```json
{ "message": "Message queued successfully" }
```

Error example:

```json
{ "error": "ERR_NO_PERMISSION" }
```

## Translation strategy

Keep `error` as canonical key and resolve display messages by locale in your client.
