📡 Cloud API Reference
Complete API documentation with interactive examples. Explore endpoints for match analysis, player statistics, and more.
- POST /analyze - Trigger match analysis
- GET /status/{match_id} - Check analysis status
- GET /player/{steam_id} - Get player profile
- GET /stats/pga - Get PGA statistics
View Cloud API →
🎮 In-Game Coaching API
Local APIs for the real-time coaching daemon. Control the pipeline, manage TTS volume, and receive match events.
- POST /start - Start coaching pipeline
- POST /stop - Stop coaching pipeline
- POST /match_started - Match begin webhook
- POST /match_end - Match end with stats
View In-Game API →
🔑 Firebase Integration
Learn how to authenticate users and manage API keys using Firebase. Includes client SDK examples for Web, React Native, and Flutter.
- Automatic API key generation
- User authentication flow
- Rate limiting tiers
- Client SDK examples
View Firebase Docs →
🚀 Quick Start
Get started in minutes. Register, get your API key, and make your first analysis request.
- 1. Sign up via Firebase Auth
- 2. Get your API key automatically
- 3. Call /analyze with match_id
- 4. Query results via /stats/pga
Try It Now →
🔐 Steam Authentication
Authenticate users via Steam OpenID. Get API keys automatically after successful login.
- GET /auth/steam/login - Initiate Steam login
- GET /auth/callback - Handle Steam callback
- Returns API key via deep link
- No API key required for auth endpoints
View Auth API →
📊 Benchmark API
Hero/rank/role benchmark stats sliced by match duration. Backend handles the duration-bucket math and returns a flat 20-field JSON.
- GET /v1/benchmark/{hero_id}/{rank}/{role}
- ?duration_seconds=N picks the right bucket
- X-API-Key auth (same key as Stats API)
- Flat response — render directly
View Benchmark Docs →
🎯 Goal Setting API
Pre-game focus area generation. After each match analysis, generates personalized improvement areas per role using LLM insights.
- POST /goal-setting - Generate focus areas
- Auto-detects roles from player profile
- Personalized (LLM) or static tips
- Output: goal_setting/{steam_id}/{match_id}.json
View Goal Setting API →
📝 Session Summary API
Post-session LLM-powered analysis. Submit match stats after a session ends and receive AI-generated coaching insights.
- POST /session-summary - Submit matches for analysis
- GET /session-summary/{task_id} - Poll for result
- Async pattern: 202 → poll → result
- AI coaching summary via Claude
View Session Summary API →
🐛 Diagnostic Logs API
Receive support bundles from the dota2-ingame Flutter client. Multipart upload of gzipped logs + metadata; Discord notification on receipt.
- POST /diagnostics/upload — multipart bundle
- Up to 3 gzipped log files + JSON metadata
- Server-generated ticket_id, atomic GCS writes
- Optional Discord webhook integration
View Diagnostic API →