Football Fixtures API: Scores, Results and League Table avatar

Football Fixtures API: Scores, Results and League Table

Pricing

from $0.70 / 1,000 matches

Go to Apify Store
Football Fixtures API: Scores, Results and League Table

Football Fixtures API: Scores, Results and League Table

Football fixtures, scores and results per league and season as one row per match, plus a computed league table and last 5 results per team. Public domain openfootball data, no login. $1.00 per 1,000 matches.

Pricing

from $0.70 / 1,000 matches

Rating

0.0

(0)

Developer

Don Mangu

Don Mangu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 days ago

Last modified

Categories

Share

Get football fixtures, scores and results by league and season as one row per match, for $1.00 per 1,000 matches.

Add the leagues and seasons you need, filter by status, dates or team, and get the round, date, kickoff time, home and away team, full time score, half time score and status. The Actor also computes the league table and the last 5 results per team from the same file, at no extra charge. The data comes from the public domain openfootball project. You need no login and no API key.

Sample output

One row per match. These are real rows from the 2026-27 Premier League, newest first, read on 6 October 2026:

DateRoundHomeScoreAwayStatus
2026-09-20Matchday 5Fulham FC1-1Manchester United FCfinished
2026-09-20Matchday 5Manchester City FC5-3Sunderland AFCfinished
2026-09-20Matchday 5Leeds United FC0-0Crystal Palace FCfinished
2026-09-20Matchday 5AFC Bournemouth0-1Liverpool FCfinished
2026-09-19Matchday 5Nottingham Forest FC0-1Coventry City FCfinished

The first row in full:

{
"league": "en.1",
"competition": "English Premier League 2026/27",
"season": "2026-27",
"round": "Matchday 5",
"date": "2026-09-20",
"time": "16:30",
"homeTeam": "Fulham FC",
"awayTeam": "Manchester United FC",
"status": "finished",
"homeGoals": 1,
"awayGoals": 1,
"result": "D",
"halfTimeHomeGoals": 0,
"halfTimeAwayGoals": 0,
"extraTimeHomeGoals": null,
"extraTimeAwayGoals": null,
"penaltiesHomeGoals": null,
"penaltiesAwayGoals": null,
"sourceUrl": "https://raw.githubusercontent.com/openfootball/football.json/master/2026-27/en.1.json"
}

The league table is saved as the LEAGUE_TABLE record in the key-value store of the run. This is the top of the same run, after 5 matchdays:

{ "position": 1, "team": "Manchester City FC", "played": 5, "won": 5, "drawn": 0, "lost": 0, "goalsFor": 13, "goalsAgainst": 5, "goalDifference": 8, "points": 15 }

The FORM record holds the last 5 results per team, for example "form": "WWWWL" for Arsenal, with the date, opponent, venue and score of each match.

How to get football fixtures and scores

  1. Click Try for free. No API key or proxy is needed.
  2. In Leagues, add league codes such as en.1 (Premier League) or de.1 (Bundesliga), one per line.
  3. In Seasons, add seasons such as 2026-27.
  4. Optionally set Status, Date from, Date to, Teams and Max matches.
  5. Click Start, open the Overview view for the matches, and open LEAGUE_TABLE and FORM in the key-value store.

You can also call it from your own code with the Apify API, run it on a schedule, or connect it to Make, Zapier or n8n.

Leagues and seasons

The Actor reads one file per league and season from the openfootball project. These codes had a file on 6 October 2026:

CodeLeagueSeasons checked
en.1, en.2, en.3, en.4English Premier League, Championship, League One, League Two2025-26 (en.1 and en.2 also 2026-27, en.1 from 2010-11)
de.1, de.2Bundesliga, 2. Bundesliga2025-26 (de.1 also 2026-27 and 2010-11)
es.1, es.2La Liga, Segunda Division2025-26 (es.1 also 2026-27)
it.1, it.2Serie A, Serie B2025-26 (it.1 also 2026-27)
fr.1, fr.2Ligue 1, Ligue 22025-26 (fr.1 also 2026-27)
nl.1, pt.1Eredivisie, Primeira Liga2025-26 and 2026-27
tr.1, at.1, be.1, sco.1, gr.1Turkey, Austria, Belgium, Scotland, Greece2025-26
br.1Brasileiro Serie A2025 and 2026 (calendar year seasons)
ar.1, jp.1, cn.1Argentina, Japan, China2025

