JSON over HTTPS. ~60 requests / minute / IP. No private games, no passwords, no engine dumps. Deep analysis stays in the user's browser (Stockfish WASM).
| Method | Path | Purpose |
|---|---|---|
| GET | /api/v1 | Service index |
| GET | /api/v1/openings | ECO opening entities + site URLs |
| GET | /api/v1/puzzles | Curated puzzle metadata (no solutions) |
| GET | /api/v1/lessons | Course catalog |
| GET | /api/v1/events | Calendar listings |
| GET | /api/v1/ratings | Rating categories and method (Glicko-2) |
| POST | /api/v1/analysis | Validate PGN, return a Game Review URL. Body: { pgn } |
| GET | /api/health/supabase | Supabase env + auth round-trip (no private data) |
curl -s https://aether-chess.vercel.app/api/v1/openings
curl -s -X POST https://aether-chess.vercel.app/api/v1/analysis \
-H "Content-Type: application/json" \
-d '{"pgn":"[Event \"A\"]\n1. e4 e5 *"}'