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

# Erros

> Códigos de erro e formato de resposta

Todas as respostas de erro seguem o mesmo formato JSON.

## Formato

```json theme={null}
{
  "error": "Descrição do erro"
}
```

## Códigos de erro

| Status | Erro                  | Causa                                              |
| ------ | --------------------- | -------------------------------------------------- |
| `400`  | Bad Request           | Body ou parâmetros inválidos                       |
| `401`  | Unauthorized          | API Key ausente, inválida ou revogada              |
| `403`  | Forbidden             | Sem permissão para o recurso                       |
| `404`  | Not Found             | Recurso não encontrado                             |
| `429`  | Too Many Requests     | [Rate limit](/rate-limiting) excedido (60 req/min) |
| `500`  | Internal Server Error | Erro interno — contate suporte                     |

## Exemplos

### Key inválida (401)

```bash theme={null}
curl -H "Authorization: Bearer ik_live_invalida" \
  https://api.useintegra.com.br/api/v1/campaigns
```

```json Response theme={null}
{
  "error": "Invalid or revoked API key"
}
```

### Recurso não encontrado (404)

```bash theme={null}
curl -H "Authorization: Bearer ik_live_xxx" \
  https://api.useintegra.com.br/api/v1/campaigns/id-inexistente
```

```json Response theme={null}
{
  "error": "Campaign not found"
}
```

### Rate limit excedido (429)

```json Response theme={null}
{
  "error": "Rate limit exceeded. Try again later."
}
```

<Tip>
  Sempre verifique o campo `error` na resposta para entender o que aconteceu. Os erros são descritivos em inglês para facilitar o debugging.
</Tip>
