Axuz Developers

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.

  • Access: Signed in
  • Service: https://mail-api.axuz.net

Accepted authentication

  • sessionCookie — Sessão plena Axuz (cookie de sessão da casa). Sessão restrita é 403 enrollment_required.
  • bearerSession — JWT de acesso da sessão em `Authorization: Bearer`.

Busca full-text ranqueada somando TODAS as contas de e-mail do caller, ordenada por (relevância, data, id) e paginada por cursor keyset.

searchMyMail responde GET /me/mail/search.

AUTORIZAÇÃO — a parte que importa nesta rota. O conjunto de contas sai de mail_accounts WHERE user_id = <token>; não existe parâmetro de conta, e portanto não existe o que o cliente possa forjar. O account_id = ANY() no WHERE é o mesmo escopo, aplicado no banco: se o gate sumisse num refactor, a query ainda não atravessaria caixas.

FAIL-CLOSED (P-009). Falha ao RESOLVER as contas responde 403, nunca uma lista vazia. Degradar para "nenhum resultado" faria o palette mostrar uma busca INCOMPLETA como se fosse completa — o usuário conclui que o e-mail não existe. Zero contas de verdade é outra coisa, e continua sendo 200 com lista vazia: a diferença entre "não achei" e "não consegui procurar" é justamente o que o P-009 cobra.

Entradas: JWT + query (q obrigatório, limit, cursor).

Retorno: 200 {items, query, limit, next_cursor, accounts_searched, accounts_truncated}; 400 em q ausente/longo ou cursor corrompido; 403 quando o escopo não pôde ser resolvido; 500 em erro de banco.

Parameters

No parameters.

Responses

200

{items, query, limit, next_cursor, accounts_searched, accounts_truncated}

400

Em q ausente/longo ou cursor corrompido

NameTypeRequiredDescription
errorstringyes

401

Sem credencial valida

NameTypeRequiredDescription
errorstringyes

403

Sem permissao (nao e owner/admin; token sem escopo; token de integracao em rota nao permitida)

NameTypeRequiredDescription
errorstringyes

429

Limite de requisições excedido.

NameTypeRequiredDescription
errorstringyes

500

Em erro de banco

NameTypeRequiredDescription
errorstringyes

Examples

"Try it" is turned off in this reference. Use the examples with your test credential.

curl

curl -sS -X GET 'https://mail-api.axuz.net/me/mail/search' \
  -H "Authorization: Bearer $AXUZ_TOKEN"

Node.js

const res = await fetch("https://mail-api.axuz.net/me/mail/search", {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${process.env.AXUZ_TOKEN}`,
  },
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());

Python

import os
import requests

res = requests.request(
    "GET",
    "https://mail-api.axuz.net/me/mail/search",
    headers={
        "Authorization": f"Bearer {os.environ['AXUZ_TOKEN']}",
    },
    timeout=30,
)
res.raise_for_status()
print(res.json())