Premier League API - Football Stats
Pricing
from $0.01 / 1,000 results
Premier League API - Football Stats
Access Premier League football statistics, fixtures, standings, player data & match results. Historical data & real-time updates for sports analytics.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Maintained by CommunityActor stats
0
Bookmarked
20
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Features
Share
Premier League API
Live English Premier League data: the league table, fixtures, results, clubs and squads, top scorers and assist leaders, match details (lineups, goals, cards, team stats, betting line) and head-to-head records.
No API key needed. Data comes live from ESPN's free public feed on every run. The current season is 2026/27, and past seasons are available with the season input.
Quick Start
League table (this is the default input):
{"task": "standings"}
Upcoming fixtures for one club:
{"task": "fixtures","team": "Arsenal","maxResults": 10}
Last season's results for a club:
{"task": "matches","team": "Liverpool","season": 2025}
Head-to-head between two clubs:
{"task": "head_to_head","team": "Arsenal","opponent": "Chelsea"}
Tasks
| Task | What you get |
|---|---|
standings | Full 20-club table: position, played, won, drawn, lost, goals for and against, goal difference, points, last-five form, qualification zone, crest |
fixtures | With no filters: upcoming matches, soonest first. With filters (team, matchday, dateFrom, dateTo, status, season): every matching match with scores, half-time score, venue and attendance |
matches | With no filters: latest results, most recent first. With filters: a compact list of matching matches |
teams | All clubs in the league with ESPN ids, short names, abbreviations, crests and colors |
team_details | One club: squad (position, shirt number, age, nationality, height, weight), record, table position, home ground, last five results and next five fixtures |
scorers | Top scorers and top assist providers (up to 50 each), optionally for one club |
match | One match by matchId: lineups and formations, substitutes, goals with scorer and assist, cards, team statistics (possession, shots, corners and more), attendance, betting line when ESPN has one |
head_to_head | Last five meetings between two clubs in all competitions, with a win/draw/loss tally. Give matchId, or team + opponent |
injury_report | Not available. No free source publishes Premier League injury data, so this task returns an explanatory error row and is not charged |
Each run returns one dataset item: { task, success, isSampleData, timestamp, source, data }. If a request fails (for example an unknown club name), the item has success: false and an error message, and no task event is charged.
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
task | string | standings | What to fetch (see table above) |
team | string | - | Club name or abbreviation, e.g. Arsenal, Man City, LIV |
teamId | integer | - | ESPN club id, e.g. 359 Arsenal, 364 Liverpool, 382 Manchester City. Run the teams task for the full list |
opponent / opponentTeamId | string / integer | - | Second club for head_to_head |
matchId | integer | - | ESPN match id from the fixtures or matches output |
season | integer | current | Season start year: 2026 = 2026/27, 2025 = 2025/26 |
matchday | integer | - | 1 to 38. ESPN does not publish matchday numbers, so this is each club's Nth league match of the season |
dateFrom, dateTo | string | - | YYYY-MM-DD |
status | string | - | SCHEDULED, LIVE, IN_PLAY, PAUSED, FINISHED, POSTPONED, CANCELLED, SUSPENDED |
maxResults | integer | 50 | Cap on matches or players returned |
apiKey | string | - | Optional Football-Data.org key, see below |
demoMode | boolean | false | Return fixed 2024/25 sample data instead of live data |
webhookUrl | string | - | POST the result to Zapier, Make, n8n or your own endpoint |
Optional: Football-Data.org key
You do not need a key. If you already use Football-Data.org and pass your own apiKey, the actor reads from Football-Data.org instead of ESPN. That source adds official matchday numbers, referees and longer head-to-head history. With a key, teamId and matchId must be Football-Data.org ids (57 Arsenal, 64 Liverpool).
Demo mode
demoMode: true returns a small fixed sample from the 2024/25 season so you can see the output shape. Sample items are marked isSampleData: true with a notice, and no task event is charged. Demo mode is off by default.
Pricing
Pay per event:
| Event | When it is charged | Price |
|---|---|---|
| Actor start | Once when the run starts, one event per GB of memory (minimum one). At the default 1 GB of memory that is $0.10 per run | $0.10 per GB |
| Match Fetched | Per match data fetched | $0.01 |
| Player Fetched | Per player stats fetched | $0.01 |
| Standings Fetched | Per standings table fetched | $0.02 |
| Result | Each item written to the default dataset | $0.00001 |
Task events are never charged for demo mode, for errors, or for injury_report.
Data notes
- Source: ESPN's public site API, fetched fresh on every run.
- Club and match ids are ESPN ids. They differ from Football-Data.org ids used by earlier versions of this actor.
- Past seasons: set
season(for example 2024 for 2024/25) to get that season's table, results and squads. Older seasons can have gaps in lineup and stat detail. - Matchday numbers are estimated (see
matchday). Rescheduled matches can showmatchday: null.
Troubleshooting
"team id 64 is not a Premier League club in ESPN ids": you used a Football-Data.org id without a Football-Data.org key. Use the club name ("team": "Liverpool") or the ESPN id from the teams task.
Empty fixtures list: your filters matched nothing, for example a date range during an international break. The run still succeeds, totalMatching is 0, and no task event is charged.
injury_report error: expected. Injury data is not available from any free source.
Built by John Rippy | Actor Arsenal