# API do AgendAI (leitura) — Autenticação

Guia de uso (login, convenções, erros): https://api-docs.agendai.pro/md/guia.md


Login com e-mail e senha para obter o JWT usado em todas as outras chamadas.

- `POST /login` — Obter o token (JWT)

### POST /login

**Obter o token (JWT)** · operationId `login`

Autenticação: nenhuma (rota pública).

Troca e-mail e senha por um JWT. Use o token em todas as outras
chamadas no cabeçalho `Authorization: Bearer <token>`.

- Responde **201** (não 200) com `{ "token": "..." }`.
- O e-mail é comparado sem diferenciar maiúsculas.
- O token vale **7 dias** e não há refresh: quando qualquer chamada
  responder 401, faça login de novo e repita a chamada.
- Guarde o token e reutilize-o; não faça login a cada requisição.
- Usuário inativo (ou com convite pendente) recebe 401 com mensagem
  própria. Credenciais erradas recebem 401 `Invalid credentials.`
- Desativar o usuário no AgendAI invalida os tokens já emitidos na
  próxima chamada.

#### Corpo

Tipo da raiz: object

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `email` | string (email) | sim |  |
| `password` | string | sim |  |

```json
{
  "email": "integracao@exemplo.com.br",
  "password": "sua-senha"
}
```

#### Resposta 201

Token emitido.

Tipo da raiz: object

| Campo | Tipo | Sempre presente | Descrição |
|---|---|---|---|
| `token` | string | sim | JWT HS256, validade de 7 dias. |

Exemplo (dados fictícios):

```json
{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIuLi4ifQ.assinatura"
}
```

#### Erros

- **400**: Parâmetros inválidos. `message` é uma lista com um item por problema, no formato `campo: motivo`.
- **401**: Credenciais inválidas, e-mail ambíguo ou usuário inativo.
