OpenFoot API Review 2026
OpenFoot API is a football data API for fixtures, results, standings, lineups, match events and shot-level xG. A free plan gives 5,000 requests a month, and paid plans run $14 and $39.
OpenFoot API at a Glance
Streaming from: Developer, $14/mo (SSE stream and webhooks)
Green = available Β· amber = unverified or varies by plan Β· crossed out = not available. Pricing: π² β $20/mo up to π²π²π²π²π² = $1,000+/mo. From our directory research.
What OpenFoot API Is
OpenFoot API is a football data API built for developers and AI agents. It returns fixtures, results, standings, lineups, match events and shot maps as normalized JSON, with stable ids and named sources on every response. You call it over REST with a Bearer key, and a 15-tool MCP server wraps the same data for Claude and Cursor.
The service is in beta, and the OpenAPI spec says it carries no uptime SLA. In exchange you get a free plan that covers the whole catalog. For other football and multi-sport feeds, compare it in our sports data API guide.
Coverage and Data Types
The catalog lists 120 competitions (we called /v1/competitions with the public demo key on 5 November 2026). It runs from the top five European leagues and the UEFA cups to the Eredivisie, SΓΌper Lig, Major League Soccer and small associations such as Malta and Andorra. Each entry carries its source and licence.
- Fixtures, results and standings: all 120 competitions, including home and away splits and five-match form.
- Lineups and match events: the top five leagues and the Champions League, plus a best-effort set of 70 or more others.
- xG and shot maps: shot coordinates, shot types and per-shot xG for the Premier League, La Liga, Bundesliga, Serie A and Ligue 1, per the pricing page.
- Context: Elo, rest days, head-to-head and model fair odds.
The top five leagues keep 17 seasons of history. Coverage varies by competition, so check the coverage page before you build.
What Makes OpenFoot API Different
The honesty about availability stands out. A match with no published shot map returns a 404 with feature_not_available, and a plan-gated endpoint returns a 403 with plan_upgrade_required. You never get an empty result that you have to guess about. Every response lists its upstream sources and licences under meta.sources.
It also pushes. Developer and Pro plans add a Server-Sent Events stream for goal alerts and status changes within about a minute, and signed webhooks with HMAC-SHA256. The service says its typical response time is 250 to 800 ms from Europe, so treat it as a scores and analytics feed, not a trading feed. The "fair odds" are model outputs from team strength, not bookmaker prices. For real prices, add a source from our sports odds API guide.
OpenFoot API Pricing and Plans
The Community plan is free, with 5,000 requests a month and 60 a minute, and covers fixtures, scores, standings, search and the competition catalog (checked November 2026). It needs no card. Developer costs $14 a month, or $140 a year, for 250,000 requests and 100 a minute, and adds lineups, events, xG shot maps, odds benchmarks, SSE and webhooks. Pro costs $39 a month, or $390 a year, for 2 million requests and 250 a minute, with edge caching, commercial use and priority email support. Enterprise is custom.
There are no automatic overages. When you spend the quota, requests return 429 until the 1st of the month (UTC) or until you upgrade. A request counts once your key is checked, even when it returns a 404 or an empty list.
Getting an API Key
Open the pricing page, sign in, and create a Community key. It costs nothing, needs no card, and the docs say it takes about a minute (checked November 2026). The key appears in your dashboard, and a new key replaces a leaked one when you rotate it there. Raw keys start with of_live_.
Send the key as Authorization: Bearer of_live_.... Every endpoint needs one. To try a call first, the docs publish a demo key, of_demo_openfootapi_docs, that returns capped results at 30 requests a minute per address. Developer ($14 a month) and Pro ($39 a month) keys work the same way.
A First Request in Python
This sample calls GET /v1/matches for finished Bundesliga fixtures, with the key as a Bearer token (from the docs, checked November 2026). We ran the same call with the public demo key on 5 November 2026 and got a data list back.
import os
import requests
resp = requests.get(
"https://openfootapi.com/v1/matches",
headers={"Authorization": f"Bearer {os.environ['OPENFOOT_API_KEY']}"},
params={"competition": "comp_bundesliga_de", "status": "finished", "limit": 3},
timeout=15,
)
resp.raise_for_status()
for m in resp.json()["data"]:
score = m["score"]
print(m["kickoffAt"], m["homeTeam"]["name"], score["home"], score["away"], m["awayTeam"]["name"])
Each match carries an id, a kickoffAt time in UTC, homeTeam and awayTeam objects with a name, and a score with home and away. Fixtures work on the free plan. The meta object lists the sources and the plan that served the call.
Rate Limits, Docs and SDKs
The monthly quota and the per-minute limit rise with the plan (checked November 2026):
- Community: 5,000 requests a month, 60 a minute.
- Developer: 250,000 a month, 100 a minute.
- Pro: 2,000,000 a month, 250 a minute.
Quotas reset on the 1st of the month (UTC). When you spend yours, calls return 429 with monthly_quota_exceeded, and nothing bills over. A request counts even when it returns a 404 or an empty list. The docs show code in cURL, TypeScript, Python, Go, Rust and PHP, and the OpenAPI 3.1 spec is public. We found no official SDK, status page or changelog. The MCP server is openfoot-mcp on npm. Support goes to openfoot@pm.me.
Who OpenFoot API Is For
- Hobby and app developers who want fixtures and tables for many leagues from a free key.
- Analysts who want shot-level xG and lineups for the top five leagues.
- AI agent builders who want a football MCP server with explicit unavailable states.
If you need live prices or tick-level latency, pair it with an odds feed. If your league sits outside the top five, check its flags in the catalog first.
Verdict
OpenFoot API is a good fit for football projects that need breadth on a small budget. The free plan is real, the paid plans are cheap, and the data says plainly when it is missing. Make a free key at openfootapi.com, run a fixtures call, then upgrade only when you need lineups or xG.
Last updated: Β· How providers get listed
Frequently Asked Questions
OpenFoot API Alternatives
Similar providers from the directory worth shortlisting alongside OpenFoot API.
Want football data without the plumbing?
Create a free Starter key for 5,000 requests a month, or try a call first with the public demo key from the docs.
Are You the Team Behind OpenFoot API?
Show developers you're independently listed on SportsAPIs.dev. Copy this badge onto your site. It links straight back to this profile.