Mentoroid Developer Docs

Everything you need to integrate with the Mentoroid API

📡 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 →