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

# Autenticação

> Como autenticar suas requisições à API Botly usando API Key

A API Botly usa **API Key** para autenticar todas as requisições. Sem uma chave válida, as chamadas retornam erro `401 Não autorizado`.

## Onde obter sua API Key

Cada API Key está vinculada a um **Agente**. Para gerar uma chave:

1. Acesse o [Dashboard Botly](https://app.botly.com.br)
2. Acesse o **Agente** para o qual deseja criar uma API Key
3. No menu lateral, vá para a página **API Keys**
4. Clique em gerar uma nova chave e **copie-a no momento em que for exibida** — você não terá acesso a ela novamente depois disso

<Warning>
  A API Key é exibida **apenas uma vez**, no momento da geração. Se você perder a chave, não será possível recuperá-la: será necessário gerar uma nova.
</Warning>

<Info>
  Guarde sua API Key em local seguro assim que copiá-la. Ela não deve ser exposta em repositórios públicos ou no frontend de aplicações.
</Info>

## Como usar

Envie a API Key no **header** de cada requisição:

| Header      | Valor       | Obrigatório |
| ----------- | ----------- | ----------- |
| `x-api-key` | Sua API Key | Sim         |

### Exemplo com cURL

```bash theme={null}
curl -X POST "https://api.botly.com.br/api/v1/rest/messages/send" \
  -H "Content-Type: application/json" \
  -H "x-api-key: SUA_API_KEY_AQUI" \
  -d '{
    "chatId": "1234567890",
    "message": "Olá!"
  }'
```

### Exemplo com JavaScript (fetch)

```javascript theme={null}
const response = await fetch('https://api.botly.com.br/api/v1/rest/messages/send', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'x-api-key': 'SUA_API_KEY_AQUI'
  },
  body: JSON.stringify({
    chatId: '1234567890',
    message: 'Olá!'
  })
});
```

## Boas práticas de segurança

* **Não compartilhe** sua API Key com terceiros
* **Não commite** a chave em código (use variáveis de ambiente)
* **Rotacione** a chave periodicamente ou em caso de suspeita de vazamento
* Em produção, **nunca** exponha a chave no frontend ou em apps móveis sem backend

## Erros comuns

| Código | Significado                                                            |
| ------ | ---------------------------------------------------------------------- |
| `401`  | API Key ausente, inválida ou expirada. Verifique o header `x-api-key`. |
