Football data API

Football API for live scores, fixtures and standings

A REST JSON football data API covering 117 leagues and cups in 41 countries and regions. Live scores every minute, lineups, match events and statistics, with a free plan of 2,000 requests per day.

117
Leagues & cups
41
Countries & regions
32,000+
Fixtures
4,800+
Teams
100,000+
Match events
200,000+
Player match records

What the football API returns

Every data type sits behind its own endpoint, so you request only what a screen needs

Live scores

Scores, status and the current minute, refreshed every minute while matches are played. A WebSocket feed pushes updates without polling.

Fixtures and schedules

Every match on a date with kickoff time, status, scores and the competition stage, from group matches to knockout rounds.

League standings

Full tables with played, won, drawn, lost, goals for and against, goal difference, points and recent form for each team.

Match events

Goals, assists, yellow and red cards and substitutions, each with the player, team side and minute.

Lineups and player stats

Starters, substitutes, shirt numbers, captains and minutes played, plus shots, passes and tackles per player where detailed data exists.

Team match statistics

Shots, shots on target, fouls, passes, pass accuracy, tackles, saves and yellow cards for both teams in a match.

Top scorers, assists and cards

Ranked lists for each league: top scorers, most assists and most yellow and red cards.

Head to head

Previous meetings between any two teams, with scores and dates, for match previews.

Teams, squads and trophies

Team profiles with stadium and city, current squad lists and trophy history.

Football API endpoints

All endpoints use GET and return JSON. Base URL: https://sportapi.ai/api

EndpointReturns
GET /fixtures/date/{YYYY-MM-DD}All matches on a date with status, scores, teams and competition
GET /fixtures/{id}One match: score, status, stage, penalties and venue
GET /fixtures/{id}/eventsGoals, assists, cards and substitutions with minutes
GET /fixtures/{id}/lineupsStarters and substitutes with positions and minutes played
GET /fixtures/{id}/statsTeam statistics: shots, passes, tackles, fouls, saves
GET /fixtures/h2h/{team1}/{team2}Head-to-head history of two teams
GET /standings/{league_id}League table with points, goal difference and form
GET /leaguesAll competitions, grouped by country
GET /leagues/{id}/topscorersTop scorers (also /topassists and /topcards)
GET /teams/{id}Team profile (also /squad and /trophies)
GET /players/{slug}Player profile with season and career statistics

Full reference with parameters and examples →

Make your first request in minutes

Create an account, generate a key in your dashboard and send it in the X-Api-Key header. The response structure is the same for every league, so one parser covers all competitions.

  • JSON responses for every endpoint
  • API key in the X-Api-Key header
  • Live status with the current minute
  • The same structure for every league
Full API docs →
RequestResponse
GET https://sportapi.ai/api/fixtures/date/2026-10-07
GET https://sportapi.ai/api/fixtures/5664768/lineups
GET https://sportapi.ai/api/fixtures/5664768/stats

X-Api-Key: YOUR_API_KEY

Works with any language

Plain HTTP and JSON, so any language, framework or tool can call it

⌨️cURL
🐘PHP
🟢Node.js
🐍Python
☕Java
💎Ruby
🦀Rust
🔷Go
Free football API plan

Start free, upgrade when traffic grows

Every plan includes all endpoints and all leagues. The free plan gives you 2,000 requests per day (up to 14,000 per month) and one API key, enough to build and test a livescore widget, a standings page or a top-scorers table.

Paid plans raise the daily limit and the number of keys and have no monthly cap. The daily limit applies per key and resets every day at 00:00 UTC.

Create a free account →
Requests per day, per key
Free2,000
Starter10,000
Pro50,000
Business200,000

Football API pricing

All plans include every endpoint and every league

Free
Free
2,000 requests/day
  • All endpoints
  • All leagues & cups
  • Live scores & fixtures
  • Match events & lineups
  • 1 API key
Get started free
Starter
$10/mo
10,000 requests/day
  • All endpoints
  • All leagues & cups
  • Live scores & fixtures
  • Match events & lineups
  • 1 API key
Subscribe
Business
$50/mo
200,000 requests/day
  • All endpoints
  • All leagues & cups
  • Live scores & fixtures
  • Match events & lineups
  • 10 API keys
Subscribe

About the SportAPI football API

SportAPI is a football API for developers who need structured match data without stitching together several sources. It is a REST JSON service that covers football (soccer) only: fixtures, live scores, standings, teams, players, match events, lineups and match statistics. It suits livescore apps, fantasy games, club websites, bots and analytics dashboards.

What data the football API returns

The football data API is organised into fixtures, leagues, teams, players and standings. Every endpoint is a plain GET request that returns JSON, so it parses in any language. A fixture object carries the match id, date and time, status (Scheduled, LIVE, HT, FT, AET, PENS), current minute, home and away teams, scores and the competition stage. Because every match state uses the same fields, your interface needs no special cases. The endpoint reference lists every parameter.

Live scores and match events

