HTTP API
Base URL https://addtothese.com/api/v1. Authenticate with Authorization: Bearer att_... (API token) or di browser session plus X-CSRF-Token. All di bodies na JSON; errors na {"error": "...", "code": "..."}.
| Method | Path | Wetin e dey do |
|---|---|---|
| POST | /auth/register | {email, password, name} |
| POST | /auth/login | {email, password}; e fit answer {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} | e dey start OAuth |
| GET/PATCH | /me | account; PATCH {name} |
| POST | /me/totp/setup | enable | disable | two-factor |
| POST | /me/password | {current_password, new_password} |
| GET/POST/DELETE | /tokens[/{id}] | API tokens; POST {name} dey return di secret only one time |
| GET/POST/DELETE | /endpoints[/{id}] | POST {subdomain, protocol} |
| POST | /endpoints/ephemeral | {protocol} random name |
| GET/POST/DELETE | /domains[/{id}] | POST {domain, endpoint_id} |
| POST | /domains/{id}/verify | DNS check |
| POST | /agent-token | {endpoints: []} dey return {token, upstream_url, endpoints, expires_at} |
| GET | /usage | current period and history |
| GET | /tunnels | agents wey connect |
| GET | /billing/prices | plans and Stripe prices |
| POST | /billing/checkout | /billing/portal | {price} dey return {url} |