Base URL
https://api.sportsapipro.com/v2/football
This is not the official Fantasy Premier League game. These endpoints serve our own fantasy
product, which spans multiple competitions (Premier League, Champions League, World Cup and
others). Prices, points and ownership here are our fantasy values, not official FPL values.We do not provide official FPL prices or price changes, official FPL gameweek/season points,
official selected-by percentage, official transfers in/out, bonus points or BPS, ICT Index or its
components, or chance-of-playing/availability status. Source those from the official Fantasy
Premier League service; take the underlying football performance data from our
match and player
endpoints.
Fantasy IDs are NOT player IDs. You must first discover the fantasy ID using
/api/players/{playerId}/fantasy/competitions (see Player Endpoints → Fantasy), then use the returned fantasyId with the endpoints below.Discovery flow:- Get the regular player ID via search or lineups
- Call
GET /api/players/{playerId}/fantasy/competitions - Extract the
fantasyIdfrom the response - Use that
fantasyIdin the endpoints below
Fantasy Endpoints
Fantasy Player Details
GET /api/fantasy/player/{fantasyId}
player object contains exactly:
| Field | Meaning |
|---|---|
price | Our fantasy price (not the official FPL price) |
ownedCount, ownedPercentage, ownedRank | Our fantasy ownership |
adds, drops | Transfers in/out within our fantasy game |
totalScore, totalScoreRank | Our fantasy season points |
averageScore, averageScoreRank | Our fantasy points per game |
form, formRank | Recent fantasy form |
position, totalPlayersOnPosition | Position code (G/D/M/F) and pool size |
goals, assists | Season goals and assists |
averageRating, averageRatingRank | Average performance rating |
hasLeftCompetition | Whether the player has left the competition |
id, player, team | Fantasy ID plus nested player and team objects |
number
required
Fantasy player ID (NOT the regular player ID). Discover via
/api/players/{playerId}/fantasy/competitions.Fantasy Player Fixtures
GET /api/fantasy/player/{fantasyId}/fixtures
Player of the Season
Highest Ratings
GET /api/player-of-the-season/highest-ratings
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/player-of-the-season/highest-ratings (lists trimmed to 2 items).{
"success": true,
"data": {
"playerOfTheSeasons": [
{
"rating": 9.5521739130435,
"appearances": 23,
"year": 2025,
"uniqueTournament": {
"name": "Latvian Women's League",
"slug": "sieviesu-futbola-liga",
"category": {
"name": "Latvia",
"slug": "latvia",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 0,
"id": 163,
"flag": "latvia",
"alpha2": "LV",
"fieldTranslations": {
"nameTranslation": {
"ar": "لاتفيا",
"ru": "Латвия"
},
"shortNameTranslation": {}
}
},
"userCount": 265,
"liveActivityEnabled": false,
"id": 23108,
"displayInverseHomeAwayTeams": false,
"fieldTranslations": {
"nameTranslation": {
"ar": "دوري السيدات اللاتفي",
"ru": "Лига женщин Латвии"
},
"shortNameTranslation": {}
}
},
"season": {
"name": "2025",
"year": "2025",
"editor": false,
"id": 73303
},
"player": {
"name": "Alexxis Sierra Lipsey",
"firstName": "Alexxis Sierra",
"lastName": "Lipsey",
"slug": "alexxis-sierra-lipsey",
"shortName": "A. S. Lipsey",
"position": "F",
"jerseyNumber": "20",
"userCount": 1141,
"gender": "F",
"id": 2167608,
"fieldTranslations": {
"nameTranslation": {
"ar": "ألكسيس سييرا ليبسي",
"ru": "Алексис Сиерра Липси"
},
"shortNameTranslation": {
"ar": "أ. ليبسي",
"ru": "А. Липси"
}
}
},
"team": {
"name": "Riga FC",
"slug": "riga-fc",
"shortName": "Riga",
"gender": "F",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 3017,
"nameCode": "RFC",
"disabled": false,
"national": false,
"type": 0,
"id": 556978,
"teamColors": {
"primary": "#374df5",
"secondary": "#374df5",
"text": "#ffffff"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "ريغا إف سي",
"ru": "Рига ФК"
},
"shortNameTranslation": {
"ru": "Рига"
}
}
}
}
],
"hasNextPage": true
}
}
Available Years
GET /api/player-of-the-season/available-years
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/player-of-the-season/available-years (lists trimmed to 2 items).{
"success": true,
"data": {
"years": [
2026,
2025
]
}
}
Most Awards (Paginated)
GET /api/player-of-the-season/most-awards?page={page}
number
default:"0"
Page number for pagination (0-indexed).
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/player-of-the-season/most-awards?page=0 (lists trimmed to 2 items).{
"success": true,
"data": {
"mostAwardedPlayers": [
{
"player": {
"name": "Lionel Messi",
"slug": "lionel-messi",
"shortName": "L. Messi",
"position": "F",
"jerseyNumber": "10",
"userCount": 3055627,
"gender": "M",
"id": 12994,
"fieldTranslations": {
"nameTranslation": {
"ar": "ليونيل ميسي",
"bn": "লিওনেল মেসি",
"hi": "लियोनेल मेसी",
"ru": "Лионель Месси"
},
"shortNameTranslation": {
"ar": "ل. ميسي",
"bn": "এল. মেসি",
"hi": "एल. मेसी",
"ru": "Л. Месси"
}
}
},
"totalAwards": 19
},
{
"player": {
"name": "James Tavernier",
"firstName": "James",
"lastName": "Tavernier",
"slug": "james-tavernier",
"shortName": "J. Tavernier",
"position": "D",
"jerseyNumber": "2",
"userCount": 1818,
"gender": "M",
"id": 126074,
"fieldTranslations": {
"nameTranslation": {
"ar": "جميس تافيرنير",
"bn": "জেমস ট্যাভার্নিয়ার",
"hi": "जेम्स टैवर्नियर",
"ru": "Джеймс Тавернье"
},
"shortNameTranslation": {
"ar": "ج. تافيرنير",
"bn": "জে. ট্যাভার্নিয়ার",
"hi": "जे. टैवर्नियर",
"ru": "Д. Тавернье"
}
}
},
"totalAwards": 6
}
],
"hasNextPage": true
}
}
Top Competitions
GET /api/player-of-the-season/top-competitions
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/player-of-the-season/top-competitions (lists trimmed to 2 items).{
"success": true,
"data": {
"topCompetitions": [
{
"uniqueTournament": {
"name": "UEFA Champions League",
"slug": "uefa-champions-league",
"primaryColorHex": "#062b5c",
"secondaryColorHex": "#086aab",
"category": {
"name": "Europe",
"slug": "europe",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 19,
"id": 1465,
"flag": "europe",
"fieldTranslations": {
"nameTranslation": {
"ar": "أوروبا",
"bn": "ইউরোপ",
"hi": "यूरोप",
"ru": "Европа"
},
"shortNameTranslation": {}
}
},
"userCount": 1219487,
"liveActivityEnabled": true,
"id": 7,
"displayInverseHomeAwayTeams": false,
"fieldTranslations": {
"nameTranslation": {
"ar": "دوري أبطال أوروبا",
"bn": "উয়েফা চ্যাম্পিয়ন্স লীগ",
"hi": "यूईएफए चैंपियंस लीग",
"hr": "UEFA Liga prvaka",
"ro": "UEFA Champions League",
"ru": "Лига чемпионов УЕФА"
},
"shortNameTranslation": {}
}
},
"topPlayers": [
{
"rating": 8.08,
"appearances": 10,
"year": 2026,
"uniqueTournament": {
"name": "UEFA Champions League",
"slug": "uefa-champions-league",
"primaryColorHex": "#062b5c",
"secondaryColorHex": "#086aab",
"category": {
"name": "Europe",
"slug": "europe",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 19,
"id": 1465,
"flag": "europe",
"fieldTranslations": {
"nameTranslation": "...",
"shortNameTranslation": "..."
}
},
"userCount": 1219487,
"liveActivityEnabled": true,
"id": 7,
"displayInverseHomeAwayTeams": false,
"fieldTranslations": {
"nameTranslation": {
"ar": "دوري أبطال أوروبا",
"bn": "উয়েফা চ্যাম্পিয়ন্স লীগ",
"hi": "यूईएफए चैंपियंस लीग",
"hr": "UEFA Liga prvaka",
"ro": "UEFA Champions League",
"ru": "Лига чемпионов УЕФА"
},
"shortNameTranslation": {}
}
},
"season": {
"name": "UEFA Champions League 25/26",
"year": "25/26",
"editor": false,
"id": 76953
},
"player": {
"name": "Lamine Yamal",
"slug": "lamine-yamal",
"shortName": "L. Yamal",
"position": "M",
"jerseyNumber": "10",
"userCount": 2504066,
"gender": "M",
"id": 1402912,
"fieldTranslations": {
"nameTranslation": {
"ar": "لامين يامال",
"bn": "লামিন ইয়ামাল",
"hi": "लामिन यमल",
"ru": "Ламин Ямаль"
},
"shortNameTranslation": {
"ar": "لامين يامال",
"bn": "লামিন ইয়ামাল",
"hi": "लामिन यमल",
"ru": "Л. Ямаль"
}
}
},
"team": {
"name": "FC Barcelona",
"slug": "barcelona",
"shortName": "Barcelona",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 8201983,
"nameCode": "BAR",
"disabled": false,
"national": false,
"type": 0,
"id": 2817,
"teamColors": {
"primary": "#154284",
"secondary": "#9d1009",
"text": "#9d1009"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "برشلونة",
"bn": "বার্সেলোনা",
"hi": "बार्सिलोना",
"ru": "Барселона"
},
"shortNameTranslation": {}
}
}
}
]
}
]
}
}
Example Requests
# Step 1: Discover fantasy ID from player ID
curl -X GET "https://api.sportsapipro.com/v2/football/players/839956/fantasy/competitions" \
-H "x-api-key: YOUR_API_KEY"
# Step 2: Use the fantasyId from the response
curl -X GET "https://api.sportsapipro.com/v2/football/fantasy/player/49002/fixtures" \
-H "x-api-key: YOUR_API_KEY"
# Player of the Season — no discovery needed
curl -X GET "https://api.sportsapipro.com/v2/football/player-of-the-season/highest-ratings" \
-H "x-api-key: YOUR_API_KEY"
// Step 1: Get fantasy ID
const fantasyComps = await fetch(
'https://api.sportsapipro.com/v2/football/players/839956/fantasy/competitions',
{ headers: { 'x-api-key': 'YOUR_API_KEY' } }
).then(r => r.json());
const fantasyId = fantasyComps.fantasyId; // extract from response
// Step 2: Get fantasy fixtures
const fixtures = await fetch(
`https://api.sportsapipro.com/v2/football/fantasy/player/${fantasyId}/fixtures`,
{ headers: { 'x-api-key': 'YOUR_API_KEY' } }
).then(r => r.json());
import requests
headers = {'x-api-key': 'YOUR_API_KEY'}
# Step 1: Get fantasy ID
fantasy_comps = requests.get(
'https://api.sportsapipro.com/v2/football/players/839956/fantasy/competitions',
headers=headers
).json()
fantasy_id = fantasy_comps['fantasyId'] # extract from response
# Step 2: Get fantasy fixtures
fixtures = requests.get(
f'https://api.sportsapipro.com/v2/football/fantasy/player/{fantasy_id}/fixtures',
headers=headers
).json()