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

# Introdução à API

> Visão geral da API REST do AssessIQ.

## Base URL

```
https://seudominio.com/api
```

Em desenvolvimento local:

```
http://localhost:3000/api
```

***

## Autenticação

Todas as rotas da API (exceto as públicas) exigem uma sessão autenticada via cookie de sessão NextAuth.

Para uso programático (scripts, integrações), faça login via `POST /api/auth/callback/credentials` e use o cookie de sessão retornado.

Veja o guia completo em [Autenticação](/api-reference/autenticacao).

***

## Formato

* Todas as respostas são em **JSON**
* Datas seguem o formato **ISO 8601** (`2026-02-24T20:00:00.000Z`)
* IDs são strings **CUID** (ex.: `cmlz9wf090000sv0yfinj1bja`)

***

## Códigos de Status

| Código | Significado                      |
| ------ | -------------------------------- |
| `200`  | Sucesso                          |
| `201`  | Recurso criado                   |
| `400`  | Parâmetros inválidos             |
| `401`  | Não autenticado                  |
| `403`  | Sem permissão                    |
| `404`  | Recurso não encontrado           |
| `409`  | Conflito (ex.: e-mail duplicado) |
| `500`  | Erro interno do servidor         |

***

## Rotas Públicas

Algumas rotas não exigem autenticação:

| Rota                                 | Descrição                           |
| ------------------------------------ | ----------------------------------- |
| `GET /api/test-link/[token]`         | Acesso ao formulário via link único |
| `POST /api/test-link/[token]/submit` | Submeter respostas do teste         |

***

## Especificação OpenAPI

O schema completo da API está disponível em:

* **YAML**: `docs/openapi.yaml`
* **Rota dinâmica**: `GET /api/openapi?format=json`

```bash theme={null}
# Baixar o schema JSON
curl https://seudominio.com/api/openapi?format=json > openapi.json
```
