⚙ Tyttoot API

REST API for the Tyttoot platform — all requests JSON; admin routes require X-Admin-Token header.

MethodPathAuthDescription
POST /contact/submit public Submit contact form — name, email, subject, message, lang
POST /analytics/page public Log page view — page, lang, referrer
POST /analytics/project public Log project view — projectId, lang
POST /analytics/legacy-url public Log legacy URL hit before SPA redirect — legacyId, canonical
POST /analytics/ads-impression public Log interstitial show — projectId, adsId, deviceId (IP from server)
GET /leaderboard/{projectId} public Get leaderboard — ?season=&limit=&offset=
GET /leaderboard/{projectId}/seasons public List seasons for project leaderboard
POST /leaderboard/{projectId} public Submit score — name, score
POST /players/register public Register display name — X-Player-Token = previous identity on rename
GET /players/suggest public Random names from players table — ?limit= for nickname picks
POST /gameplay/shots public Log Battleship shot — gameId, r, c, hit
GET /gameplay/shots/heatmap public Shot heatmap — ?gameId=fleetGrid
GET /admin/session admin user+token Session — user, adminWrite, ownerAlias
GET /admin/projects admin user+token List merged registry (base + admin overlay)
POST /admin/projects admin user+token Save projects registry — write: owner alias only
GET /admin/contact admin user+token List recent contact submissions
GET /admin/contact/{YYYY-MM} admin user+token Submissions for specific month
POST /admin/contact/read admin user+token Mark submissions as read — {ids:[]} — write owner
DELETE /admin/contact/{id} admin user+token Delete a submission — write owner
GET /admin/analytics admin user+token Page + project view counts (last 3 months)
GET /admin/ads-impressions admin user+token Ads show counts / recent rows — ?projectId=&limit=&months=
Base URL — dev: http://127.0.0.1:8000/subdomain/api/public_html/ · prod: https://api.tyttoot.com/

Admin auth — headers X-Admin-User (machine alias) + X-Admin-Token (ADMIN_TOKEN / env TYTTOOT_ADMIN_TOKEN). Write mutations only for platform owner alias (tyt).

Config (registry): /home/u131129205/domains/tyttoot.com/public_html/subdomain/api/public_html/config
MySQL: connected