{"name":"4$0 Auth API","version":"1.0.0","pages":[{"path":"/","description":"Landing page (HTML)"},{"path":"/home","description":"Bot marketing + command reference (HTML)"},{"path":"/home/commands","description":"All slash commands table (HTML)"},{"path":"/home/{category}","description":"Command category pages, e.g. /home/moderation"},{"path":"/docs","description":"Redirects to /home (legacy bookmarks)"},{"path":"/dashboard","description":"Web auth panel (HTML)"},{"path":"/server-dashboard","description":"Discord owner server dashboard (HTML)"},{"path":"/webhooks/topgg","description":"Top.gg vote webhook (POST; Authorization: webhook secret)"},{"path":"/vouches","description":"Vouch index (HTML)"},{"path":"/privacy","description":"Privacy policy (HTML)"},{"path":"/tos","description":"Terms of service (HTML)"}],"endpoints":[{"path":"/api/info","description":"This JSON index"},{"path":"/api/v1/status","description":"Health / counts (JSON)"},{"path":"/api/v1/verify","method":"POST","description":"License or account + HWID; optional envelopes e=Fernet or g=AES-GCM"},{"path":"/api/v1/check","description":"Session check"},{"path":"/api/v1/logout","description":"Invalidate session"},{"path":"/api/v1/report","method":"POST","description":"Client tamper / anti-debug report (app secret)"},{"path":"/api/dashboard/*","description":"Dashboard JSON API (Bearer JWT)"},{"path":"/transcripts/{guild_id}/{filename}","description":"Ticket HTML; ?dl=1 to download"}],"env_hints":["AUTH420_AUTH_DB_PATH — SQLite path (same file as Discord bot; default data/auth420.sqlite)","AUTH420_PUBLIC_BASE_URL — public API base (no trailing slash); used for /dashboard links and Top.gg webhook URL","AUTH420_DISCORD_AUTH_WEBHOOK_URL — optional Discord webhook for auth audit logs","AUTH420_AUTH_RATE_MAX_* — per-IP POST limits (see api_security.py)","AUTH420_API_ENABLE_HSTS=1 — only behind HTTPS reverse proxy","BOT_INVITE_URL — optional override for Add bot links (default in src/bot_invite.py)","TOPGG_WEBHOOK_AUTH — top.gg webhook secret (``whs_…`` = v2 HMAC via x-topgg-signature; plain string = legacy Authorization)","TOPGG_VOTE_URL — optional; vote link in thank-you embed (default top.gg/bot/{client id})","TOPGG_SETUP_USER_ID / TOPGG_SETUP_USER_IDS — Discord user(s) who may run /vote channel"]}