A livescore API is only useful if it is fresh. SportAPI refreshes live scores every minute while matches are played. Goals, assists, yellow and red cards and substitutions are stored as match events with the player, team side and minute. Lineups, assists, cards and player statistics are added within about an hour after the final whistle.

If you do not want to poll, connect to the WebSocket endpoint at wss://sportapi.ai/ws?key=YOUR_API_KEY. It pushes score updates to your client, typically 30 to 60 seconds after a goal. You can also watch the same data on the live scores page.

Fixtures, standings and football stats API

The football fixtures API returns every match on a given date, and single-match endpoints give you events, lineups and statistics. The football standings API returns the full table: position, played, won, drawn, lost, goals for and against, goal difference, points and recent form. Each league table on this site is built from the same data.

The football stats API gives team statistics per match: shots, shots on target, shots off target, fouls, passes, pass accuracy, tackles, tackle success, saves and yellow cards. Player match records add minutes played, goals, assists, shots, chances created and tackles. Top scorers, top assists and most cards are available for each league, and head-to-head history for any two teams.

Football API coverage

The API covers 117 leagues and cups in 41 countries and regions, with more than 4,800 teams, 32,000 fixtures, 25,000 players and 100,000 match events. Coverage includes the Premier League, La Liga, Serie A, Bundesliga, Ligue 1, Eredivisie, the Champions League, Europa League and Conference League, the UEFA and Concacaf Nations Leagues, MLS, Liga MX, the Brazilian Serie A, the Saudi Pro League and the J1 League. Lower English divisions, domestic cups, women's competitions and national team matches are included as well. See the coverage page for the full list.

Detailed data depends on the source. Lineups, assists, cards and player statistics exist for competitions that our data source covers in detail. For some smaller competitions you get the score, status and goals only.

Get started in three steps

First, create a free account on the sign-up page with your email or Google and create a key under My Access. Keys start with sk_live_. Second, send the key in the X-Api-Key header. Third, call an endpoint:

curl "https://sportapi.ai/api/fixtures/date/2026-10-08" \
  -H "X-Api-Key: YOUR_API_KEY"

The live demo lets you try endpoints with your key before you write any code. Keep the key on your server, not in browser code.

Free football API plan and paid plans

The free football API plan costs nothing and allows 2,000 requests per day (14,000 per month) with one key. Starter is $10 per month for 10,000 requests per day, Pro is $25 for 50,000 requests and three keys, and Business is $50 for 200,000 requests and ten keys. All plans include every endpoint and league. The limit applies per key and resets at 00:00 UTC. Every call counts as one request, including calls that return an error, and the API answers HTTP 429 once the limit is reached. Compare the options on the pricing page.

Over the last 30 days the median response time was about 22 ms, and most requests were answered in under 100 ms.

What the football API does not do

SportAPI does not provide betting odds, expected goals (xG), possession percentages or player photos, and it covers football only. There are no official SDKs or webhooks yet, and no uptime guarantee. If your product needs those, plan to add another source. For scores, fixtures, standings, events and basic match statistics, it is a complete and simple foundation.

Football API: frequently asked questions

Is there a free football API plan, and what are its limits? −

Yes. The free plan costs $0 and allows 2,000 requests per day, up to 14,000 per month, with one API key. It includes all endpoints and all leagues. The limit resets every day at 00:00 UTC, and the API answers with HTTP 429 once it is reached. Every call counts as one request, including calls that return an error.

How do I authenticate with the football API? +

Create an account, generate a key under My Access in your dashboard and send it in the X-Api-Key HTTP header with every request. Keys start with sk_live_. The base URL is https://sportapi.ai/api. Keep the key on your server rather than in browser code.

What format does the football API return? +

Every endpoint returns JSON over REST using GET requests. The structure is the same for every league and competition, so one parser works everywhere.

How fresh are the live scores? +

Live scores are refreshed every minute while matches are played. Lineups, assists, cards and player statistics are added within about an hour after the final whistle. WebSocket updates arrive roughly 30 to 60 seconds after a goal.

Which leagues does the football API cover? +

It covers 117 leagues and cups in 41 countries and regions, including the Premier League, La Liga, Serie A, Bundesliga, Ligue 1, the Champions League, MLS, lower English divisions, domestic cups, women's competitions and national team matches. The coverage page lists every competition.

Does the football API include betting odds? +

No. SportAPI does not provide odds, expected goals or possession percentages. It provides scores, fixtures, standings, match events, lineups and match statistics.

Are lineups and player statistics available for every match? +

No. They are available for matches in competitions that our data source covers in detail. For some smaller competitions, such as several domestic cups and lower leagues, only the score, status and goals are available.

Can I get live updates without polling? +

Yes. Connect to the WebSocket endpoint wss://sportapi.ai/ws?key=YOUR_API_KEY. It pushes live score updates to your client, typically 30 to 60 seconds after a goal, which reduces the number of requests you need to make.

Start building with the football API today

Free plan with 2,000 requests per day and 14,000 per month. All endpoints and leagues included.

Get your API key →