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

# Autenticação

> Como autenticar suas requisições com X-API-Key, gerenciar créditos e respeitar limites.

# Autenticação

Todas as rotas da API Messora exigem autenticação via header `X-API-Key`.

## Obtendo sua API key

1. Crie uma conta em [www.messora.dev/auth/signup](https://www.messora.dev/auth/signup)
2. Acesse **API Keys** na área logada
3. Copie sua chave — ela aparece uma vez; guarde-a em local seguro

## Usando a API key

Inclua o header `X-API-Key` em toda requisição:

```bash theme={null}
curl -X POST https://api.messora.dev/scrape \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{"url": "https://example.com", "formats": ["markdown"]}'
```

## Respostas de erro de autenticação

| Status | Significado                  |
| ------ | ---------------------------- |
| `401`  | Header `X-API-Key` ausente   |
| `403`  | API key inválida ou revogada |

## Créditos

Cada operação consome créditos do saldo mensal da conta:

| Operação                  | Custo                             |
| ------------------------- | --------------------------------- |
| Scrape (markdown / raw)   | 1 crédito por página              |
| Scrape (JSON estruturado) | 10 créditos por request           |
| Search                    | 1 crédito por resultado retornado |
| Crawl                     | 1 crédito por página bem-sucedida |

<Note>
  Falhas (bloqueio anti-bot, timeout, erro de extração) **não** consomem créditos.
</Note>

## Rate limits

| Endpoint             | Limite                                               |
| -------------------- | ---------------------------------------------------- |
| `POST /scrape`       | 10 req/min                                           |
| `POST /search`       | 2 req/min                                            |
| `POST /crawl`        | 10 req/min                                           |
| `GET /jobs/{job_id}` | Sem limite explícito (polling recomendado a cada 2s) |

Quando o limite é excedido, a API retorna `429 Too Many Requests`. Aguarde
o período de cooldown antes de enviar novas requisições.
