API HTTP
URL base https://addtothese.com/api/v1. Autentique com Authorization: Bearer att_... (token de API) ou com a sessão do navegador mais X-CSRF-Token. Todos os corpos são JSON; os erros têm o formato {"error": "...", "code": "..."}.
| Método | Caminho | Finalidade |
|---|---|---|
| POST | /auth/register | {email, password, name} |
| POST | /auth/login | {email, password}; pode responder {mfa_required: true} |
| POST | /auth/totp/verify | {code} |
| POST | /auth/logout | |
| POST | /auth/password/forgot | /auth/password/reset | {email} | {token, password} |
| GET | /auth/oauth/{google|github} | inicia o OAuth |
| GET/PATCH | /me | conta; PATCH {name} |
| POST | /me/totp/setup | enable | disable | verificação em duas etapas |
| POST | /me/password | {current_password, new_password} |
| GET/POST/DELETE | /tokens[/{id}] | tokens de API; POST {name} retorna o segredo uma única vez |
| GET/POST/DELETE | /endpoints[/{id}] | POST {subdomain, protocol} |
| POST | /endpoints/ephemeral | {protocol} nome aleatório |
| GET/POST/DELETE | /domains[/{id}] | POST {domain, endpoint_id} |
| POST | /domains/{id}/verify | verificação de DNS |
| POST | /agent-token | {endpoints: []} retorna {token, upstream_url, endpoints, expires_at} |
| GET | /usage | período atual e histórico |
| GET | /tunnels | agentes conectados |
| GET | /billing/prices | planos e preços da Stripe |
| POST | /billing/checkout | /billing/portal | {price} retorna {url} |