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

# Introduction

> Understand authentication, errors and webhooks.

### Base URL

The Sendo API is built on <b>REST</b> principles. We enforce <b>HTTPS</b> for every request to improve data security, initegrity and privacy. The API does not support <b>HTTP</b> requests.

All request should be sent to the following base URL:

```text theme={null}
https://api.sendo.dev
```

### Authentication

To authenticate your requests, you must add an Authorization header with the contents of the header being `Bearer {token}` where `{token}` is your API key.

You can generate an API key for your account on your [dashboard](https://sendo.dev/dashboard).

```text theme={null}
Authorization: Bearer {token}
```

### Response codes

Sendo uses standard HTTP codes to indicate the success or failure of requests.

In general, `2XX` HTTP codes mean your request was successful, `4XX` codes are for user-related failures, and `5XX` codes are for internal server issues.

| Status | Description                       |
| ------ | --------------------------------- |
| `200`  | Successful request                |
| `400`  | Check the parameters were correct |
| `401`  | The API key was missing           |
| `403`  | The API key was invalid           |
| `404`  | The resource was not found        |
| `429`  | The rate limit was exceeded       |
| `5XX`  | Internal error, contact support   |

<Tip>See a full breakdown of message-reated errors [here](/api-reference/errors).</Tip>

### Rate limits

The maximum number of API requests that users can send is <b>20 per second</b>. The headers below will be sent with every response in accordance with the IETF standard:

| Header name             | Description                                         |
| ----------------------- | --------------------------------------------------- |
| `X-RateLimit-Limit`     | Maximum number of requests allowed within a window. |
| `X-RateLimit-Remaining` | How many requests you have left within the window.  |
| `X-RateLimit-Reset`     | The timestamp at which the rate limit will reset.   |

When the limit is reached, you will receive a `429` HTTP error code.

To prevent this, we recommend reducing the rate at which you send requests. This can be done by introducing a queue mechanism or reducing the number of concurrent requests per second. If you have specific requirements, [contact support](mailto:support@sendo.dev) to request a rate increase.

### Compliance

Before sending any messages with Sendo, please ensure that you have read and understood our [Messaging Policy](/knowledge-base/policy) and our [Compliance overview](/knowledge-base/compliance). We reserve the right to suspend your account or block your messaging services if any misuse is reported.
