Pro Data
Die Modellzahlen in wenigen Minuten in Ihren Code einbinden
156,421
Datenpunkte
13,507 Datensätze verteilt auf 13 Datasets, mit bis zu 148 Feldern: jeder Wert modellgeneriert oder kuratiert und täglich aus den Quellen neu erstellt. Hier kostenlos durchsuchen; alles per API mit einem kostenlosen Schlüssel abrufen.
Alle Wahrscheinlichkeiten für die 48 Nationen und 104 Spiele, prognostizierte Kader, Spielerkarrieren Saison für Saison, jüngste Ergebnisse und die historische Grundlage des Modells: als JSON oder CSV, oder als MCP-Tool, das Ihr Assistent aufrufen kann. Für Forscher, Fantasy-Spieler, Journalisten und Analyseteams, die die Modellausgabe in einer Pipeline statt auf einer Seite nutzen wollen. Testen Sie einen Live-Endpunkt unten mit einem einzigen Befehl, ohne Registrierung.
Schnellstart
Jetzt ausprobieren, ohne Registrierung
Diesen Befehl ausführen. Er gibt die fünf wahrscheinlichsten Turniersieger direkt aus dem Live-Modell zurück: kein Konto, kein API-Schlüssel. Anhängen: ?format=csv für die tabellarische Variante.
curl "https://onthepitch.now/api/v1/sample/"
Das vollständige Bild: alle 48 Teams, jedes Spiel, Spieler, Kader? Melden Sie sich an, API-Schlüssel generieren (10 kostenlose Aufrufe zum Start), und übergeben Sie ihn als Bearer-Token an jeden Endpunkt:
curl -H "Authorization: Bearer otp_live_…" \ "https://onthepitch.now/api/v1/forecast/"
Kostenlos testen: 10 Aufrufe
Melden Sie sich an und generieren Sie einen API-Schlüssel 10 kostenlose programmatische Aufrufe, verteilt auf diese REST-Endpunkte und den gehosteten MCP-Server: genug, um die Daten in ein Notebook oder einen Assistenten einzubinden und das Ergebnis zu sehen. Der MCP-Handshake zählt nicht; nur die Datenaufrufe zählen. Der Pro Pass ist unbegrenzt.
Was in den Daten steckt
Interaktive API-Referenz ansehen →13 Datasets, jeweils erreichbar unter /api/v1/ as JSON or — with ?format=csv — a flat table. /api/v1/sample/ is public; the rest are gated (a Bearer API key or a Pro session cookie). Below is exactly what each one returns. Full schemas live in the interactive reference (OpenAPI 3.0 spec at /api/v1/openapi.json).
Tournament forecast
48 nations/api/v1/forecast/
Each nation's probability of lifting the trophy and of reaching every stage.
Gibt zurück · 17 fields Tournament-win probability · advance from group · reach R16 / QF / SF / final · win-group probability · P(finish 1st–4th in group) · confederation · FIFA rank · group
Team forecast trajectory
480 snapshots/api/v1/team-history/
How each team's forecast has moved over time — one row per daily build.
Gibt zurück · 7 fields Team · build timestamp · Elo rating · tournament-win probability · 90% CI band (low & high)
Match forecast
104 matches/api/v1/fixtures/
Win / draw / win plus match-event probabilities for every fixture in the bracket.
Gibt zurück · 25 fields P(home / draw / away) · expected goals each side · over 0.5 / 1.5 / 2.5 / 3.5 goals · both teams to score · clean-sheet probability each side · kickoff, venue & city · stage & group
Predicted squads
1,246 players/api/v1/predicted-squads/
Projected 26-man squad for every nation, one row per player.
Gibt zurück · 13 fields Starting-XI vs bench slot · position · jersey number · captain flag · international caps & goals · composite rating · rank within position
Player index
1,215 players/api/v1/players/
Career profile for every player in the modelling pool.
Gibt zurück · 9 fields Name · nation · position · current club & league · birth year · career goals & assists
Player season history
8,964 player-seasons/api/v1/player-history/
Season-by-season career record for every player — one row per player-season.
Gibt zurück · 12 fields Player · season · team & league · position · matches & minutes · goals & assists · xG & xAG
Anytime scorer
50 ranked scorers/api/v1/anytime-scorer/
Tournament scoring probabilities for the most likely goalscorers.
Gibt zurück · 15 fields P(scores ≥1 in the tournament) · expected matches played · per-stage scoring probability (group → final) · rank
Recent match results
958 matches/api/v1/results/
Every team's recent senior-international results — last 24 months, their POV.
Gibt zurück · 10 fields Date · opponent · home / away / neutral · goals for & against · result · competition
Head-to-head records
144 pairings/api/v1/h2h/
All-time record between each nation and its group-stage opponents.
Gibt zurück · 12 fields Meetings · wins / draws / losses · last-meeting date, score, tournament & winner
Major-tournament history
106 tournament rows/api/v1/majors/
Each nation's most-recent run at every major, with squad and coach continuity.
Gibt zurück · 15 fields Tournament & year · matches · W-D-L · goals for / against · bracket finish · coach (name, year appointed, still in charge) · squad-pool continuity · ?tournament=&year= slicing
Group schedule
144 team-matchdays/api/v1/schedule/
Every nation's three group-stage fixtures.
Gibt zurück · 7 fields Matchday · date · opponent · host city & country
Team list
48 nations/api/v1/teams/
The tournament field — the lookup table to join everything else on team_id.
Gibt zurück · 6 fields team_id · name · confederation · FIFA rank · host flag · group
Bulk snapshot
One zip · ~3–5 MB/api/v1/bulk/snapshot/
Every source file the site renders from, in a single download, with checksums.
Gibt zurück 11 source JSONs + manifest (size, sha256 & built_at per file) · includes the deep fixture-enrichment blobs the per-endpoint variants flatten away
Wie Sie auf die Daten zugreifen
Jedes der obigen Datasets ist zugangsgeschützt, mit Ausnahme des öffentlichen /api/v1/sample/ Teasers. Authentifizieren Sie sich mit einem Bearer-API-Schlüssel oder einem Pro-Session-Cookie. Alles Weitere zum Datenzugriff finden Sie unten.
CSV variant on every endpoint
LivePass ?format=csv on any endpoint for a tabular response, RFC-4180 quoted, suitable for spreadsheet or notebook import. All row types are flat — no nested JSON in CSV cells.
Daily refresh + provenance metadata
LiveEvery response carries the upstream snapshot's built_at timestamp in the envelope (JSON) or X-OnThePitch-Generated-At header (CSV). Pipeline refits daily; cache is private 1h.
Bulk snapshot download (zip)
LiveGET /api/v1/bulk/snapshot/ returns one DEFLATE-compressed archive with the 11 source JSONs + a manifest (per-file size + sha256 + built_at). Includes the deep fixture enrichment blobs the per-endpoint variants flatten away. ~3–5 MB on the wire.
Historical tournament slicing
LivePass ?tournament=&year= on /api/v1/majors/ to extract a single tournament-year — e.g. every WC2026 team's WC2022 row in one call. The dataset stores each team's most-recent appearance per tournament, so WC2022 covers most qualifiers; WC2018 only covers teams that haven't been at a WC since.
Long-lived API keys
LiveGenerate a Bearer key at /account/api-key/ and pass it as Authorization: Bearer otp_live_… on any endpoint — no cookie juggling for headless / CI / scheduled jobs. One key per account; reset it any time if it leaks.
MCP server — connect Claude / Cursor
LiveA hosted Model Context Protocol server at /api/mcp exposes every endpoint as an MCP tool. Add it to Claude Code, Claude Desktop, or Cursor with one command and ask questions against the live model — no install, no glue code.
Backfilled model outputs — WC2018, WC2022
DemnächstPre-tournament model probabilities for the last two World Cups, replayed against frozen inputs so you can backtest the model end-to-end against known outcomes. Requires re-pulling historical FBref / Wikipedia snapshots; tracked as a separate research initiative.
Reproducible notebooks
DemnächstJupyter notebooks that fit the model end-to-end from the public data files and reproduce the website's outputs. Run locally with the published datasets.
Beispiele
Drei Dinge, die Sie heute tun können
Set OTP_KEY to the API key you generate here (export OTP_KEY=otp_live_…) — one token, no cookie juggling, works the same from a shell, a notebook, or a scheduled job. (Signed in already? A Pro session cookie works too, but the key is the friendlier path.)
Full forecast as CSV
curl -H "Authorization: Bearer $OTP_KEY" \ "https://onthepitch.now/api/v1/forecast/?format=csv" \ -o forecast.csv
WC2022 historical slice
curl -H "Authorization: Bearer $OTP_KEY" \ "https://onthepitch.now/api/v1/majors/?tournament=FIFA%20World%20Cup&year=2022" \ -o wc2022.json
Bulk snapshot as a single zip
curl -H "Authorization: Bearer $OTP_KEY" \ "https://onthepitch.now/api/v1/bulk/snapshot/" \ -o onthepitch-snapshot-v1.zip
Auf den Daten aufbauen
Snapshot abrufen, eigenes Modell anpassen
Das Bulk-Zip enthält alles, woraus die öffentliche Website ihre Darstellungen erzeugt: Prognose, Spiele, prognostizierte Kader, Direktvergleiche, internationale Turnierhistorie. Drei Einstiegsrezepte, um die Daten in ein Notebook zu laden und eigene Analysen durchzuführen.
1 · Snapshot in pandas laden
Zip herunterladen, einmal entpacken, dann jede Datei als DataFrame einlesen. Die Prognose-Hülle enthält eine Zeile pro Team: mit pd.json_normalize.
import io, json, os, zipfile, requests, pandas as pd
z = zipfile.ZipFile(io.BytesIO(requests.get(
"https://onthepitch.now/api/v1/bulk/snapshot/",
headers={"Authorization": f"Bearer {os.environ['OTP_KEY']}"},
).content))
forecast = pd.json_normalize(
json.loads(z.read("data.json"))["teams"],
)
fixtures = pd.json_normalize(
json.loads(z.read("fixtures.json"))["fixtures"],
)
squads = pd.json_normalize(
json.loads(z.read("predicted_squads.json"))["squads"],
record_path="players",
meta=["team_id"],
)2 · Basis-Siegwahrscheinlichkeitsmodell anpassen
Erstellen Sie Ihr eigenes H/D/A-Modell aus den prognostizierten Kadern und der Teamprognose. Gesamtbewertungen und eine Kaderstärke-Summe sind ein sinnvoller Ausgangs-Feature-Satz. Vergleichen Sie mit den veröffentlichten Wahrscheinlichkeiten, um Übereinstimmungen und Abweichungen zu sehen.
from sklearn.linear_model import LogisticRegression
# Aggregate predicted-XI composite to a team strength score.
xi = squads.query("slot == 'xi'")
strength = xi.groupby("team_id")["composite"].sum().rename("strength")
# Join strength onto fixtures and fit a logistic on prior tournament
# results (intl_majors.json has W/D/L from previous WCs + qualifiers).
intl = pd.json_normalize(
json.loads(z.read("intl_majors.json"))["rows"],
)
features = intl.merge(strength, left_on="team_id", right_index=True)
X = features[["strength", "fifa_rank"]]
y = (features["finish"] >= 9).astype(int) # 1 = quarter-final or better
clf = LogisticRegression().fit(X, y)
print(clf.coef_)3 · Eigenes Modell gegen die veröffentlichte Prognose kalibrieren
Sobald Ihr Modell Turniersieg-Wahrscheinlichkeiten auf Teamebene erzeugt, vergleichen Sie über Brier score und ein Kalibrierungsdiagramm: dieselbe Metrik, die wir in den Methodik-Dokumenten verwenden.
from sklearn.metrics import brier_score_loss
merged = forecast.merge(
pd.Series(my_probs, name="my_p_win"),
left_on="team_id", right_index=True,
)
print("OnThePitch Brier:", brier_score_loss(merged["won"], merged["p_win"]))
print("Yours Brier:", brier_score_loss(merged["won"], merged["my_p_win"]))Die Pass-Lizenz gilt für die Forschungsnutzung: anpassen, backtesten, Ergebnisse veröffentlichen. Quellenangabe auf das Methodik-Dokument wird geschätzt, ist aber nicht erforderlich.
Agenten
Claude, Cursor oder jeden MCP-Client verbinden
Ein gehosteter Model Context Protocol Server unter /api/mcp stellt jeden Endpunkt als MCP-Tool bereit. So können Sie Fragen direkt gegen das Live-Modell in Ihrem Assistenten stellen: keine Installation, kein Verbindungscode. Authentifizieren Sie sich mit einem API-Schlüssel jedes angemeldete Konto kann einen generieren, und Ihre ersten 10 Tool-Aufrufe sind kostenlos.
Zu Claude Code hinzufügen
claude mcp add --transport http onthepitch \ https://onthepitch.now/api/mcp \ --header "Authorization: Bearer otp_live_…"
Then prompt naturally — “which team is most likely to win the group?”, “compare the projected XIs for France and England”, “how did Brazil do at WC2022?” — and the assistant calls the matching tool (get_forecast, get_predicted_squads, get_majors) and answers from the live data.
Pro Pass
Pro Pass erwerben für unbegrenzten Zugang
Jedes Konto erhält 10 kostenlose Aufrufe zum Testen der API + MCP. Der Pro Pass ist ein einmaliger Kauf für $35 mit unbegrenztem Zugang: alles im Standard Pass plus die Datenendpunkte, Bulk-Zip-Download und historisches Turnier-Slicing. Reproduzierbare Notebooks erscheinen vor dem Anpfiff. Sie haben bereits den Standard Pass? Upgrade für $20.
24h self-service refund·No subscription, no auto-renewal·Access through 31 Dec 2026. See refund policy.