Football Charts

สถิติฟุตบอลสำหรับ 93 ลีกในรูปแบบเครื่องมือ MCP: ตารางคะแนน ผลการแข่งขัน โปรแกรมการแข่งขัน ช่วงเวลาการทำประตู ความน่าจะเป็นจากโมเดล และการคาดการณ์ฤดูกาล คีย์ฟรี

เอกสาร

Free football data API & MCP server — 93 leagues

Results, fixtures, league tables, goal timing, a public baseline model and Monte Carlo season projections for 93 leagues in 42 countries — including the lower divisions most sources skip. Plain JSON over REST, or ten tools for Claude and other assistants via MCP. No key needed to start.

1 · Add it to Claude — nothing to install, no key

The hosted endpoint works in the claude.ai web and mobile apps, which no local server can. Keyless tier: 300 requests/day per IP. The URL carries no secret, so it is safe in configs and logs. The API runs on an always-on paid instance: no cold starts, warm responses in about 0.1 s.

claude.ai (web or mobile) — Settings → Connectors → Add custom connector

https://mcp.football-charts.com/mcp
Download the latest footballcharts-mcp-x.y.z.mcpb and open it:
https://github.com/ddevetak/footballcharts-mcp/releases/latest
claude mcp add football-charts -- npx -y footballcharts-mcp

Any MCP client — claude_desktop_config.json style

{ "mcpServers": { "football-charts": {
    "command": "npx", "args": ["-y", "footballcharts-mcp"] } } }

Then ask: “Who leads the Estonian league?”, “When does Liverpool score most?”, “Can Hull stay up?”. Every tool is read-only. The model is a public baseline that does not beat the bookmaker market; the get_track_record tool is the proof.

2 · Need more? A free key gives 5,000 requests/day

Same data, higher limits (5,000/day, 60/min). All leagues, current + previous season. No odds — probabilities and results only. With a key the connector URL becomes https://mcp.football-charts.com/fc_your_key/mcp and stdio installs set FC_API_KEY.

3 · MCP with a key

claude.ai on web or mobile — add a custom connector

Settings → Connectors → Add custom connector

https://mcp.football-charts.com/fc_your_key/mcp

The key goes in the URL because a connector field takes only a URL. Prefer a header?POST /mcp with Authorization: Bearer works too. Keys are read-only and you can issue a new one at any time.

claude mcp add football-charts \
  -e FC_API_KEY=fc_your_key \
  -- npx -y footballcharts-mcp
{
  "mcpServers": {
    "football-charts": {
      "command": "npx",
      "args": ["-y", "footballcharts-mcp"],
      "env": { "FC_API_KEY": "fc_your_key" }
    }
  }
}

4 · Plain REST — no key needed

curl https://footballcharts-backend.onrender.com/api/v1/leagues/premier/table/
# with a key: -H "Authorization: Bearer fc_your_key"
import requests

r = requests.get("https://footballcharts-backend.onrender.com/api/v1/leagues/premier/projection/")
# with a key: headers={"Authorization": "Bearer fc_your_key"}
print(r.json())

The MCP server is open source: github.com/ddevetak/footballcharts-mcp · npm package footballcharts-mcp

MCP tools

about_football_chartsWhat the source covers and how to use it — call first when unsure
list_leaguesAll 93 leagues + available seasons
get_league_tableStandings: points, W/D/L, goals, form; view=luck or goals
get_resultsFinished matches: FT/HT scores, first-goal minute
get_fixturesUpcoming matches with model probabilities
get_matchOne match: full probability block across markets
get_season_projectionTitle / top-4 / relegation %, points ranges (10k sims, daily)
get_teamOne team: match log, goal timing, stats
get_goal_timingGoals per 15-minute bin, per team (team filter)
get_track_recordOur settled public prediction ledger

REST endpoints

Base URL: https://footballcharts-backend.onrender.com/api/v1 — the API also describes itself at GET /api/v1/.

GET /leagues/all leagues + the seasons you can query
GET /leagues/{league}/table/?season=&view=standings (classic | luck | goals)
GET /leagues/{league}/results/?season=&team=finished matches
GET /leagues/{league}/fixtures/upcoming with model probabilities
GET /leagues/{league}/projection/Monte Carlo season projection
GET /leagues/{league}/goal-timing/?season=goal-timing heat map
GET /leagues/{league}/teams/?season=teams in table order
GET /leagues/{league}/teams/{team}/?season=team page
GET /matches/{slug}/match detail
GET /track-record/settled prediction ledger

Times are UTC. Every date and time in the API is UTC, and finished matches also carry kickoff_utc (ISO 8601, e.g. 2026-08-29T13:30:00Z). The site itself shows kickoffs in Central European time.

Changelog · 13 Oct 2026: kickoff times of finished matches corrected to UTC, and kickoff_utc added. Before this date a finished match's time was the source's local clock (Central European until July 2026, UK time since), not UTC.

Pricing

Four things. The plans change what the API returns (history) and how much you may call; the archive is a download.

Free

€0

  • · All 90+ leagues
  • · Current + previous season
  • · Probabilities, projections, results, tables
  • · Keyless 300/day per IP · free key 5,000/day
  • · Attribution required

Free to use. If it helps your project, you can support it ☕

Personal

€9 / month · or €99 / year

  • · Every season back to 2020, all 90+ leagues
  • · The same endpoints and the same JSON — one flag on your key
  • · No code change: your existing ?season= calls just stop returning 403
  • · Results, tables, goal timings, teams · no odds
  • · 5,000 requests/day · personal and research use Choose a plan →

Register a free key first — a plan upgrades the key you already have, within a minute of checkout. Cancel any time; access runs to the end of the paid period.

Commercial

€39 / month · or €390 / year

  • · Everything in Personal
  • · 25,000 requests/day
  • · Use inside a product, app or paid service · attribution still required
  • · Invoice on request · no redistribution of raw data Choose Commercial →

Data updates once a day after the overnight run (about 06:00 UTC): results, tables and projections for yesterday's matches, fixtures a few days ahead. Not live scores.

Odds archive

€199 one-off

  • · A download, not an API — CSV + Parquet
  • · Per-bookmaker opening + closing odds, 2020-21 to 2025-26
  • · 1X2 (FT/HT), over/under ladders, Asian handicap, BTTS, correct score, HT/FT
  • · Results and goal minutes joined Coverage, samples and prices →

Terms: free for personal and research use with attribution ("Data by football-charts.com"); no resale. Numbers are probabilities from match data — statistics, not betting advice · 18+. See also our track record and methodology.