Pro Data

Modelin sayılarını dakikalar içinde kodunuza alın

156,421

veri noktası

13 veri setinde 13,507 kayıt, her birinde 148 alana kadar: her değer model tarafından üretilmiş veya düzenlenmiş ve her gün kaynaktan yeniden oluşturulmuş. Burada ücretsiz gezinin; ücretsiz bir anahtarla hepsini API aracılığıyla çekin.

48 nations1,215 players8,964 player-seasons958 match results

48 ülke ve 104 maç için her olasılık, tahmini kadrolar, sezon sezon oyuncu kariyerleri, son sonuçlar ve modeli besleyen tarihsel kayıtlar: JSON veya CSV olarak ya da asistanınızın çağırabileceği bir MCP aracı olarak. Araştırmacılar, fantezi oyuncuları, gazeteciler ve model çıktısını sayfa yerine bir veri hattında isteyen analiz ekipleri için tasarlandı. Aşağıda tek komutla canlı bir uç noktayı deneyin, kayıt gerekmez.

Erken erişimle yayında· Toplu zip ve geçmiş dilimleme yayında · Tekrarlanabilir not defterleri ve WC2018/WC2022 geriye dönük çıktılar başlama vuruşu öncesinde geliyor

Hızlı başlangıç

Şimdi deneyin, kayıt gerekmez

Bunu çalıştırın. Canlı modelden en olası beş turnuva şampiyonunu doğrudan döndürür: hesap yok, API anahtarı yok. Tablo formatı için ekleyin: ?format=csv .

curl "https://onthepitch.now/api/v1/sample/"

Tam resmi ister misiniz: 48 takım, her maç, oyuncular, kadrolar? Giriş yapın, bir API anahtarı oluşturun (10 başlangıç için ücretsiz çağrı) ve herhangi bir uç noktada Bearer token olarak iletin:

curl -H "Authorization: Bearer otp_live_…" \
  "https://onthepitch.now/api/v1/forecast/"

Ücretsiz deneyin: 10 çağrı

Giriş yapın ve bir API anahtarı oluşturun 10 bu REST uç noktalarında ve barındırılan MCP sunucusunda paylaşılan ücretsiz programlı çağrı: verileri bir not defterine veya asistana bağlamak ve çalıştığını görmek için yeterli. MCP el sıkışması sayılmaz; yalnızca veri çağrıları sayılır. Pro Pass sınırsızdır.

13 veri seti, her biri şu adreste erişilebilir: /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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür · 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.

    Döndürür 11 source JSONs + manifest (size, sha256 & built_at per file) · includes the deep fixture-enrichment blobs the per-endpoint variants flatten away

Nasıl erişirsiniz

Yukarıdaki her veri seti, herkese açık olan /api/v1/sample/ ön izleme dışında kısıtlıdır. Bearer API anahtarı veya Pro oturum çerezi ile kimlik doğrulayın; verileri çekmenin diğer ayrıntıları aşağıdadır.

  • CSV variant on every endpoint

    Yayında

    Pass ?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

    Yayında

    Every 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)

    Yayında

    GET /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

    Yayında

    Pass ?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

    Yayında

    Generate 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

    Yayında

    A 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

    Yakında

    Pre-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

    Yakında

    Jupyter 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.

Örnekler

Bugün yapabileceğiniz üç şey

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

Veriler üzerine geliştirin

Anlık görüntüyü çekin, kendi modelinizi kurun

Toplu zip, sitenin gösterdiği her şeyi içerir: tahmin, maçlar, tahmini kadrolar, karşılıklı istatistikler, uluslararası büyük turnuva geçmişi. Verileri bir not defterine alıp kendi analizinizi yapmak için üç başlangıç tarifi.

1 · Anlık görüntüyü pandas'a yükleyin

Zip dosyasını çekin, bir kez açın, her dosyayı DataFrame olarak okuyun. Tahmin zarfı takım başına bir satır içerir; şununla düzleştirin: 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 · Temel bir galibiyet olasılığı modeli kurun

Tahmini kadrolar ve takım tahmininden kendi G/B/M modelinizi oluşturun. Bileşik puanlar ve kadro güç toplamı makul bir başlangıç özellik setidir; modelinizin yayımlanan olasılıklarla nerede örtüştüğünü ve nerede ayrıştığını karşılaştırın.

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 · Modelinizi yayımlanan tahminle kalibre edin

Modeliniz takım düzeyinde turnuva şampiyonluğu olasılıkları ürettiğinde, Brier score ve güvenilirlik grafiği aracılığıyla bizimkiyle karşılaştırın: yöntem belgelerimizde kullandığımız aynı metrik.

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"]))

Pass lisansı araştırma kullanımı içindir: modelleyin, geriye dönük test yapın, bulgularınızı yayımlayın. Kaynak olarak şuraya atıf: yöntem belgesi takdir edilir ancak zorunlu değildir.

Asistanlar

Claude, Cursor veya herhangi bir MCP istemcisini bağlayın

Barındırılan bir Model Context Protocol sunucusu, şu adreste: /api/mcp her uç noktayı bir MCP aracı olarak sunar; böylece canlı modele asistanınızın içinden doğrudan soru sorabilirsiniz: kurulum yok, bağlantı kodu yok. Bir API anahtarı ile kimlik doğrulayın; giriş yapmış her hesap bir tane oluşturabilir ve ilk 10 araç çağrınız ücretsizdir.

Claude Code'a ekle

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

Sınırsız erişim için Pro Pass'ı alın

Her hesaba API ve MCP'yi denemek için 10 ücretsiz çağrı verilir. Pro Pass, sınırsız erişim için tek seferlik $35 satın alımıdır: Standard Pass'taki her şeye ek olarak veri uç noktaları, toplu zip indirme ve geçmiş turnuva dilimleme. Tekrarlanabilir not defterleri başlama vuruşu öncesinde gelecek. Zaten Standard Pass'ınız var mı? $20 ile yükseltin.

24h self-service refund·No subscription, no auto-renewal·Access through 31 Dec 2026. See refund policy.