Accounts, messages, threads and sending.
| Método | Path | Resumo | Access |
|---|---|---|---|
| GET | /accounts | Lista contas do usuário logado | Signed in |
| POST | /accounts | Cria uma conta e seeda as 5 folders sistêmicas | Team member |
| PATCH | /accounts/{accountId} | Atualiza display_name / signature_html | Signed in |
| GET | /accounts/{accountId}/folders | Lista folders + contador unread | Signed in |
| POST | /accounts/{accountId}/folders | Cria folder custom | Signed in |
| GET | /accounts/{accountId}/messages | Lista mensagens de uma folder da conta | Signed in |
| GET | /accounts/{accountId}/search | Busca full-text ranqueada na conta inteira, usando a coluna gerada `search_tsv` (migration 009) e o índice GIN. | Signed in |
| GET | /api/teams/{teamId}/mail/api-keys/ | Lista chaves do team (ativas + revogadas) | Team admin |
| POST | /api/teams/{teamId}/mail/api-keys/ | Emite nova chave (plaintext retornado uma vez) | Team admin |
| DELETE | /api/teams/{teamId}/mail/api-keys/{keyId} | Revoga chave (soft — set revoked_at + enabled=false) | Team admin |
| POST | /api/teams/{teamId}/mail/api-keys/{keyId}/rotate | Rotaciona a chave — segredo NOVO, mesmo id | Team admin |
| GET | /api/teams/{teamId}/mail/api-keys/{keyId}/usage | Uso agregado por hora dessa chave | Team admin |
| GET | /api/teams/{teamId}/mail/domains/ | Os domínios vivos do team, com o estado por registro. | Team admin |
| POST | /api/teams/{teamId}/mail/domains/ | Normaliza, gera o token de posse por CSPRNG e insere. | Team admin |
| GET | /api/teams/{teamId}/mail/domains/{domainId} | O detalhe com os registros esperados e o que foi observado. | Team admin |
| DELETE | /api/teams/{teamId}/mail/domains/{domainId} | Soft delete. | Team admin |
| POST | /api/teams/{teamId}/mail/domains/{domainId}/check | Roda a verificação agora, em vez de esperar o worker. | Team admin |
| GET | /me/email-inbox | Devolve o endereço "task+<token>@axuz.net" do caller. | Signed in |
| POST | /me/email-inbox/regenerate | Rotaciona o token de inbox — invalida qualquer forward anterior (o antigo cai em 404 no HandleEmailToTask). | Signed in |
| GET | /me/mail/search | Busca full-text ranqueada somando TODAS as contas de e-mail do caller, ordenada por (relevância, data, id) e paginada por cursor keyset. | Signed in |
| POST | /messages | Compose — salva rascunho OU envia (interno/externo) | Signed in |
| GET | /messages/{messageId} | Lê mensagem + thread completa + anexos | Signed in |
| DELETE | /messages/{messageId} | Delete two-stage (trash → hard delete) | Signed in |
| PATCH | /messages/{messageId} | Ajusta flags (read/starred/labels) | Signed in |
| POST | /messages/{messageId}/move | Move pra outra folder (id explícito OU kind sistêmico) | Signed in |
| GET | /v1/messages/{messageId} | Status/lookup de mensagem enviada pelo team da chave | Team member |
| POST | /v1/send | Envia email via API key | Team member |
| GET | /v1/usage | Uso agregado por hora da chave autenticada | Team member |