This list comes from the codes I tested, so other codes may exist. A league and season without a file returns one free status row.

What you get

  • One row per match with round, date, kickoff time, home team, away team, status and goals.
  • Half time goals, and extra time and penalty goals where the file lists them.
  • The status finished, scheduled, postponed or canceled.
  • A computed league table (football standings): played, won, drawn, lost, goals for, goals against, goal difference and points.
  • The last 5 results per team as a form string such as WWDLW, oldest first, with the form points.
  • Filters by status, date range and team name, and a sort order of oldest or newest first.

Pricing

You pay per match row returned. The price is $1.00 per 1,000 matches, which is $0.001 per match. Apify also charges a start event of $0.00005 per GB of run memory, which is $0.0000125 at the default 256 MB. Apify platform usage is included. The league table and the form are free.

ExampleMatchesCost
20 matches of one league20$0.02
One Premier League season (380 matches)380$0.38
Five top leagues, one season each (en.1, de.1, es.1, it.1, fr.1)1,752$1.75

Status rows for a league or season without a file, or for filters that match nothing, are free. Paid plans get lower prices per match as your Apify plan tier goes up.

Input

{
"leagues": ["en.1"],
"seasons": ["2026-27"],
"status": "finished",
"dateFrom": "2026-09-01",
"teams": ["Arsenal"],
"includeTable": true,
"sortOrder": "desc",
"maxMatches": 20
}

leagues and seasons are required. At most 20 league and season files are read per run. status is all, finished or scheduled. teams keeps a match when the home or away name contains the text. maxMatches defaults to 1,000 and you pay for each row returned. Dates use the format YYYY-MM-DD. If you set dateTo, the table and the form count matches up to that date, so you can get a table as of any day.

Output fields

FieldMeaning
league, competition, seasonThe league code, the competition name from the file and the season
round, date, timeRound name, match date and the kickoff time as listed in the file (no time zone is given). time is null when the file has none
homeTeam, awayTeamTeam names as written in the file
statusfinished, scheduled, postponed or canceled on match rows. not_found, source_error or no_matching_matches on free status rows
homeGoals, awayGoals, resultFull time goals, and H, D or A. Null until the match is finished
halfTimeHomeGoals, halfTimeAwayGoalsHalf time goals when listed
extraTime..., penalties...Extra time and penalty goals when listed
sourceUrlThe openfootball file the row came from

FAQ

The data comes from the openfootball project, whose football.json repository states that the data is public domain and free to use. The Actor reads a few small files and sends one request at a time with a pause, to keep the load on GitHub low. Check that your own use follows the laws and terms that apply to you.

Does it cover soccer results as well?

Yes. Football and soccer are the same game, and the Actor returns the results of the leagues listed above. Names such as Premier League or Bundesliga appear as the league code and the competition name.

Which data is not included?

There are no live scores, no odds and no player statistics. Only team names appear, no player names. Only the leagues that exist in the openfootball repository are available. The files are updated about once a day for the current season, so a result can appear some hours after the match.

How is the league table computed?

From finished league matches in the file, with 3 points for a win and 1 for a draw. Teams are ordered by points, goal difference, goals for and then team name. Official rules can differ, for example by head to head. Rounds named Playoffs are left out. The table is a computed view and not an official standing.

Why did a league return a not_found row?

The league code or the season has no file. Check the code in the list above and the season format, for example 2026-27, or 2026 for calendar year leagues such as br.1.

What if the data host limits a request?

The Actor retries failed requests up to 3 times with a pause. If the host still refuses, you get a free status row for that file and the other files still return rows.

  • RSS Feed Reader turns RSS and Atom feeds, such as club news feeds, into JSON rows.

About this Actor

I built this Actor as an independent developer. It is not affiliated with or endorsed by the openfootball project or by any league or club. Data comes from the public domain openfootball football.json files. If this saved you time, a rating helps others find it.