Developer API
Programmatic access to Model90's WC 2026 predictions, Elo ratings, odds, and analytics. Free for personal and research use.
https://api-production-7d26a.up.railway.appAuthentication
Pass your API key in the X-API-Key request header. Public read endpoints work without a key; write operations (generating keys) require Supabase auth.
curl -H "X-API-Key: YOUR_KEY" \ https://api-production-7d26a.up.railway.app/api/fixtures?league_id=1
Get an API Key
Sign in to generate keys — manage up to 5 active keys per account.
Endpoints
/api/fixtures?league_id=1&date=2026-06-30List upcoming fixtures with prediction probabilities.
/api/fixtures/{id}Full fixture detail: stats, lineups, events, odds, predictions.
/api/predictions/{id}Latest ML prediction for a fixture (home_win, draw, away_win probabilities + xG).
/api/predictions/{id}/explainDirectional feature attribution for a prediction (Elo edge, xG advantage, H2H, etc.).
/api/advanced-analytics/{id}Advanced analytics: PPDA, progressive pass %, xG/shot, xG overperformance.
/api/eloElo ratings for all tracked teams, sortable.
/api/oddsCurrent 1X2 bookmaker odds + model-implied value edges.
/api/confidence-mapElo-based confidence scores for all WC 2026 nations.
/api/leaderboard?phase=groupCommunity Beat-the-Model leaderboard with Brier scores, streaks, and badges.
/api/reports/dailyDaily Intelligence Report: top confidence pick, value bets, goal fests, biggest miss.
/api/model/evolutionModel version history: log-loss, Brier, accuracy, and RPS per training run.
/api/keysGenerate a new API key (max 5 per user).
/api/keysList your active API keys.
/api/keys/{id}Revoke an API key.
Examples
import requests
BASE = "https://api-production-7d26a.up.railway.app"
HEADERS = {"X-API-Key": "YOUR_KEY"}
# Get today's fixtures
r = requests.get(f"{BASE}/api/fixtures", headers=HEADERS)
fixtures = r.json()
# Get prediction for a specific match
pred = requests.get(f"{BASE}/api/predictions/12345", headers=HEADERS).json()
print(pred["home_win_prob"], pred["draw_prob"], pred["away_win_prob"])Rate Limits & Terms
- • 60 requests/min for authenticated users
- • 10 requests/min for unauthenticated requests
- • Data is for personal, research, and non-commercial use only
- • Prediction data has a 24–48h FBref lag; live odds update every 5 minutes
Questions? Open an issue on GitHub