Last Update:3/23/2025
The Fantasy Premier League (FPL) API provides access to a dataset covering the Premier League season including player statistics, team details, fixtures, FPL manager profiles, and league standings. This documentation is designed to help developers integrate the API into their projects.
The FPL API is a publicly accessible RESTful API that delivers real-time and historical data. No authentication is required.
All API requests are made relative to the following base URL:
All API requests are made relative to the following base URL:
[<https://fantasy.premierleague.com/api/>](<https://fantasy.premierleague.com/api/>)
The FPL API requires no authentication. It’s fully public.
/bootstrap-static/
https://fantasy.premierleague.com/api/bootstrap-static/
GET
Response Structure:
Field | Type | Description |
---|---|---|
events |
Array | List of gameweek objects with details like deadlines and scores. |
game_settings |
Object | Game rules and configuration (e.g., budget limits, squad sizes). |
phases |
Array | Seasonal phases (e.g., monthly segments) with start and end gameweeks. |
teams |
Array | Premier League team details, including strength ratings. |
total_players |
Integer | Total number of registered FPL managers. |
elements |
Array | Player data, including stats, costs, and availability. |
element_stats |
Array | Metadata for player statistics (e.g., goals scored, assists). |
element_types |
Array | Player position types (e.g., Goalkeeper, Midfielder) with squad selection rules. |
Sample Response (abbreviated):
{
"events": [
{
"id": 1,
"name": "Gameweek 1",
"deadline_time": "2023-08-11T18:00:00Z",
"average_entry_score": 45,
"finished": true,
"data_checked": true,
"highest_scoring_entry": 12345,
"deadline_time_epoch": 1691784000,
"is_previous": false,
"is_current": false,
"is_next": true
}
],
"game_settings": {
"league_join_private_max": 20,
"squad_total_spend": 1000,
"squad_min_play": 3,
"squad_max_play": 5
},
"phases": [
{
"id": 1,
"name": "August",
"start_event": 1,
"stop_event": 3
}
],
"teams": [
{
"id": 1,
"name": "Arsenal",
"short_name": "ARS",
"strength": 4,
"strength_attack_home": 1230,
"strength_attack_away": 1180
}
],
"total_players": 9876543,
"elements": [
{
"id": 1,
"first_name": "Erling",
"second_name": "Haaland",
"web_name": "Haaland",
"team": 1,
"element_type": 3,
"now_cost": 140,
"total_points": 234,
"status": "a"
}
],
"element_stats": [
{
"name": "goals_scored",
"label": "Goals Scored",
"abbreviation": "G"
}
],
"element_types": [
{
"id": 1,
"plural_name": "Goalkeepers",
"plural_name_short": "GKP",
"squad_min_play": 1,
"squad_max_play": 2
}
]
}
/element-summary/{element_id}/
https://fantasy.premierleague.com/api/element-summary/123/
GET
element_id
.element_id
(required, integer): The unique ID of the player (found in /bootstrap-static/
).Response Structure:
Field | Type | Description |
---|---|---|
history | Array | Player's performance stats for each gameweek in the current season. |
history_past | Array | Player's performance stats from previous seasons. |
fixtures | Array | Upcoming fixtures for the player's team. |
Sample Response:
{
"history": [
{
"element": 123,
"fixture": 456,
"opponent_team": 5,
"total_points": 6,
"minutes": 90,
"goals_scored": 2,
"assists": 0,
"bonus": 3,
"bps": 36
}
],
"history_past": [
{
"season_name": "2022/23",
"total_points": 210,
"minutes": 2845,
"goals_scored": 27
}
],
"fixtures": [
{
"id": 789,
"event": 5,
"team_h": 3,
"team_a": 7,
"is_home": true,
"difficulty": 3,
"kickoff_time": "2023-09-16T15:00:00Z"
}
]
}
/fixtures/
https://fantasy.premierleague.com/api/fixtures/
GET
?event=5
).?team=3
).?future=1
).Response Structure:
Field | Type | Description |
---|---|---|
id |
Integer | Unique fixture identifier. |
event |
Integer | Gameweek ID. |
team_h |
Integer | Home team ID. |
team_a |
Integer | Away team ID. |
team_h_score |
Integer | Home team score (null if not yet played). |
team_a_score |
Integer | Away team score (null if not yet played). |
stats |
Array | Match statistics (e.g., goals, assists). |
kickoff_time |
String | UTC timestamp of match start. |
difficulty |
Object | Difficulty ratings for home and away teams. |
Sample Response:
[
{
"id": 1,
"event": 5,
"team_h": 3,
"team_a": 7,
"team_h_score": null,
"team_a_score": null,
"stats": [
{
"identifier": "goals_scored",
"h": [{"value": 2, "element": 123}],
"a": [{"value": 1, "element": 456}]
}
],
"kickoff_time": "2023-09-16T15:00:00Z",
"finished": false,
"difficulty": {
"home": 3,
"away": 4
}
}
]
/entry/{manager_id}/
https://fantasy.premierleague.com/api/entry/12345/
GET
Response Structure:
| --- | --- | --- |
Sample Response:
{
"id": 12345,
"joined_time": "2023-07-01T12:34:56Z",
"started_event": 1,
"favourite_team": 11,
"player_first_name": "John",
"player_last_name": "Doe",
"summary_overall_points": 567,
"summary_event_points": 78,
"current_event": 5,
"name": "John's Team"
}
/entry/{manager_id}/history/
https://fantasy.premierleague.com/api/entry/12345/history/
GET
Response Structure:
| --- | --- | --- |
Sample Response:
{
"current": [
{
"event": 5,
"points": 78,
"total_points": 567,
"rank": 123456,
"overall_rank": 1234567,
"bank": 15,
"value": 1034,
"event_transfers": 2,
"event_transfers_cost": 4
}
],
"past": [
{
"season_name": "2022/23",
"total_points": 2345,
"rank": 456789
}
]
}
/entry/{manager_id}/event/{gw}/picks/