Pro Data

أدخل أرقام النموذج في شيفرتك خلال دقائق

156,421

نقاط بيانات

13,507 سجل عبر 13 مجموعات بيانات، حتى 148 حقل لكل منها: كل قيمة مولّدة من النموذج أو منسّقة يدوياً، وتُعاد بناؤها من المصدر يومياً. تصفّحها هنا مجاناً، أو اسحبها كلها عبر API بمفتاح مجاني.

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

كل احتمالية للمنتخبات الـ 48 والمباريات الـ 104، والتشكيلات المتوقعة، وإحصائيات مسيرة اللاعبين موسماً بموسم، والنتائج الأخيرة، والسجل التاريخي الذي يغذّي النموذج: بصيغة JSON أو CSV، أو كأداة MCP يمكن لمساعدك استدعاؤها. مصمّم للباحثين، ولاعبي الفانتازي، والصحفيين، وفرق التحليل الذين يريدون مخرجات النموذج في خط معالجة بدلاً من صفحة. جرّب نقطة وصول مباشرة أدناه بأمر واحد: بدون تسجيل.

متاح الآن في الوصول المبكر· تحميل ZIP الكامل + التقسيم التاريخي متاح · دفاتر ملاحظات قابلة للتكرار ومخرجات WC2018/WC2022 قادمة قبل الانطلاق

البداية السريعة

جرّبه الآن: بدون تسجيل

شغّل هذا. يُعيد أعلى خمسة مرشحين للفوز بالبطولة مباشرة من النموذج المباشر: بدون حساب، بدون مفتاح API. أضف ?format=csv للنسخة الجدولية.

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

تريد الصورة الكاملة: جميع المنتخبات الـ 48، وكل مباراة، واللاعبين، والتشكيلات؟ سجّل الدخول، أنشئ مفتاح API (10 استدعاء مجاني للبدء)، ومرّره كرمز Bearer على أي نقطة وصول:

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

جرّبه مجاناً: 10 استدعاء

سجّل الدخول و أنشئ مفتاح API 10 استدعاء برمجي مجاني، مشترك عبر نقاط REST هذه وخادم MCP المستضاف: كافٍ لربط البيانات بدفتر ملاحظات أو مساعد ورؤيتها تعمل. مصافحة MCP لا تُحتسب، فقط استدعاءات البيانات. Pro Pass غير محدود.

13 مجموعات بيانات، كل منها متاح تحت /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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد · 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.

    يُعيد 11 source JSONs + manifest (size, sha256 & built_at per file) · includes the deep fixture-enrichment blobs the per-endpoint variants flatten away

كيفية الوصول

كل مجموعة بيانات أعلاه محمية باستثناء /api/v1/sample/ المعاينة العامة. استخدم مفتاح Bearer API أو ملف تعريف ارتباط جلسة Pro للمصادقة. كل ما يخص استخراج البيانات أدناه.

  • CSV variant on every endpoint

    متاح

    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

    متاح

    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)

    متاح

    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

    متاح

    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

    متاح

    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

    متاح

    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

    قريباً

    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

    قريباً

    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.

أمثلة

ثلاثة أشياء يمكنك فعلها اليوم

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

ابنِ على البيانات

اسحب اللقطة، وابنِ نموذجك الخاص

تحميل ZIP الكامل يتضمن كل ما يُعرض على الموقع: التوقعات، والمباريات، والتشكيلات المتوقعة، والمواجهات المباشرة، وتاريخ البطولات الدولية الكبرى. ثلاث وصفات للبدء بإدخالها في دفتر ملاحظات وتشغيل تحليلك الخاص.

1 · حمّل اللقطة في pandas

اسحب ملف ZIP، واستخرجه مرة واحدة، ثم اقرأ كل ملف كـ DataFrame. مغلّف التوقعات يحتوي على صف واحد لكل منتخب: افرده باستخدام 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 · ابنِ نموذج احتمالية فوز أساسي

ابنِ نموذج H/D/A الخاص بك من التشكيلات المتوقعة + توقعات الفريق. التقييمات التركيبية + مجموع قوة التشكيلة نقطة انطلاق معقولة. قارن مع الاحتمالات المنشورة لترى أين يتفق نموذجك وأين يختلف.

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 · عايِر نموذجك مقابل التوقعات المنشورة

بمجرد أن يُنتج نموذجك احتمالات فوز على مستوى المنتخبات، قارنها بتوقعاتنا عبر Brier score ومخطط الموثوقية: المقياس ذاته الذي نستخدمه في وثائق المنهجية.

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 للاستخدام البحثي: ابنِ، واختبر رجعياً، وانشر نتائجك. ذكر المصدر إلى وثيقة المنهجية مقدّر لكنه غير مطلوب.

المساعدات

اربط Claude أو Cursor أو أي عميل MCP

خادم Model Context Protocol مستضاف في /api/mcp يكشف كل نقطة وصول كأداة MCP، فتستطيع طرح أسئلة على النموذج المباشر داخل مساعدك مباشرة: بدون تثبيت، بدون شيفرة ربط. استخدم مفتاح API للمصادقة. أي حساب مسجّل يمكنه إنشاء مفتاح، وأول 10 استدعاء مجاني.

أضفه إلى Claude Code

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 للوصول غير المحدود

كل حساب يحصل على 10 استدعاء مجاني لتجربة API + MCP. Pro Pass شراء لمرة واحدة بـ $35 للوصول غير المحدود: كل ما في Standard Pass إضافة إلى نقاط البيانات، وتحميل ZIP الكامل، والتقسيم التاريخي للبطولات. دفاتر ملاحظات قابلة للتكرار تصل قبل الانطلاق. تملك Standard Pass بالفعل؟ قم بالترقية بـ $20.

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