Base URL
https://api.sportsapipro.com/v2/football
/api/match/{matchId}/...
Finding Match IDs: Use
/api/live for current matches, /api/schedule/{date} for scheduled matches, or /api/search?q=team to find matches by team name. Match IDs are numeric (e.g., 14025056).Core Match Data
Get Match Details
GET /api/match/{matchId}
number
required
Numeric match ID. Discover via
/api/live, /api/schedule/{date}, or /api/search.Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052 (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"match": {
"eventState": {},
"tournament": {
"name": "Bundesliga",
"slug": "bundesliga",
"category": {
"name": "Germany",
"slug": "germany",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 8,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 30,
"flag": "germany",
"alpha2": "DE",
"fieldTranslations": {
"nameTranslation": {
"ar": "ألمانيا",
"bn": "জার্মানি",
"hi": "जर्मनी",
"ru": "Германия"
},
"shortNameTranslation": {}
}
},
"uniqueTournament": {
"name": "Bundesliga",
"slug": "bundesliga",
"primaryColorHex": "#e2080e",
"secondaryColorHex": "#8e0902",
"category": {
"name": "Germany",
"slug": "germany",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 8,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 30,
"flag": "germany",
"alpha2": "DE",
"fieldTranslations": {
"nameTranslation": {
"ar": "ألمانيا",
"bn": "জার্মানি",
"hi": "जर्मनी",
"ru": "Германия"
},
"shortNameTranslation": {}
}
},
"userCount": 571121,
"hasRounds": true,
"hasPerformanceGraphFeature": true,
"liveActivityEnabled": true,
"country": {},
"id": 35,
"hasEventPlayerStatistics": true,
"displayInverseHomeAwayTeams": false,
"fieldTranslations": {
"nameTranslation": {
"bn": "বুন্দেসলীগা",
"ar": "الدوري الألماني",
"hi": "बुंडेसलीगा",
"ru": "Бундеслига"
},
"shortNameTranslation": {}
}
},
"priority": 699,
"isGroup": false,
"competitionType": 1,
"isLive": false,
"id": 42,
"fieldTranslations": {
"nameTranslation": {
"hi": "बुंडेसलीगा",
"ar": "الدوري الألماني",
"bn": "বুন্দেসলীগা",
"ru": "Бундеслига"
},
"shortNameTranslation": {}
}
},
"season": {
"name": "Bundesliga 26/27",
"year": "26/27",
"editor": false,
"id": 97464
},
"roundInfo": {
"round": 4
},
"customId": "lbbsubb",
"status": {
"code": 100,
"description": "Ended",
"type": "finished"
},
"winnerCode": 1,
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"fieldTranslations": {
"nameTranslation": {
"ar": "هوم ديلوكس أرينا",
"hi": "होम डीलक्स एरिना",
"bn": "হোম ডিলাক্স এরিনা",
"ru": "Арена Home Deluxe"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
},
"referee": {
"name": "Daniel Schlager",
"slug": "schlager-daniel",
"yellowCards": 1305,
"redCards": 27,
"yellowRedCards": 34,
"games": 303,
"sport": {
"id": 1,
"slug": "football",
"name": "Football"
},
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 102955,
"fieldTranslations": {
"nameTranslation": {
"ar": "شلاغر، دانييل",
"bn": "শ্লেগার, ড্যানিয়েল",
"hi": "श्लेगर, डैनियल",
"ru": "Даниэль Шлагер"
},
"shortNameTranslation": {}
}
},
"homeTeam": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33904,
"manager": {
"name": "Ralf Kettemann",
"slug": "ralf-kettemann",
"shortName": "R. Kettemann",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 811325,
"fieldTranslations": {
"nameTranslation": {
"ar": "رالف كيتيمان",
"ru": "Ральф Кеттеманн"
},
"shortNameTranslation": {
"ar": "ر. كيتيمان",
"ru": "Р. Кеттеманн"
}
}
},
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"fieldTranslations": {
"nameTranslation": {
"ar": "هوم ديلوكس أرينا",
"hi": "होम डीलक्स एरिना",
"bn": "হোম ডিলাক্স এরিনা",
"ru": "Арена Home Deluxe"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
},
"nameCode": "PAD",
"class": 0,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 2561,
"fullName": "SC Paderborn 07",
"subTeams": [],
"teamColors": {
"primary": "#0000bb",
"secondary": "#0000a6",
"text": "#0000a6"
},
"foundationDateTimestamp": 486432000,
"fieldTranslations": {
"nameTranslation": {
"ar": "بادربورن",
"hi": "एससी पेडरबोर्न 07",
"ru": "Падерборн 07"
},
"shortNameTranslation": {
"ar": "بادربورن",
"bn": "প্যাডারবর্ন",
"hi": "पेडरबॉर्न",
"ru": "Падерборн 07"
}
},
"timeActive": []
},
"awayTeam": {
"name": "TSG Hoffenheim",
"slug": "tsg-hoffenheim",
"shortName": "Hoffenheim",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 115112,
"manager": {
"name": "Christian Ilzer",
"slug": "christian-ilzer",
"shortName": "C. Ilzer",
"country": {
"alpha2": "AT",
"alpha3": "AUT",
"name": "Austria",
"slug": "austria"
},
"id": 775661,
"fieldTranslations": {
"nameTranslation": {
"ar": "كريستيان إيلزر",
"bn": "ক্রিশ্চিয়ান ইলজার",
"hi": "क्रिश्चियन इल्ज़र",
"ru": "Кристиан Ильзер"
},
"shortNameTranslation": {
"ar": "ك. إيلزر",
"hi": "सी. इल्ज़र",
"bn": "সি. ইলজার",
"ru": "К. Ильзер"
}
}
},
"venue": {
"city": {
"name": "Sinsheim",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 21575
},
"venueCoordinates": {
"latitude": 49.23806,
"longitude": 8.887641
},
"hidden": false,
"slug": "prezero-arena",
"name": "PreZero Arena",
"capacity": 30150,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1089,
"fieldTranslations": {
"nameTranslation": {
"ar": "بريزيرو أرينا",
"hi": "प्रीज़ीरो एरिना",
"bn": "প্রিজিরো এরিনা",
"ru": "Арена PreZero"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "PreZero Arena",
"capacity": 30150
}
},
"nameCode": "TSG",
"class": 0,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 2569,
"fullName": "TSG Hoffenheim",
"subTeams": [],
"teamColors": {
"primary": "#1f5da6",
"secondary": "#ffffff",
"text": "#ffffff"
},
"foundationDateTimestamp": -2224886400,
"fieldTranslations": {
"nameTranslation": {
"ar": "هوفنهايم",
"hi": "TSG होफ्फेन्हेइम",
"ru": "Хоффенхайм"
},
"shortNameTranslation": {
"ar": "هوفنهايم",
"bn": "হফেনহাইম",
"hi": "हॉफेनहाइम"
}
},
"timeActive": []
},
"homeScore": {
"current": 3,
"display": 3,
"period1": 2,
"period2": 1,
"normaltime": 3
},
"awayScore": {
"current": 1,
"display": 1,
"period1": 0,
"period2": 1,
"normaltime": 1
},
"time": {
"injuryTime1": 1,
"injuryTime2": 3,
"currentPeriodStartTimestamp": 1789929188,
"lastPeriodEndTimestamp": 1789928180
},
"changes": {
"changes": [
"status.code"
],
"changeTimestamp": 1789932082
},
"hasGlobalHighlights": true,
"hasXg": true,
"hasEventPlayerStatistics": true,
"hasEventPlayerHeatMap": true,
"detailId": 1,
"crowdsourcingDataDisplayEnabled": false,
"correctAiInsight": false,
"correctHalftimeAiInsight": true,
"id": 16434052,
"defaultPeriodCount": 2,
"...": "13 more fields"
},
"data": {
"event": {
"eventState": {},
"tournament": {
"name": "Bundesliga",
"slug": "bundesliga",
"category": {
"name": "Germany",
"slug": "germany",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 8,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 30,
"flag": "germany",
"alpha2": "DE",
"fieldTranslations": {
"nameTranslation": {
"ar": "ألمانيا",
"bn": "জার্মানি",
"hi": "जर्मनी",
"ru": "Германия"
},
"shortNameTranslation": {}
}
},
"uniqueTournament": {
"name": "Bundesliga",
"slug": "bundesliga",
"primaryColorHex": "#e2080e",
"secondaryColorHex": "#8e0902",
"category": {
"name": "Germany",
"slug": "germany",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 8,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 30,
"flag": "germany",
"alpha2": "DE",
"fieldTranslations": {
"nameTranslation": {
"ar": "ألمانيا",
"bn": "জার্মানি",
"hi": "जर्मनी",
"ru": "Германия"
},
"shortNameTranslation": {}
}
},
"userCount": 571121,
"hasRounds": true,
"hasPerformanceGraphFeature": true,
"liveActivityEnabled": true,
"country": {},
"id": 35,
"hasEventPlayerStatistics": true,
"displayInverseHomeAwayTeams": false,
"fieldTranslations": {
"nameTranslation": {
"bn": "বুন্দেসলীগা",
"ar": "الدوري الألماني",
"hi": "बुंडेसलीगा",
"ru": "Бундеслига"
},
"shortNameTranslation": {}
}
},
"priority": 699,
"isGroup": false,
"competitionType": 1,
"isLive": false,
"id": 42,
"fieldTranslations": {
"nameTranslation": {
"hi": "बुंडेसलीगा",
"ar": "الدوري الألماني",
"bn": "বুন্দেসলীগা",
"ru": "Бундеслига"
},
"shortNameTranslation": {}
}
},
"season": {
"name": "Bundesliga 26/27",
"year": "26/27",
"editor": false,
"id": 97464
},
"roundInfo": {
"round": 4
},
"customId": "lbbsubb",
"status": {
"code": 100,
"description": "Ended",
"type": "finished"
},
"winnerCode": 1,
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"fieldTranslations": {
"nameTranslation": {
"ar": "هوم ديلوكس أرينا",
"hi": "होम डीलक्स एरिना",
"bn": "হোম ডিলাক্স এরিনা",
"ru": "Арена Home Deluxe"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
},
"referee": {
"name": "Daniel Schlager",
"slug": "schlager-daniel",
"yellowCards": 1305,
"redCards": 27,
"yellowRedCards": 34,
"games": 303,
"sport": {
"id": 1,
"slug": "football",
"name": "Football"
},
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 102955,
"fieldTranslations": {
"nameTranslation": {
"ar": "شلاغر، دانييل",
"bn": "শ্লেগার, ড্যানিয়েল",
"hi": "श्लेगर, डैनियल",
"ru": "Даниэль Шлагер"
},
"shortNameTranslation": {}
}
},
"homeTeam": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33904,
"manager": {
"name": "Ralf Kettemann",
"slug": "ralf-kettemann",
"shortName": "R. Kettemann",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 811325,
"fieldTranslations": {
"nameTranslation": {
"ar": "رالف كيتيمان",
"ru": "Ральф Кеттеманн"
},
"shortNameTranslation": {
"ar": "ر. كيتيمان",
"ru": "Р. Кеттеманн"
}
}
},
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"fieldTranslations": {
"nameTranslation": {
"ar": "هوم ديلوكس أرينا",
"hi": "होम डीलक्स एरिना",
"bn": "হোম ডিলাক্স এরিনা",
"ru": "Арена Home Deluxe"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
},
"nameCode": "PAD",
"class": 0,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 2561,
"fullName": "SC Paderborn 07",
"subTeams": [],
"teamColors": {
"primary": "#0000bb",
"secondary": "#0000a6",
"text": "#0000a6"
},
"foundationDateTimestamp": 486432000,
"fieldTranslations": {
"nameTranslation": {
"ar": "بادربورن",
"hi": "एससी पेडरबोर्न 07",
"ru": "Падерборн 07"
},
"shortNameTranslation": {
"ar": "بادربورن",
"bn": "প্যাডারবর্ন",
"hi": "पेडरबॉर्न",
"ru": "Падерборн 07"
}
},
"timeActive": []
},
"awayTeam": {
"name": "TSG Hoffenheim",
"slug": "tsg-hoffenheim",
"shortName": "Hoffenheim",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 115112,
"manager": {
"name": "Christian Ilzer",
"slug": "christian-ilzer",
"shortName": "C. Ilzer",
"country": {
"alpha2": "AT",
"alpha3": "AUT",
"name": "Austria",
"slug": "austria"
},
"id": 775661,
"fieldTranslations": {
"nameTranslation": {
"ar": "كريستيان إيلزر",
"bn": "ক্রিশ্চিয়ান ইলজার",
"hi": "क्रिश्चियन इल्ज़र",
"ru": "Кристиан Ильзер"
},
"shortNameTranslation": {
"ar": "ك. إيلزر",
"hi": "सी. इल्ज़र",
"bn": "সি. ইলজার",
"ru": "К. Ильзер"
}
}
},
"venue": {
"city": {
"name": "Sinsheim",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 21575
},
"venueCoordinates": {
"latitude": 49.23806,
"longitude": 8.887641
},
"hidden": false,
"slug": "prezero-arena",
"name": "PreZero Arena",
"capacity": 30150,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1089,
"fieldTranslations": {
"nameTranslation": {
"ar": "بريزيرو أرينا",
"hi": "प्रीज़ीरो एरिना",
"bn": "প্রিজিরো এরিনা",
"ru": "Арена PreZero"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "PreZero Arena",
"capacity": 30150
}
},
"nameCode": "TSG",
"class": 0,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 2569,
"fullName": "TSG Hoffenheim",
"subTeams": [],
"teamColors": {
"primary": "#1f5da6",
"secondary": "#ffffff",
"text": "#ffffff"
},
"foundationDateTimestamp": -2224886400,
"fieldTranslations": {
"nameTranslation": {
"ar": "هوفنهايم",
"hi": "TSG होफ्फेन्हेइम",
"ru": "Хоффенхайм"
},
"shortNameTranslation": {
"ar": "هوفنهايم",
"bn": "হফেনহাইম",
"hi": "हॉफेनहाइम"
}
},
"timeActive": []
},
"homeScore": {
"current": 3,
"display": 3,
"period1": 2,
"period2": 1,
"normaltime": 3
},
"awayScore": {
"current": 1,
"display": 1,
"period1": 0,
"period2": 1,
"normaltime": 1
},
"time": {
"injuryTime1": 1,
"injuryTime2": 3,
"currentPeriodStartTimestamp": 1789929188,
"lastPeriodEndTimestamp": 1789928180
},
"changes": {
"changes": [
"status.code"
],
"changeTimestamp": 1789932082
},
"hasGlobalHighlights": true,
"hasXg": true,
"hasEventPlayerStatistics": true,
"hasEventPlayerHeatMap": true,
"detailId": 1,
"crowdsourcingDataDisplayEnabled": false,
"correctAiInsight": false,
"correctHalftimeAiInsight": true,
"id": 16434052,
"defaultPeriodCount": 2,
"...": "13 more fields"
}
},
"startTime": "2026-09-20T19:30:00+02:00"
}
Get Lineups
GET /api/match/{matchId}/lineups
Availability: Only available once lineups are confirmed — typically 30–60 minutes before kick-off. Returns empty for matches further in the future.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/lineups (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "lineups",
"data": {
"confirmed": true,
"home": {
"players": [
{
"player": {
"name": "Nahuel Noll",
"slug": "nahuel-noll",
"shortName": "N. Noll",
"position": "G",
"jerseyNumber": "15",
"height": 188,
"userCount": 263,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1048651,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1047859200,
"proposedMarketValueRaw": {
"value": 1900000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "ناهيل نول",
"bn": "নাহুয়েল নোল",
"hi": "नाहुएल नोल",
"ru": "Нахуэль Ноль"
},
"shortNameTranslation": {
"ar": "ن. نول",
"bn": "এন. নোল",
"hi": "एन. नोल",
"ru": "Н. Ноль"
}
}
},
"teamId": 2561,
"shirtNumber": 15,
"jerseyNumber": "15",
"position": "G",
"substitute": false,
"statistics": {
"totalPass": 48,
"accuratePass": 17,
"totalLongBalls": 45,
"accurateLongBalls": 14,
"goalAssist": 0,
"accurateOwnHalfPasses": 6,
"totalOwnHalfPasses": 12,
"accurateOppositionHalfPasses": 11,
"totalOppositionHalfPasses": 36,
"duelWon": 1,
"totalClearance": 3,
"ballRecovery": 10,
"wasFouled": 1,
"savedShotsFromInsideTheBox": 1,
"saves": 1,
"punches": 3,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 54,
"rating": 6.7,
"possessionLostCtrl": 31,
"expectedAssists": 0.00679976,
"totalBallCarriesDistance": 138.1336455407,
"ballCarriesCount": 20,
"...": "11 more fields"
},
"minutesPlayed": 90,
"played": true
}
],
"supportStaff": [],
"formation": "3-5-2",
"playerColor": {
"primary": "121212",
"number": "f2eeed",
"outline": "121212",
"fancyNumber": "ffffff"
},
"goalkeeperColor": {
"primary": "f52c4e",
"number": "0d3d82",
"outline": "f52c4e",
"fancyNumber": "222226"
},
"missingPlayers": [
{
"player": {
"name": "Nyamekye Awortwie-Grant",
"firstName": "Nyamekye",
"lastName": "Awortwie-Grant",
"slug": "nyamekye-awortwie-grant",
"shortName": "N. Awortwie-Grant",
"position": "D",
"jerseyNumber": "4",
"height": 193,
"userCount": 32,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1407863,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 965606400,
"proposedMarketValueRaw": {
"value": 390000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "أوورتوي-غراند، نياميكي",
"ru": "Ньямекье Авортвие-Грант"
},
"shortNameTranslation": {
"ar": "ن. غراند",
"ru": "Н. Авортвие-Грант"
}
}
},
"type": "missing",
"reason": 1,
"description": "Knee Injury",
"externalType": 114,
"expectedEndDate": "2026-10-20T00:00:00+00:00"
}
]
},
"away": {
"players": [
{
"player": {
"name": "Oliver Baumann",
"slug": "oliver-baumann",
"shortName": "O. Baumann",
"position": "G",
"jerseyNumber": "1",
"height": 185,
"userCount": 1766,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 40244,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 644284800,
"proposedMarketValueRaw": {
"value": 2700000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "أوليفر بومان",
"bn": "অলিভার বাউম্যান",
"hi": "ओलिवर बाउमन",
"ru": "Оливер Бауман"
},
"shortNameTranslation": {
"ar": "أ. بومان",
"bn": "ও. বাউমান",
"hi": "ओ. बाउमन",
"ru": "О. Бауман"
}
}
},
"teamId": 2569,
"shirtNumber": 1,
"jerseyNumber": "1",
"position": "G",
"substitute": false,
"captain": true,
"statistics": {
"totalPass": 44,
"accuratePass": 38,
"totalLongBalls": 14,
"accurateLongBalls": 8,
"goalAssist": 0,
"accurateOwnHalfPasses": 35,
"totalOwnHalfPasses": 37,
"accurateOppositionHalfPasses": 3,
"totalOppositionHalfPasses": 7,
"aerialWon": 1,
"duelWon": 1,
"totalClearance": 1,
"ballRecovery": 14,
"goodHighClaim": 1,
"saves": 2,
"punches": 1,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 58,
"rating": 6.4,
"possessionLostCtrl": 7,
"expectedAssists": 0.0197772,
"totalBallCarriesDistance": 54.826209421433,
"ballCarriesCount": 10,
"...": "11 more fields"
},
"minutesPlayed": 90,
"played": true
}
],
"supportStaff": [],
"formation": "4-4-2",
"playerColor": {
"primary": "ffffff",
"number": "373eee",
"outline": "ffffff",
"fancyNumber": "222226"
},
"goalkeeperColor": {
"primary": "b0946d",
"number": "ffffff",
"outline": "b0946d",
"fancyNumber": "222226"
},
"missingPlayers": [
{
"player": {
"name": "Bernardo",
"firstName": "Bernardo Fernandes",
"lastName": "Bernardo",
"slug": "bernardo",
"shortName": "Bernardo",
"position": "D",
"jerseyNumber": "13",
"height": 186,
"userCount": 593,
"gender": "M",
"country": {
"alpha2": "BR",
"alpha3": "BRA",
"name": "Brazil",
"slug": "brazil"
},
"id": 828571,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 800409600,
"proposedMarketValueRaw": {
"value": 3700000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "برناردو",
"bn": "বার্নার্ডো",
"hi": "बर्नार्डो",
"ru": "Бернардо"
},
"shortNameTranslation": {
"ar": "برناردو",
"bn": "বার্নার্ডো",
"hi": "बर्नार्डो",
"ru": "Бернардо"
}
}
},
"type": "missing",
"reason": 1,
"description": "Achilles Tendon Injury",
"externalType": 114,
"expectedEndDate": "2026-10-10T00:00:00+00:00"
}
]
}
}
}
Get Statistics
GET /api/match/{matchId}/statistics
Availability: Available during live matches and after full-time. Not available for pre-match.
Premium-tier leagues return the full 40+ metric set (including expected goals). Verified examples: match
14288988 (Portugal Primeira Liga) and match 14053822 (Eredivisie).Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/statistics (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "statistics",
"data": {
"statistics": [
{
"period": "ALL",
"groups": [
{
"groupName": "Match overview",
"statisticsItems": [
{
"name": "Ball possession",
"home": "34%",
"away": "66%",
"compareCode": 2,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 34,
"awayValue": 66,
"renderType": 2,
"key": "ballPossession"
},
{
"name": "Distance covered",
"home": "114.0 km",
"away": "115.3 km",
"compareCode": 2,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 113.97,
"awayValue": 115.28,
"renderType": 1,
"key": "kilometersCovered"
}
]
},
{
"groupName": "Shots",
"statisticsItems": [
{
"name": "Total shots",
"home": "13",
"away": "23",
"compareCode": 2,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 13,
"awayValue": 23,
"renderType": 1,
"key": "totalShotsOnGoal"
},
{
"name": "Shots on target",
"home": "5",
"away": "2",
"compareCode": 1,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 5,
"awayValue": 2,
"renderType": 1,
"key": "shotsOnGoal"
}
]
}
]
},
{
"period": "1ST",
"groups": [
{
"groupName": "Match overview",
"statisticsItems": [
{
"name": "Ball possession",
"home": "35%",
"away": "65%",
"compareCode": 2,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 35,
"awayValue": 65,
"renderType": 2,
"key": "ballPossession"
},
{
"name": "Expected goals",
"home": "0.41",
"away": "0.36",
"compareCode": 1,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 0.41,
"awayValue": 0.36,
"renderType": 1,
"key": "expectedGoals"
}
]
},
{
"groupName": "Shots",
"statisticsItems": [
{
"name": "Total shots",
"home": "8",
"away": "6",
"compareCode": 1,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 8,
"awayValue": 6,
"renderType": 1,
"key": "totalShotsOnGoal"
},
{
"name": "Shots on target",
"home": "3",
"away": "0",
"compareCode": 1,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 3,
"awayValue": 0,
"renderType": 1,
"key": "shotsOnGoal"
}
]
}
]
}
]
}
}
Get Incidents
GET /api/match/{matchId}/incidents
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/incidents (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "incidents",
"data": {
"incidents": [
{
"text": "FT",
"homeScore": 3,
"awayScore": 1,
"isLive": false,
"time": 90,
"addedTime": 999,
"timeSeconds": 5400,
"incidentType": "period",
"reversedPeriodTime": 1,
"reversedPeriodTimeSeconds": 0,
"periodTimeSeconds": 2700
},
{
"length": 3,
"time": 90,
"addedTime": 0,
"incidentType": "injuryTime",
"reversedPeriodTime": 1
}
],
"home": {
"goalkeeperColor": {
"primary": "f52c4e",
"number": "0d3d82",
"outline": "f52c4e",
"fancyNumber": "222226"
},
"playerColor": {
"primary": "121212",
"number": "f2eeed",
"outline": "121212",
"fancyNumber": "ffffff"
}
},
"away": {
"goalkeeperColor": {
"primary": "b0946d",
"number": "ffffff",
"outline": "b0946d",
"fancyNumber": "222226"
},
"playerColor": {
"primary": "ffffff",
"number": "373eee",
"outline": "ffffff",
"fancyNumber": "222226"
}
}
}
}
Get Scores
GET /api/match/{matchId}/scores
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/scores (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"scores": {
"current": {
"home": 3,
"away": 1
},
"period1": {
"home": 2,
"away": 0
},
"period2": {
"home": 1,
"away": 1
},
"extraTime": {},
"penalties": {},
"normaltime": {
"home": 3,
"away": 1
},
"aggregated": {}
}
}
Get Referee
GET /api/match/{matchId}/referee
referee.id to call referee-specific endpoints.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/referee (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"referee": {
"name": "Daniel Schlager",
"slug": "schlager-daniel",
"yellowCards": 1305,
"redCards": 27,
"yellowRedCards": 34,
"games": 303,
"sport": {
"id": 1,
"slug": "football",
"name": "Football"
},
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 102955,
"fieldTranslations": {
"nameTranslation": {
"ar": "شلاغر، دانييل",
"bn": "শ্লেগার, ড্যানিয়েল",
"hi": "श्लेगर, डैनियल",
"ru": "Даниэль Шлагер"
},
"shortNameTranslation": {}
}
}
}
Get Venue
GET /api/match/{matchId}/venue
venue.id for venue-specific endpoints.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/venue (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"fieldTranslations": {
"nameTranslation": {
"ar": "هوم ديلوكس أرينا",
"hi": "होम डीलक्स एरिना",
"bn": "হোম ডিলাক্স এরিনা",
"ru": "Арена Home Deluxe"
},
"shortNameTranslation": {}
},
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
}
}
Match Status Codes
Every match object includes astatus.code field (numeric) and a status.description (text). Use the numeric code for programmatic logic.
| Code | Description | Meaning |
|---|---|---|
0 | Not started | Match has not kicked off yet |
6 | 1st half | First half in progress |
7 | 2nd half | Second half in progress |
31 | Halftime | Halftime break |
40 | Extra time — 1st half | First half of extra time |
41 | Extra time — 2nd half | Second half of extra time |
50 | Penalty shootout | Penalty shootout in progress |
60 | Postponed | Match postponed to a later date |
70 | Canceled | Match canceled and will not be played |
80 | Interrupted | Match interrupted (may resume) |
90 | Abandoned | Match abandoned and will not resume |
100 | Ended | Match ended in regulation (90 min + stoppage) |
110 | Ended after extra time | Match ended after 120 minutes |
120 | Ended after penalties | Match ended after penalty shootout |
Detecting regulation vs. overtime (Ronen’s question):
- Regulation ended:
status.code === 100— the match finished in normal time (90 min + stoppage). - Extra time started:
status.code === 40or41— the match is now in overtime. - Extra time ended:
status.code === 110— final result was decided in extra time. - Penalties:
status.code === 50(in progress) or120(ended after penalties).
status.code changing from 7 (2nd half) → 31 (halftime, brief break) → 40 (extra time 1st half). If it jumps from 7 → 100, regulation ended normally with no extra time.Advanced Analytics
Shotmap
GET /api/match/{matchId}/shotmap
xg (expected goals) and xgot (expected goals on target) on premium-tier competitions. Verified examples:
# Portugal Primeira Liga (uniqueTournament 238)
curl -H "x-api-key: YOUR_API_KEY" \
https://api.sportsapipro.com/v2/football/api/match/14288988/shotmap
# Eredivisie (uniqueTournament 37)
curl -H "x-api-key: YOUR_API_KEY" \
https://api.sportsapipro.com/v2/football/api/match/14053822/shotmap
Availability: Available during live matches (updates in real-time) and after full-time. Not available pre-match. Lower-tier competitions may return shots without xG values.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/shotmap (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "shotmap",
"data": {
"shotmap": [
{
"player": {
"name": "Steffen Tigges",
"firstName": "Steffen",
"lastName": "Tigges",
"slug": "steffen-tigges",
"shortName": "S. Tigges",
"position": "F",
"jerseyNumber": "27",
"userCount": 427,
"gender": "M",
"id": 826884,
"fieldTranslations": {
"nameTranslation": {
"ar": "ستيفن تيغيس",
"bn": "স্টিফেন টিগেস",
"hi": "स्टीफ़न टिग्गेस",
"ru": "Штеффен Тиггес"
},
"shortNameTranslation": {
"ar": "س. تيغيس",
"bn": "এস. টিগেস",
"hi": "एस. टिग्गेस",
"ru": "Ш. Тиггес"
}
}
},
"isHome": true,
"shotType": "miss",
"situation": "assisted",
"playerCoordinates": {
"x": 12.5,
"y": 50.5,
"z": 0
},
"bodyPart": "left-foot",
"goalMouthLocation": "left",
"goalMouthCoordinates": {
"x": 0,
"y": 69.4,
"z": 18.1
},
"xg": 0.087168015539646,
"xgot": 0,
"goalkeeper": {
"name": "Oliver Baumann",
"slug": "oliver-baumann",
"shortName": "O. Baumann",
"position": "G",
"jerseyNumber": "1",
"userCount": 1766,
"gender": "M",
"id": 40244,
"fieldTranslations": {
"nameTranslation": {
"ar": "أوليفر بومان",
"bn": "অলিভার বাউম্যান",
"hi": "ओलिवर बाउमन",
"ru": "Оливер Бауман"
},
"shortNameTranslation": {
"ar": "أ. بومان",
"bn": "ও. বাউমান",
"hi": "ओ. बाउमन",
"ru": "О. Бауман"
}
}
},
"id": 8509028,
"time": 87,
"timeSeconds": 5160,
"draw": {
"start": {
"x": 50.5,
"y": 12.5
},
"end": {
"x": 30.6,
"y": 0
},
"goal": {
"x": 30.6,
"y": 81.9
}
},
"incidentType": "shot",
"reversedPeriodTime": 4,
"reversedPeriodTimeSeconds": 240,
"periodTimeSeconds": 2460
}
]
}
}
Momentum Graph
GET /api/match/{matchId}/graph
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/graph (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "graph",
"data": {
"graphPoints": [
{
"minute": 1,
"value": -4
},
{
"minute": 2,
"value": -6
}
],
"periodTime": 45,
"overtimeLength": 15,
"periodCount": 2
}
}
Average Positions
GET /api/match/{matchId}/average-positions
Availability: Available during live matches and after full-time only.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/average-positions (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "average-positions",
"data": {
"home": [
{
"player": {
"name": "Tom Baack",
"firstName": "Tom",
"lastName": "Baack",
"slug": "tom-baack",
"shortName": "T. Baack",
"position": "M",
"jerseyNumber": "6",
"userCount": 33,
"gender": "M",
"id": 800448,
"fieldTranslations": {
"nameTranslation": {
"ar": "توم باك",
"ru": "Том Баак"
},
"shortNameTranslation": {
"ar": "ت. باك",
"ru": "Т. Баак"
}
}
},
"averageX": 50.006666666667,
"averageY": 77.08,
"pointsCount": 15
}
],
"away": [
{
"player": {
"name": "Fisnik Asllani",
"slug": "fisnik-asllani",
"shortName": "F. Asllani",
"position": "F",
"jerseyNumber": "11",
"userCount": 6424,
"gender": "M",
"id": 1010117,
"fieldTranslations": {
"nameTranslation": {
"ar": "فيسنيك أصلاني",
"bn": "ফিসনিক আসলানি",
"hi": "फ़िस्निक अस्लानी",
"ru": "Фисник Асслан"
},
"shortNameTranslation": {
"ar": "ف. أصلاني",
"bn": "এফ. আসলানি",
"hi": "एफ. अस्लानी",
"ru": "Ф. Асслан"
}
}
},
"averageX": 74.847058823529,
"averageY": 33.017647058824,
"pointsCount": 17
}
],
"substitutions": [
{
"playerIn": {
"name": "Albian Hajdari",
"firstName": "",
"lastName": "",
"slug": "albian-hajdari",
"shortName": "A. Hajdari",
"position": "D",
"jerseyNumber": "21",
"userCount": 1224,
"gender": "M",
"id": 1000269,
"fieldTranslations": {
"nameTranslation": {
"ar": "ألبان هداري",
"bn": "আলবিয়ান হাজদারী",
"hi": "अल्बियन हजदारी",
"ru": "Албиан Хадждари"
},
"shortNameTranslation": {
"ar": "أ. هداري",
"bn": "এ. হাজদারি",
"hi": "ए. हजदारी",
"ru": "А. Хадждари"
}
}
},
"playerOut": {
"name": "Mats Rots",
"slug": "mats-rots",
"shortName": "M. Rots",
"position": "D",
"jerseyNumber": "39",
"userCount": 686,
"gender": "M",
"id": 1387012,
"fieldTranslations": {
"nameTranslation": {
"ar": "ماتس روتس",
"ru": "Мац Ротс"
},
"shortNameTranslation": {
"ar": "م. روتس",
"ru": "М. Ротс"
}
}
},
"id": 126869493,
"time": 46,
"injury": false,
"isHome": false,
"incidentClass": "regular",
"incidentType": "substitution",
"reversedPeriodTime": 45
}
]
}
}
AI Insights
GET /api/match/{matchId}/ai-insights?lang={lang}
string
default:"en"
Language code for the analysis (e.g.,
en, es, de, fr, pt).Availability: Post-match only (this is the
ai-insights-postmatch variant internally). The pre-match/live ai-insights endpoint returns 403 Forbidden and is not usable. Not available for all matches — primarily top-tier competitions. Returns 404 for matches without AI analysis.Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/ai-insights?lang=en (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "ai-insights-postmatch/en",
"data": {
"predictions": {
"yellowCards": 4,
"corners": 12,
"bothTeamsToScore": true,
"homeNormaltimeScore": 0,
"awayNormaltimeScore": 1,
"winningProbability": {
"home": 18,
"draw": 22,
"away": 60
},
"possibleResultsMatrix": [
[
0.043030562572544,
0.071721256147199
],
[
0.034476170426033,
0.098394897919144
]
]
},
"sections": [
{
"subtitle": "Match context",
"text": "SC Paderborn 07 host TSG Hoffenheim at Home Deluxe Arena. Paderborn sit 16th (1 point) and seek their first league goal; Hoffenheim are 13th (3 points). The ..."
},
{
"subtitle": "Current form",
"text": "Paderborn’s league run is D1-L2 with 0 goals scored (0-0 at Mainz, 0-1 vs Freiburg, 0-3 at Dortmund). Hoffenheim’s last 5 show high shot and corner volumes, ..."
}
],
"halftimePredictions": {
"nextTeamToScore": {
"name": "TSG Hoffenheim",
"slug": "tsg-hoffenheim",
"shortName": "Hoffenheim",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 114543,
"nameCode": "TSG",
"disabled": false,
"national": false,
"type": 0,
"id": 2569,
"teamColors": {
"primary": "#1f5da6",
"secondary": "#ffffff",
"text": "#ffffff"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "هوفنهايم",
"hi": "TSG होफ्फेन्हेइम",
"ru": "Хоффенхайм"
},
"shortNameTranslation": {
"ar": "هوفنهايم",
"bn": "হফেনহাইম",
"hi": "हॉफेनहाइम"
}
}
},
"playerToScore": {
"name": "Adam Hložek",
"firstName": "Adam",
"lastName": "Hlozek",
"slug": "adam-hlozek",
"shortName": "A. Hložek",
"position": "F",
"jerseyNumber": "10",
"userCount": 3705,
"gender": "M",
"id": 963801,
"fieldTranslations": {
"nameTranslation": {
"ar": "آدم هلوزيك",
"bn": "অ্যাডাম হলোজেক",
"hi": "एडम होलोजेक",
"ru": "Адам Гложек"
},
"shortNameTranslation": {
"ar": "آ. هلوزيك",
"bn": "এ. হলোজেক",
"hi": "ए. होलोजेक",
"ru": "А. Гложек"
}
}
},
"secondHalfOverOneAndAHalfGoals": false,
"homeNormaltimeScore": 2,
"awayNormaltimeScore": 1
},
"halftimeSections": [
{
"subtitle": "Match context",
"text": "SC Paderborn 07 lead 2-0 against TSG Hoffenheim at the Home Deluxe Arena. The hosts have been direct and efficient, taking advantage of key moments, while th..."
},
{
"subtitle": "First-half summary",
"text": "Score: 2-0 (Castañeda 29', Marino 42'). Possession: Paderborn 35% – Hoffenheim 65%. Shots on target: 3-0. Expected goals: Paderborn 0.41 – Hoffenheim 0.25. C..."
}
],
"sport": {
"id": 1,
"slug": "football",
"name": "Football"
}
}
}
Team Heatmap
GET /api/match/{matchId}/heatmap/{teamId}
number
required
Numeric team ID. Get from the match details response (
homeTeam.id or awayTeam.id).Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/heatmap/2561 (lists trimmed to 2 items).{
"success": true,
"matchId": "16434052",
"endpoint": "heatmap/2561",
"data": {
"playerPoints": [
{
"x": 62.4,
"y": 79.2
},
{
"x": 62.5,
"y": 79.2
}
],
"goalkeeperPoints": [
{
"x": 19.3,
"y": 36.3
},
{
"x": 10.5,
"y": 49.2
}
]
}
}
Player-Specific
Best Players / MOTM
GET /api/match/{matchId}/best-players
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/best-players (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "best-players",
"data": {
"bestHomeTeamPlayer": {
"value": "8.1",
"label": "rating",
"player": {
"name": "Santiago Castañeda",
"firstName": "Santiago Castaneda",
"lastName": "",
"slug": "castaneda-santiago",
"shortName": "S. Castaneda",
"position": "M",
"jerseyNumber": "5",
"height": 188,
"userCount": 410,
"gender": "M",
"id": 1199101,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1100304000,
"proposedMarketValueRaw": {
"value": 5200000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "كاستانييدا، سانتياغو",
"ru": "Сантьяго Кастанеда"
},
"shortNameTranslation": {
"ar": "س. كاستانييدا",
"ru": "С. Кастанеда"
}
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561,
"teamColors": {
"primary": "#0000bb",
"secondary": "#0000a6",
"text": "#0000a6"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "بادربورن",
"hi": "एससी पेडरबोर्न 07",
"ru": "Падерборн 07"
},
"shortNameTranslation": {
"ar": "بادربورن",
"bn": "প্যাডারবর্ন",
"hi": "पेडरबॉर्न",
"ru": "Падерборн 07"
}
}
}
},
"bestAwayTeamPlayer": {
"value": "7.1",
"label": "rating",
"player": {
"name": "Albian Hajdari",
"firstName": "",
"lastName": "",
"slug": "albian-hajdari",
"shortName": "A. Hajdari",
"position": "D",
"jerseyNumber": "21",
"height": 189,
"userCount": 1224,
"gender": "M",
"id": 1000269,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1053216000,
"proposedMarketValueRaw": {
"value": 24000000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "ألبان هداري",
"bn": "আলবিয়ান হাজদারী",
"hi": "अल्बियन हजदारी",
"ru": "Албиан Хадждари"
},
"shortNameTranslation": {
"ar": "أ. هداري",
"bn": "এ. হাজদারি",
"hi": "ए. हजदारी",
"ru": "А. Хадждари"
}
}
},
"team": {
"name": "TSG Hoffenheim",
"slug": "tsg-hoffenheim",
"shortName": "Hoffenheim",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 114014,
"nameCode": "TSG",
"disabled": false,
"national": false,
"type": 0,
"id": 2569,
"teamColors": {
"primary": "#1f5da6",
"secondary": "#ffffff",
"text": "#ffffff"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "هوفنهايم",
"hi": "TSG होफ्फेन्हेइम",
"ru": "Хоффенхайм"
},
"shortNameTranslation": {
"ar": "هوفنهايم",
"bn": "হফেনহাইম",
"hi": "हॉफेनहाइम"
}
}
}
},
"leaderboard": [
{
"value": "8.1",
"label": "rating",
"player": {
"name": "Santiago Castañeda",
"firstName": "Santiago Castaneda",
"lastName": "",
"slug": "castaneda-santiago",
"shortName": "S. Castaneda",
"position": "M",
"jerseyNumber": "5",
"height": 188,
"userCount": 410,
"gender": "M",
"id": 1199101,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1100304000,
"proposedMarketValueRaw": {
"value": 5200000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "كاستانييدا، سانتياغو",
"ru": "Сантьяго Кастанеда"
},
"shortNameTranslation": {
"ar": "س. كاستانييدا",
"ru": "С. Кастанеда"
}
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561,
"teamColors": {
"primary": "#0000bb",
"secondary": "#0000a6",
"text": "#0000a6"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "بادربورن",
"hi": "एससी पेडरबोर्न 07",
"ru": "Падерборн 07"
},
"shortNameTranslation": {
"ar": "بادربورن",
"bn": "প্যাডারবর্ন",
"hi": "पेडरबॉर्न",
"ru": "Падерборн 07"
}
}
}
}
]
}
}
Award Details
GET /api/match/{matchId}/award
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/award (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "best-players/summary",
"data": {
"bestHomeTeamPlayers": [
{
"value": "8.1",
"label": "rating",
"player": {
"name": "Santiago Castañeda",
"firstName": "Santiago Castaneda",
"lastName": "",
"slug": "castaneda-santiago",
"shortName": "S. Castaneda",
"position": "M",
"jerseyNumber": "5",
"height": 188,
"userCount": 410,
"gender": "M",
"id": 1199101,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1100304000,
"proposedMarketValueRaw": {
"value": 5200000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "كاستانييدا، سانتياغو",
"ru": "Сантьяго Кастанеда"
},
"shortNameTranslation": {
"ar": "س. كاستانييدا",
"ru": "С. Кастанеда"
}
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561,
"teamColors": {
"primary": "#0000bb",
"secondary": "#0000a6",
"text": "#0000a6"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "بادربورن",
"hi": "एससी पेडरबोर्न 07",
"ru": "Падерборн 07"
},
"shortNameTranslation": {
"ar": "بادربورن",
"bn": "প্যাডারবর্ন",
"hi": "पेडरबॉर्न",
"ru": "Падерборн 07"
}
}
}
}
],
"bestAwayTeamPlayers": [
{
"value": "7.1",
"label": "rating",
"player": {
"name": "Albian Hajdari",
"firstName": "",
"lastName": "",
"slug": "albian-hajdari",
"shortName": "A. Hajdari",
"position": "D",
"jerseyNumber": "21",
"height": 189,
"userCount": 1224,
"gender": "M",
"id": 1000269,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1053216000,
"proposedMarketValueRaw": {
"value": 24000000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "ألبان هداري",
"bn": "আলবিয়ান হাজদারী",
"hi": "अल्बियन हजदारी",
"ru": "Албиан Хадждари"
},
"shortNameTranslation": {
"ar": "أ. هداري",
"bn": "এ. হাজদারি",
"hi": "ए. हजदारी",
"ru": "А. Хадждари"
}
}
},
"team": {
"name": "TSG Hoffenheim",
"slug": "tsg-hoffenheim",
"shortName": "Hoffenheim",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 114014,
"nameCode": "TSG",
"disabled": false,
"national": false,
"type": 0,
"id": 2569,
"teamColors": {
"primary": "#1f5da6",
"secondary": "#ffffff",
"text": "#ffffff"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "هوفنهايم",
"hi": "TSG होफ्फेन्हेइम",
"ru": "Хоффенхайм"
},
"shortNameTranslation": {
"ar": "هوفنهايم",
"bn": "হফেনহাইম",
"hi": "हॉफेनहाइम"
}
}
}
}
],
"leaderboard": [
{
"value": "8.1",
"label": "rating",
"player": {
"name": "Santiago Castañeda",
"firstName": "Santiago Castaneda",
"lastName": "",
"slug": "castaneda-santiago",
"shortName": "S. Castaneda",
"position": "M",
"jerseyNumber": "5",
"height": 188,
"userCount": 410,
"gender": "M",
"id": 1199101,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1100304000,
"proposedMarketValueRaw": {
"value": 5200000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "كاستانييدا، سانتياغو",
"ru": "Сантьяго Кастанеда"
},
"shortNameTranslation": {
"ar": "س. كاستانييدا",
"ru": "С. Кастанеда"
}
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561,
"teamColors": {
"primary": "#0000bb",
"secondary": "#0000a6",
"text": "#0000a6"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "بادربورن",
"hi": "एससी पेडरबोर्न 07",
"ru": "Падерборн 07"
},
"shortNameTranslation": {
"ar": "بادربورن",
"bn": "প্যাডারবর্ন",
"hi": "पेडरबॉर्न",
"ru": "Падерборн 07"
}
}
}
}
],
"playerOfTheMatch": {
"value": "8.1",
"label": "rating",
"player": {
"name": "Santiago Castañeda",
"firstName": "Santiago Castaneda",
"lastName": "",
"slug": "castaneda-santiago",
"shortName": "S. Castaneda",
"position": "M",
"jerseyNumber": "5",
"height": 188,
"userCount": 410,
"gender": "M",
"id": 1199101,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1100304000,
"proposedMarketValueRaw": {
"value": 5200000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "كاستانييدا، سانتياغو",
"ru": "Сантьяго Кастанеда"
},
"shortNameTranslation": {
"ar": "س. كاستانييدا",
"ru": "С. Кастанеда"
}
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561,
"teamColors": {
"primary": "#0000bb",
"secondary": "#0000a6",
"text": "#0000a6"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "بادربورن",
"hi": "एससी पेडरबोर्न 07",
"ru": "Падерборн 07"
},
"shortNameTranslation": {
"ar": "بادربورن",
"bn": "প্যাডারবর্ন",
"hi": "पेडरबॉर्न",
"ru": "Падерборн 07"
}
}
}
}
}
}
All Player Statistics
GET /api/match/{matchId}/player-statistics
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/player-statistics (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "lineups",
"data": {
"home": [
{
"player": {
"name": "Nahuel Noll",
"slug": "nahuel-noll",
"shortName": "N. Noll",
"position": "G",
"jerseyNumber": "15",
"height": 188,
"userCount": 263,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1048651,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1047859200,
"proposedMarketValueRaw": {
"value": 1900000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "ناهيل نول",
"bn": "নাহুয়েল নোল",
"hi": "नाहुएल नोल",
"ru": "Нахуэль Ноль"
},
"shortNameTranslation": {
"ar": "ن. نول",
"bn": "এন. নোল",
"hi": "एन. नोल",
"ru": "Н. Ноль"
}
}
},
"shirtNumber": 15,
"jerseyNumber": "15",
"position": "G",
"substitute": false,
"statistics": {
"totalPass": 48,
"accuratePass": 17,
"totalLongBalls": 45,
"accurateLongBalls": 14,
"goalAssist": 0,
"accurateOwnHalfPasses": 6,
"totalOwnHalfPasses": 12,
"accurateOppositionHalfPasses": 11,
"totalOppositionHalfPasses": 36,
"duelWon": 1,
"totalClearance": 3,
"ballRecovery": 10,
"wasFouled": 1,
"savedShotsFromInsideTheBox": 1,
"saves": 1,
"punches": 3,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 54,
"rating": 6.7,
"possessionLostCtrl": 31,
"expectedAssists": 0.00679976,
"totalBallCarriesDistance": 138.1336455407,
"ballCarriesCount": 20,
"...": "11 more fields"
}
}
],
"away": [
{
"player": {
"name": "Oliver Baumann",
"slug": "oliver-baumann",
"shortName": "O. Baumann",
"position": "G",
"jerseyNumber": "1",
"height": 185,
"userCount": 1766,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 40244,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 644284800,
"proposedMarketValueRaw": {
"value": 2700000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "أوليفر بومان",
"bn": "অলিভার বাউম্যান",
"hi": "ओलिवर बाउमन",
"ru": "Оливер Бауман"
},
"shortNameTranslation": {
"ar": "أ. بومان",
"bn": "ও. বাউমান",
"hi": "ओ. बाउमन",
"ru": "О. Бауман"
}
}
},
"shirtNumber": 1,
"jerseyNumber": "1",
"position": "G",
"substitute": false,
"statistics": {
"totalPass": 44,
"accuratePass": 38,
"totalLongBalls": 14,
"accurateLongBalls": 8,
"goalAssist": 0,
"accurateOwnHalfPasses": 35,
"totalOwnHalfPasses": 37,
"accurateOppositionHalfPasses": 3,
"totalOppositionHalfPasses": 7,
"aerialWon": 1,
"duelWon": 1,
"totalClearance": 1,
"ballRecovery": 14,
"goodHighClaim": 1,
"saves": 2,
"punches": 1,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 58,
"rating": 6.4,
"possessionLostCtrl": 7,
"expectedAssists": 0.0197772,
"totalBallCarriesDistance": 54.826209421433,
"ballCarriesCount": 10,
"...": "11 more fields"
}
}
]
}
}
Specific Player Statistics
GET /api/match/{matchId}/player/{playerId}/statistics
number
required
Numeric player ID. Get from lineups or match details.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/player/1048651/statistics (lists trimmed to 2 items).{
"success": true,
"matchId": "16434052",
"endpoint": "player/1048651/statistics",
"data": {
"player": {
"name": "Nahuel Noll",
"slug": "nahuel-noll",
"shortName": "N. Noll",
"position": "G",
"jerseyNumber": "15",
"height": 188,
"userCount": 263,
"gender": "M",
"id": 1048651,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1047859200,
"proposedMarketValueRaw": {
"value": 1900000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "ناهيل نول",
"bn": "নাহুয়েল নোল",
"hi": "नाहुएल नोल",
"ru": "Нахуэль Ноль"
},
"shortNameTranslation": {
"ar": "ن. نول",
"bn": "এন. নোল",
"hi": "एन. नोल",
"ru": "Н. Ноль"
}
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561,
"teamColors": {
"primary": "#0000bb",
"secondary": "#0000a6",
"text": "#0000a6"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "بادربورن",
"hi": "एससी पेडरबोर्न 07",
"ru": "Падерборн 07"
},
"shortNameTranslation": {
"ar": "بادربورن",
"bn": "প্যাডারবর্ন",
"hi": "पेडरबॉर्न",
"ru": "Падерборн 07"
}
}
},
"statistics": {
"totalPass": 48,
"accuratePass": 17,
"totalLongBalls": 45,
"accurateLongBalls": 14,
"goalAssist": 0,
"accurateOwnHalfPasses": 6,
"totalOwnHalfPasses": 12,
"accurateOppositionHalfPasses": 11,
"totalOppositionHalfPasses": 36,
"duelWon": 1,
"totalClearance": 3,
"ballRecovery": 10,
"wasFouled": 1,
"savedShotsFromInsideTheBox": 1,
"saves": 1,
"punches": 3,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 54,
"rating": 6.7,
"possessionLostCtrl": 31,
"expectedAssists": 0.00679976,
"totalBallCarriesDistance": 138.1336455407,
"ballCarriesCount": 20,
"totalProgression": 38.431397137822,
"progressiveBallCarriesCount": 0,
"keeperSaveValue": 0.3989,
"ratingVersions": {
"original": 6.7,
"alternative": 6.8
},
"totalShots": 0,
"goalsPrevented": -0.4454,
"passValueNormalized": 0.24,
"dribbleValueNormalized": 0.03,
"defensiveValueNormalized": -0.16,
"goalkeeperValueNormalized": 0.16,
"statisticsType": {
"sportSlug": "football",
"statisticsType": "player"
}
},
"position": "G",
"extra": null
}
}
Betting & Odds
Featured Odds
GET /api/match/{matchId}/odds?scope={scope}&provider={provider}
string
default:"featured"
featured for main markets or all for all available markets.number
default:"1"
Odds provider ID. Use
/api/odds/providers/{countryCode} to list available providers.All Odds
GET /api/match/{matchId}/odds/all
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/odds/all (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "odds/1/all",
"data": {
"markets": [
{
"sourceId": 200550969,
"structureType": 1,
"marketId": 1,
"marketName": "Full time",
"isLive": false,
"fid": 200550969,
"suspended": false,
"id": 412186335,
"marketGroup": "1X2",
"marketPeriod": "Full-time",
"choices": [
{
"initialFractionalValue": "10/3",
"fractionalValue": "29/10",
"sourceId": 2042909934,
"name": "1",
"winning": true,
"change": -1
},
{
"initialFractionalValue": "31/10",
"fractionalValue": "16/5",
"sourceId": 2042909939,
"name": "X",
"winning": false,
"change": 1
}
]
},
{
"sourceId": 200550969,
"structureType": 1,
"marketId": 2,
"marketName": "Double chance",
"isLive": false,
"fid": 200550969,
"suspended": false,
"id": 418568117,
"marketGroup": "Double chance",
"marketPeriod": "Full-time",
"choices": [
{
"initialFractionalValue": "6/5",
"fractionalValue": "19/20",
"sourceId": 2044722102,
"name": "1X",
"winning": true,
"slipContent": "/?bs=200550969-2044722102~19/20~10",
"change": -1
},
{
"initialFractionalValue": "2/11",
"fractionalValue": "1/4",
"sourceId": 2044722080,
"name": "X2",
"winning": false,
"slipContent": "/?bs=200550969-2044722080~1/4~10",
"change": 1
}
]
}
],
"eventId": 16434052,
"liveStreamUrl": null
}
}
Pre-Match Odds
GET /api/match/{matchId}/odds/pre-match
Availability: Pre-match only. Returns 404 after the match has ended.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/odds/pre-match (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "odds/1/all",
"data": {
"markets": [
{
"sourceId": 200550969,
"structureType": 1,
"marketId": 1,
"marketName": "Full time",
"isLive": false,
"fid": 200550969,
"suspended": false,
"id": 412186335,
"marketGroup": "1X2",
"marketPeriod": "Full-time",
"choices": [
{
"initialFractionalValue": "10/3",
"fractionalValue": "29/10",
"sourceId": 2042909934,
"name": "1",
"winning": true,
"change": -1
},
{
"initialFractionalValue": "31/10",
"fractionalValue": "16/5",
"sourceId": 2042909939,
"name": "X",
"winning": false,
"change": 1
}
]
},
{
"sourceId": 200550969,
"structureType": 1,
"marketId": 2,
"marketName": "Double chance",
"isLive": false,
"fid": 200550969,
"suspended": false,
"id": 418568117,
"marketGroup": "Double chance",
"marketPeriod": "Full-time",
"choices": [
{
"initialFractionalValue": "6/5",
"fractionalValue": "19/20",
"sourceId": 2044722102,
"name": "1X",
"winning": true,
"slipContent": "/?bs=200550969-2044722102~19/20~10",
"change": -1
},
{
"initialFractionalValue": "2/11",
"fractionalValue": "1/4",
"sourceId": 2044722080,
"name": "X2",
"winning": false,
"slipContent": "/?bs=200550969-2044722080~1/4~10",
"change": 1
}
]
}
],
"eventId": 16434052,
"liveStreamUrl": null
}
}
Live Odds
GET /api/match/{matchId}/odds/live
Availability: Live matches only. Returns 404 for pre-match or finished matches.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/odds/live (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "odds/1/all",
"data": {
"markets": [
{
"sourceId": 200550969,
"structureType": 1,
"marketId": 1,
"marketName": "Full time",
"isLive": false,
"fid": 200550969,
"suspended": false,
"id": 412186335,
"marketGroup": "1X2",
"marketPeriod": "Full-time",
"choices": [
{
"initialFractionalValue": "10/3",
"fractionalValue": "29/10",
"sourceId": 2042909934,
"name": "1",
"winning": true,
"change": -1
},
{
"initialFractionalValue": "31/10",
"fractionalValue": "16/5",
"sourceId": 2042909939,
"name": "X",
"winning": false,
"change": 1
}
]
},
{
"sourceId": 200550969,
"structureType": 1,
"marketId": 2,
"marketName": "Double chance",
"isLive": false,
"fid": 200550969,
"suspended": false,
"id": 418568117,
"marketGroup": "Double chance",
"marketPeriod": "Full-time",
"choices": [
{
"initialFractionalValue": "6/5",
"fractionalValue": "19/20",
"sourceId": 2044722102,
"name": "1X",
"winning": true,
"slipContent": "/?bs=200550969-2044722102~19/20~10",
"change": -1
},
{
"initialFractionalValue": "2/11",
"fractionalValue": "1/4",
"sourceId": 2044722080,
"name": "X2",
"winning": false,
"slipContent": "/?bs=200550969-2044722080~1/4~10",
"change": 1
}
]
}
],
"eventId": 16434052,
"liveStreamUrl": null
}
}
Winning Odds
GET /api/match/{matchId}/winning-odds
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/winning-odds (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "provider/1/winning-odds",
"data": {
"home": null,
"away": {
"fractionalValue": "7/10",
"expected": 59,
"actual": 63,
"id": 25469152
}
}
}
Team Streaks
GET /api/match/{matchId}/streaks
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/streaks (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "team-streaks",
"data": {
"general": [
{
"name": "No wins",
"value": "3",
"team": "home",
"continued": false
},
{
"name": "No goals scored",
"value": "3",
"team": "home",
"continued": false
}
],
"head2head": [
{
"name": "No losses",
"value": "4",
"team": "away",
"continued": false
}
]
}
}
Streaks with Odds
GET /api/match/{matchId}/streaks/odds
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/streaks/odds (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "team-streaks/betting-odds/1",
"data": {
"general": [
{
"sourceId": 200550969,
"structureType": 2,
"marketId": 20,
"marketName": "Cards in match",
"choiceGroup": "4.5",
"isLive": false,
"fid": 200550969,
"suspended": false,
"id": 420900825,
"marketGroup": "Total Cards",
"marketPeriod": "Full-time",
"choices": [
{
"initialFractionalValue": "6/5",
"fractionalValue": "11/10",
"sourceId": 15721179,
"name": "Over",
"slipContent": "/?bs=200550969-15721179~11/10~10",
"change": -1
},
{
"initialFractionalValue": "8/13",
"fractionalValue": "4/6",
"sourceId": 15721180,
"name": "Under",
"slipContent": "/?bs=200550969-15721180~4/6~10",
"change": 1
}
]
},
{
"sourceId": 200550969,
"structureType": 2,
"marketId": 20,
"marketName": "Cards in match",
"choiceGroup": "4.5",
"isLive": false,
"fid": 200550969,
"suspended": false,
"id": 420900825,
"marketGroup": "Total Cards",
"marketPeriod": "Full-time",
"choices": [
{
"initialFractionalValue": "6/5",
"fractionalValue": "11/10",
"sourceId": 15721179,
"name": "Over",
"slipContent": "/?bs=200550969-15721179~11/10~10",
"change": -1
},
{
"initialFractionalValue": "8/13",
"fractionalValue": "4/6",
"sourceId": 15721180,
"name": "Under",
"slipContent": "/?bs=200550969-15721180~4/6~10",
"change": 1
}
]
}
],
"head2head": []
}
}
Pre-Match Data
The following endpoints are pre-match only. They return 404 for live or finished matches.
Head to Head
GET /api/match/{matchId}/h2h
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/h2h (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "h2h",
"data": {
"teamDuel": {
"homeWins": 1,
"awayWins": 2,
"draws": 2
},
"managerDuel": {
"homeWins": 1,
"awayWins": 0,
"draws": 0
}
}
}
Pre-Game Form
GET /api/match/{matchId}/pregame-form
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/pregame-form (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "pregame-form",
"data": {
"homeTeam": {
"avgRating": "7.25",
"position": 16,
"value": "1",
"form": [
"D",
"L"
]
},
"awayTeam": {
"avgRating": "7.44",
"position": 13,
"value": "3",
"form": [
"L",
"L"
]
},
"label": "Pts"
}
}
Predicted Lineups
GET /api/match/{matchId}/predicted-lineups
Predicted lineups are replaced by confirmed lineups once available (typically 30–60 min before kick-off).
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/predicted-lineups (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "lineups",
"data": {
"confirmed": true,
"type": "confirmed",
"home": {
"players": [
{
"player": {
"name": "Nahuel Noll",
"slug": "nahuel-noll",
"shortName": "N. Noll",
"position": "G",
"jerseyNumber": "15",
"height": 188,
"userCount": 263,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1048651,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1047859200,
"proposedMarketValueRaw": {
"value": 1900000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "ناهيل نول",
"bn": "নাহুয়েল নোল",
"hi": "नाहुएल नोल",
"ru": "Нахуэль Ноль"
},
"shortNameTranslation": {
"ar": "ن. نول",
"bn": "এন. নোল",
"hi": "एन. नोल",
"ru": "Н. Ноль"
}
}
},
"teamId": 2561,
"shirtNumber": 15,
"jerseyNumber": "15",
"position": "G",
"substitute": false,
"statistics": {
"totalPass": 48,
"accuratePass": 17,
"totalLongBalls": 45,
"accurateLongBalls": 14,
"goalAssist": 0,
"accurateOwnHalfPasses": 6,
"totalOwnHalfPasses": 12,
"accurateOppositionHalfPasses": 11,
"totalOppositionHalfPasses": 36,
"duelWon": 1,
"totalClearance": 3,
"ballRecovery": 10,
"wasFouled": 1,
"savedShotsFromInsideTheBox": 1,
"saves": 1,
"punches": 3,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 54,
"rating": 6.7,
"possessionLostCtrl": 31,
"expectedAssists": 0.00679976,
"totalBallCarriesDistance": 138.1336455407,
"ballCarriesCount": 20,
"...": "11 more fields"
}
}
],
"supportStaff": [],
"formation": "3-5-2",
"playerColor": {
"primary": "121212",
"number": "f2eeed",
"outline": "121212",
"fancyNumber": "ffffff"
},
"goalkeeperColor": {
"primary": "f52c4e",
"number": "0d3d82",
"outline": "f52c4e",
"fancyNumber": "222226"
},
"missingPlayers": [
{
"player": {
"name": "Nyamekye Awortwie-Grant",
"firstName": "Nyamekye",
"lastName": "Awortwie-Grant",
"slug": "nyamekye-awortwie-grant",
"shortName": "N. Awortwie-Grant",
"position": "D",
"jerseyNumber": "4",
"height": 193,
"userCount": 32,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1407863,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 965606400,
"proposedMarketValueRaw": {
"value": 390000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "أوورتوي-غراند، نياميكي",
"ru": "Ньямекье Авортвие-Грант"
},
"shortNameTranslation": {
"ar": "ن. غراند",
"ru": "Н. Авортвие-Грант"
}
}
},
"type": "missing",
"reason": 1,
"description": "Knee Injury",
"externalType": 114,
"expectedEndDate": "2026-10-20T00:00:00+00:00"
}
]
},
"away": {
"players": [
{
"player": {
"name": "Oliver Baumann",
"slug": "oliver-baumann",
"shortName": "O. Baumann",
"position": "G",
"jerseyNumber": "1",
"height": 185,
"userCount": 1766,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 40244,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 644284800,
"proposedMarketValueRaw": {
"value": 2700000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "أوليفر بومان",
"bn": "অলিভার বাউম্যান",
"hi": "ओलिवर बाउमन",
"ru": "Оливер Бауман"
},
"shortNameTranslation": {
"ar": "أ. بومان",
"bn": "ও. বাউমান",
"hi": "ओ. बाउमन",
"ru": "О. Бауман"
}
}
},
"teamId": 2569,
"shirtNumber": 1,
"jerseyNumber": "1",
"position": "G",
"substitute": false,
"captain": true,
"statistics": {
"totalPass": 44,
"accuratePass": 38,
"totalLongBalls": 14,
"accurateLongBalls": 8,
"goalAssist": 0,
"accurateOwnHalfPasses": 35,
"totalOwnHalfPasses": 37,
"accurateOppositionHalfPasses": 3,
"totalOppositionHalfPasses": 7,
"aerialWon": 1,
"duelWon": 1,
"totalClearance": 1,
"ballRecovery": 14,
"goodHighClaim": 1,
"saves": 2,
"punches": 1,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 58,
"rating": 6.4,
"possessionLostCtrl": 7,
"expectedAssists": 0.0197772,
"totalBallCarriesDistance": 54.826209421433,
"ballCarriesCount": 10,
"...": "11 more fields"
}
}
],
"supportStaff": [],
"formation": "4-4-2",
"playerColor": {
"primary": "ffffff",
"number": "373eee",
"outline": "ffffff",
"fancyNumber": "222226"
},
"goalkeeperColor": {
"primary": "b0946d",
"number": "ffffff",
"outline": "b0946d",
"fancyNumber": "222226"
},
"missingPlayers": [
{
"player": {
"name": "Bernardo",
"firstName": "Bernardo Fernandes",
"lastName": "Bernardo",
"slug": "bernardo",
"shortName": "Bernardo",
"position": "D",
"jerseyNumber": "13",
"height": 186,
"userCount": 593,
"gender": "M",
"country": {
"alpha2": "BR",
"alpha3": "BRA",
"name": "Brazil",
"slug": "brazil"
},
"id": 828571,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 800409600,
"proposedMarketValueRaw": {
"value": 3700000,
"currency": "EUR"
},
"fieldTranslations": {
"nameTranslation": {
"ar": "برناردو",
"bn": "বার্নার্ডো",
"hi": "बर्नार्डो",
"ru": "Бернардо"
},
"shortNameTranslation": {
"ar": "برناردو",
"bn": "বার্নার্ডো",
"hi": "बर्नार्डो",
"ru": "Бернардо"
}
}
},
"type": "missing",
"reason": 1,
"description": "Achilles Tendon Injury",
"externalType": 114,
"expectedEndDate": "2026-10-10T00:00:00+00:00"
}
]
}
}
}
Media & Social
Highlights
GET /api/match/{matchId}/highlights
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/highlights (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "highlights",
"data": {
"highlights": [
{
"title": "Paderborn 3 - 1 Hoffenheim",
"subtitle": "Full Highlights",
"url": "https://www.youtube.com/watch?v=geNPXDBioSI",
"thumbnailUrl": "https://i.ytimg.com/vi/geNPXDBioSI/hqdefault.jpg",
"mediaType": 6,
"doFollow": false,
"keyHighlight": true,
"livestream": false,
"removeOnFinish": false,
"id": 8084963,
"createdAtTimestamp": 1789934227,
"sourceUrl": "https://www.youtube.com/watch?v=geNPXDBioSI"
}
]
}
}
Media
GET /api/match/{matchId}/media
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/media (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "media",
"data": {
"media": [
{
"title": "Paderborn 3 - 1 Hoffenheim",
"subtitle": "Full Highlights",
"url": "https://www.youtube.com/watch?v=geNPXDBioSI",
"thumbnailUrl": "https://i.ytimg.com/vi/geNPXDBioSI/hqdefault.jpg",
"mediaType": 6,
"doFollow": false,
"keyHighlight": true,
"livestream": false,
"removeOnFinish": false,
"id": 8084963,
"createdAtTimestamp": 1789934227,
"sourceUrl": "https://www.youtube.com/watch?v=geNPXDBioSI"
}
]
}
}
Media Summary
GET /api/match/{matchId}/media-summary?country={country}
string
default:"GB"
Country code for localized content (e.g.,
GB, US, DE). Defaults to GB.Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/media-summary?country=DE (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "media/summary/country/DE",
"data": {
"highlightedItem": {
"type": "highlight",
"item": {
"title": "Paderborn 3 - 1 Hoffenheim",
"subtitle": "Full Highlights",
"url": "https://www.youtube.com/watch?v=geNPXDBioSI",
"thumbnailUrl": "https://i.ytimg.com/vi/geNPXDBioSI/hqdefault.jpg",
"mediaType": 6,
"doFollow": false,
"keyHighlight": true,
"livestream": false,
"removeOnFinish": false,
"id": 8084963,
"createdAtTimestamp": 1789934227,
"sourceUrl": "https://www.youtube.com/watch?v=geNPXDBioSI"
}
},
"mediaItems": [
{
"type": "highlight",
"item": {
"title": "Paderborn 3 - 1 Hoffenheim",
"subtitle": "Full Highlights",
"url": "https://www.youtube.com/watch?v=geNPXDBioSI",
"thumbnailUrl": "https://i.ytimg.com/vi/geNPXDBioSI/hqdefault.jpg",
"mediaType": 6,
"doFollow": false,
"keyHighlight": true,
"livestream": false,
"removeOnFinish": false,
"id": 8084963,
"createdAtTimestamp": 1789934227,
"sourceUrl": "https://www.youtube.com/watch?v=geNPXDBioSI"
}
},
{
"type": "newsArticle",
"item": {
"description": "Paderborn beat Hoffenheim 3-1 with clinical finishing and fierce box defending. Castañeda’s 8.3 provider Rating led a group effort that won key duels and tac...",
"thumbnailUrl": "https://files.provider.com/news/2026/09/imago1083592829h-scaled.jpg",
"id": 670212,
"fieldTranslations": {
"headerTranslation": {
"it": "Paderborn 3-1 Hoffenheim: la freddezza sotto porta batte la pressione"
},
"descriptionTranslation": {
"it": "Il Paderborn ha battuto l’Hoffenheim per 3-1 grazie alla freddezza sotto porta e a una difesa feroce nell’area. L’8,3 di Valutazione provider di Castañeda ha..."
}
},
"header": "Paderborn 3-1 Hoffenheim: clinical finishing beats pressure",
"externalUrl": "https://www.provider.com/web-view/news/paderborn-3-1-hoffenheim-clinical-finishing-beats-pressure/",
"contentId": "10:147893",
"publishedAtTimestamp": 1789932456,
"newsProvider": {
"id": 10,
"name": "provider News"
}
}
}
],
"itemsCount": 9
}
}
Tweets
GET /api/match/{matchId}/tweets
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/tweets (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "official-tweets",
"data": {
"tweets": [
{
"id": "2101753535075356839",
"account": {
"id": "61477513",
"name": "TSG Hoffenheim",
"handle": "tsghoffenheim",
"verified": true,
"profilePictureUrl": "https://pbs.twimg.com/profile_images/2073018705949179904/F79-BMyL_normal.jpg"
},
"text": "Eine bescheidene Englische Woche.",
"media": [
{
"id": "2101753077111869441",
"imageUrl": "https://pbs.twimg.com/media/HSrtSb7WUAEw_ZS.jpg"
}
],
"createdAtTimestamp": 1789932066,
"externalUrl": "https://x.com/tsghoffenheim/status/2101753535075356839"
},
{
"id": "2101750979523719208",
"account": {
"id": "61477513",
"name": "TSG Hoffenheim",
"handle": "tsghoffenheim",
"verified": true,
"profilePictureUrl": "https://pbs.twimg.com/profile_images/2073018705949179904/F79-BMyL_normal.jpg"
},
"text": "Conte an die Latte. Natürlich.",
"media": [],
"createdAtTimestamp": 1789931456,
"externalUrl": "https://x.com/tsghoffenheim/status/2101750979523719208"
}
]
}
}
Comments (text commentary)
GET /api/match/{matchId}/comments
There is no
/api/match/{matchId}/commentary route on V2 — it always returns Upstream returned status 404. Use /comments.curl -H "x-api-key: YOUR_API_KEY" \
"https://api.sportsapipro.com/v2/football/match/14023950/comments"
{
"success": true,
"matchId": 14023950,
"endpoint": "comments",
"data": {
"comments": [
{ "text": "Match ends, Arsenal 1, Burnley 0.", "type": "matchEnded", "id": 39469433 },
{ "text": "Second Half ends, Arsenal 1, Burnley 0.", "type": "endSecondHalf", "id": 39469432, "periodName": "2ND" }
]
}
}
/comments means the match has no commentary. For V1, use /v1/football/game/{gameId}/playbyplay.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/comments (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "comments",
"data": {
"comments": [
{
"text": "Match ends, Paderborn 3, Hoffenheim 1.",
"type": "matchEnded",
"id": 40452875
},
{
"text": "Second Half ends, Paderborn 3, Hoffenheim 1.",
"type": "endSecondHalf",
"id": 40452817,
"periodName": "2ND"
}
],
"home": {
"goalkeeperColor": {
"primary": "f52c4e",
"number": "0d3d82",
"outline": "f52c4e",
"fancyNumber": "222226"
},
"playerColor": {
"primary": "121212",
"number": "f2eeed",
"outline": "121212",
"fancyNumber": "ffffff"
}
},
"away": {
"goalkeeperColor": {
"primary": "b0946d",
"number": "ffffff",
"outline": "b0946d",
"fancyNumber": "222226"
},
"playerColor": {
"primary": "ffffff",
"number": "373eee",
"outline": "ffffff",
"fancyNumber": "222226"
}
}
}
}
Fan Votes
GET /api/match/{matchId}/votes
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/votes (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "votes",
"data": {
"vote": {
"vote1": 2919,
"vote2": 17678,
"voteX": 3703
},
"bothTeamsToScoreVote": {
"voteYes": 3204,
"voteNo": 768
},
"firstTeamToScoreVote": {
"voteHome": 310,
"voteNoGoal": 97,
"voteAway": 2214
},
"whoShouldHaveWonVote": {
"vote1": 0,
"vote2": 0
}
}
}
Other
Managers
GET /api/match/{matchId}/managers
manager.id for manager-specific endpoints.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/managers (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"endpoint": "managers",
"data": {
"homeManager": {
"name": "Ralf Kettemann",
"slug": "ralf-kettemann",
"shortName": "R. Kettemann",
"id": 811325,
"fieldTranslations": {
"nameTranslation": {
"ar": "رالف كيتيمان",
"ru": "Ральф Кеттеманн"
},
"shortNameTranslation": {
"ar": "ر. كيتيمان",
"ru": "Р. Кеттеманн"
}
}
},
"awayManager": {
"name": "Christian Ilzer",
"slug": "christian-ilzer",
"shortName": "C. Ilzer",
"id": 775661,
"fieldTranslations": {
"nameTranslation": {
"ar": "كريستيان إيلزر",
"bn": "ক্রিশ্চিয়ান ইলজার",
"hi": "क्रिश्चियन इल्ज़र",
"ru": "Кристиан Ильзер"
},
"shortNameTranslation": {
"ar": "ك. إيلزر",
"hi": "सी. इल्ज़र",
"bn": "সি. ইলজার",
"ru": "К. Ильзер"
}
}
}
}
}
Penalties
GET /api/match/{matchId}/penalties
Only available for matches that went to a penalty shootout.
No example: this endpoint returned HTTP 404 for our Bundesliga sample on 24 September 2026. It only returns data when the entity has it (for example knockout draws, penalties or media), so handle an empty or 404 response.
TV Channels
GET /api/match/{matchId}/channels
data.countryChannels: a map of ISO 3166-1 alpha-2 country code to an array of
numeric channel IDs broadcasting the match in that territory.
{
"success": true,
"data": {
"countryChannels": {
"ES": [5427, 2418, 2422],
"DE": [7649, 4439, 4276, 4427, 2010],
"GB": [6092, 2433, 3845]
}
}
}
The response contains channel IDs only — no channel names, logos, or broadcast times, and
there is no endpoint that resolves a channel ID to metadata. Channel IDs are opaque but
stable: the same ID identifies one broadcaster entity everywhere it appears, so a single ID
can be listed under many countries when that broadcaster holds multi-territory rights.
Listings are refreshed over time, so IDs may be added to or removed from a match — cache
them as timestamped observations rather than fixed per-match values.
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/channels (lists trimmed to 2 items).{
"success": true,
"data": {
"countryChannels": {
"UY": [
6961
],
"GH": [
3276
],
"ME": [
430
],
"ZA": [
3276
],
"PE": [
6963
],
"CH": [
2811
],
"CG": [
1157
],
"LY": [
2542
],
"GN": [
1157
],
"EC": [
6966
],
"BR": [
7297
],
"GR": [
293
],
"NG": [
3276
],
"KE": [
3276
],
"UG": [
1157
],
"OM": [
2542
],
"BA": [
430
],
"MA": [
2542
],
"DZ": [
2542
],
"PY": [
6961
],
"FI": [
449
],
"RW": [
1157
],
"GL": [
263
],
"CM": [
3276
],
"YE": [
2542
],
"...": "45 more fields"
}
}
}
Jerseys
GET /api/match/{matchId}/jerseys
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/jerseys (lists trimmed to 2 items).{
"success": true,
"matchId": 16434052,
"home": null,
"away": null
}
Fantasy
GET /api/match/{matchId}/fantasy
Example response
Example response
Recorded 24 September 2026 from
GET /v2/football/match/16434052/fantasy (lists trimmed to 2 items).{
"success": true,
"data": {
"competitionId": 166,
"eventStatusType": "finished",
"playerScores": {
"40244": 1,
"67647": 1,
"138024": 4,
"246431": 0,
"790977": 2,
"795006": 0,
"800448": 2,
"820465": 1,
"826884": 7,
"828571": null,
"844131": 1,
"857740": 2,
"878628": null,
"907685": null,
"909485": 2,
"916946": 5,
"930702": null,
"940567": null,
"943550": 0,
"944899": 0,
"957615": 0,
"963801": 3,
"978062": null,
"981788": 9,
"987504": 1,
"...": "37 more fields"
},
"playerStatistics": [
{
"playerId": 40244,
"fantasyPlayerId": 94156,
"fantasyPlayerPosition": "G",
"statistics": [
{
"key": "rating",
"value": "6.4"
}
]
}
],
"config": {
"id": 6,
"calculator": {
"rating": {
"pointLevels": [
{
"maxValue": 3,
"points": {
"G": 0,
"D": 0,
"M": 0,
"F": 0
}
}
]
},
"goals": {
"points": {
"G": 7,
"D": 6,
"M": 5,
"F": 4
}
},
"assists": {
"points": {
"G": 5,
"D": 4,
"M": 3,
"F": 3
}
},
"ownGoals": {
"points": {
"G": -2,
"D": -2,
"M": -2,
"F": -2
}
},
"yellowCard": {
"points": {
"G": -1,
"D": -1,
"M": -1,
"F": -1
}
},
"secondYellow": {
"pointLevels": [
{
"minValue": 3,
"points": {
"G": -3,
"D": -3,
"M": -3,
"F": -3
}
}
]
},
"redCard": {
"pointLevels": [
{
"minValue": 3,
"points": {
"G": -4,
"D": -4,
"M": -4,
"F": -4
}
}
]
},
"minutesPlayed": {
"pointLevels": [
{
"maxValue": 1,
"points": {
"G": 0,
"D": 0,
"M": 0,
"F": 0
}
}
]
},
"cleanSheet": {
"points": {
"G": 4,
"D": 4
}
},
"goalsConceded": {
"modifier": 2,
"points": {
"G": -1,
"D": -1
}
},
"penaltySaves": {
"points": {
"G": 5,
"D": 5,
"M": 5,
"F": 5
}
},
"penaltyWon": {
"points": {
"G": 2,
"D": 2,
"M": 2,
"F": 2
}
},
"penaltyConceded": {
"points": {
"G": -2,
"D": -2,
"M": -2,
"F": -2
}
},
"attemptPenaltyMiss": {
"points": {
"G": -3,
"D": -3,
"M": -3,
"F": -3
}
},
"penaltyShootoutGoal": {
"points": {
"G": 1,
"D": 1,
"M": 1,
"F": 1
}
},
"penaltyShootoutMiss": {
"points": {
"G": -2,
"D": -2,
"M": -2,
"F": -2
}
},
"penaltyShootoutSave": {
"points": {
"G": 3,
"D": 3,
"M": 3,
"F": 3
}
},
"savedShotsFromInsideTheBox": {
"modifier": 2,
"points": {
"G": 1
}
},
"savedShotsFromOutsideTheBox": {
"modifier": 3,
"points": {
"G": 1
}
},
"punchesAndGoodHighClaims": {
"modifier": 3,
"points": {
"G": 1
}
},
"runsOut": {
"points": {
"G": 1
}
},
"longBalls": {
"pctThreshold": 60,
"valueThreshold": 3,
"points": {
"G": 1,
"D": 1,
"M": 1,
"F": 1
}
},
"clearanceOffLine": {
"points": {
"G": 2,
"D": 2,
"M": 2,
"F": 2
}
},
"totalClearances": {
"modifier": 6,
"points": {
"D": 1,
"M": 1,
"F": 1
}
},
"blockedShots": {
"modifier": 2,
"points": {
"D": 1,
"M": 1,
"F": 1
}
},
"...": "9 more fields"
}
}
}
}
Example Requests
curl -X GET "https://api.sportsapipro.com/v2/football/match/14025056/statistics" \
-H "x-api-key: YOUR_API_KEY"
const response = await fetch(
'https://api.sportsapipro.com/v2/football/match/14025056/statistics',
{ headers: { 'x-api-key': 'YOUR_API_KEY' } }
);
const data = await response.json();
import requests
response = requests.get(
'https://api.sportsapipro.com/v2/football/match/14025056/statistics',
headers={'x-api-key': 'YOUR_API_KEY'}
)
data = response.json()
Example responses
Real responses recorded on 24 September 2026 from the Bundesliga (tournament35, season 97464), match SC Paderborn 07 3-1 TSG Hoffenheim (16434052). Long lists are shortened to the first items; field names and structure are unchanged.
Match details
Match details
curl -H "x-api-key: YOUR_API_KEY" "https://api.sportsapipro.com/v2/football/match/16434052"
{
"success": true,
"matchId": 16434052,
"source": "live",
"match": {
"tournament": {
"name": "Bundesliga",
"slug": "bundesliga",
"category": {
"name": "Germany",
"slug": "germany",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 8,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 30,
"flag": "germany",
"alpha2": "DE"
},
"uniqueTournament": {
"name": "Bundesliga",
"slug": "bundesliga",
"primaryColorHex": "#e2080e",
"secondaryColorHex": "#8e0902",
"category": {
"name": "Germany",
"slug": "germany",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 8,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 30,
"flag": "germany",
"alpha2": "DE"
},
"userCount": 571121,
"hasRounds": true,
"hasPerformanceGraphFeature": true,
"liveActivityEnabled": true,
"country": {},
"id": 35,
"hasEventPlayerStatistics": true,
"displayInverseHomeAwayTeams": false
},
"priority": 699,
"isGroup": false,
"competitionType": 1,
"isLive": false,
"id": 42
},
"season": {
"name": "Bundesliga 26/27",
"year": "26/27",
"editor": false,
"id": 97464
},
"roundInfo": {
"round": 4
},
"customId": "lbbsubb",
"status": {
"code": 100,
"description": "Ended",
"type": "finished"
},
"winnerCode": 1,
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
},
"referee": {
"name": "Daniel Schlager",
"slug": "schlager-daniel",
"yellowCards": 1305,
"redCards": 27,
"yellowRedCards": 34,
"games": 303,
"sport": {
"id": 1,
"slug": "football",
"name": "Football"
},
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 102955
},
"homeTeam": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33904,
"manager": {
"name": "Ralf Kettemann",
"slug": "ralf-kettemann",
"shortName": "R. Kettemann",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 811325
},
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
},
"nameCode": "PAD",
"class": 0,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 2561,
"fullName": "SC Paderborn 07",
"subTeams": [],
"foundationDateTimestamp": 486432000,
"timeActive": []
},
"awayTeam": {
"name": "TSG Hoffenheim",
"slug": "tsg-hoffenheim",
"shortName": "Hoffenheim",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 115112,
"manager": {
"name": "Christian Ilzer",
"slug": "christian-ilzer",
"shortName": "C. Ilzer",
"country": {
"alpha2": "AT",
"alpha3": "AUT",
"name": "Austria",
"slug": "austria"
},
"id": 775661
},
"venue": {
"city": {
"name": "Sinsheim",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 21575
},
"venueCoordinates": {
"latitude": 49.23806,
"longitude": 8.887641
},
"hidden": false,
"slug": "prezero-arena",
"name": "PreZero Arena",
"capacity": 30150,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1089,
"stadium": {
"name": "PreZero Arena",
"capacity": 30150
}
},
"nameCode": "TSG",
"class": 0,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 2569,
"fullName": "TSG Hoffenheim",
"subTeams": [],
"foundationDateTimestamp": -2224886400,
"timeActive": []
},
"homeScore": {
"current": 3,
"display": 3,
"period1": 2,
"period2": 1,
"normaltime": 3
},
"awayScore": {
"current": 1,
"display": 1,
"period1": 0,
"period2": 1,
"normaltime": 1
},
"time": {
"injuryTime1": 1,
"injuryTime2": 3,
"currentPeriodStartTimestamp": 1789929188,
"lastPeriodEndTimestamp": 1789928180
},
"hasGlobalHighlights": true,
"hasXg": true,
"hasEventPlayerStatistics": true,
"hasEventPlayerHeatMap": true,
"detailId": 1,
"correctAiInsight": false,
"correctHalftimeAiInsight": true,
"id": 16434052,
"defaultPeriodCount": 2,
"defaultPeriodLength": 45,
"defaultOvertimeLength": 15,
"slug": "tsg-hoffenheim-sc-paderborn-07",
"currentPeriodStartTimestamp": 1789929188,
"startTimestamp": 1789925400,
"finalResultOnly": false,
"hasBet365LiveStream": true,
"bet365ExcludedCountryCodes": [
"AN"
],
"feedLocked": true,
"seasonStatisticsType": "overall",
"showTotoPromo": true,
"isEditor": false,
"eventFilters": {
"category": [
"club"
],
"level": [
"top-competitions"
],
"gender": [
"M"
]
}
},
"data": {
"event": {
"tournament": {
"name": "Bundesliga",
"slug": "bundesliga",
"category": {
"name": "Germany",
"slug": "germany",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 8,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 30,
"flag": "germany",
"alpha2": "DE"
},
"uniqueTournament": {
"name": "Bundesliga",
"slug": "bundesliga",
"primaryColorHex": "#e2080e",
"secondaryColorHex": "#8e0902",
"category": {
"name": "Germany",
"slug": "germany",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"priority": 8,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 30,
"flag": "germany",
"alpha2": "DE"
},
"userCount": 571121,
"hasRounds": true,
"hasPerformanceGraphFeature": true,
"liveActivityEnabled": true,
"country": {},
"id": 35,
"hasEventPlayerStatistics": true,
"displayInverseHomeAwayTeams": false
},
"priority": 699,
"isGroup": false,
"competitionType": 1,
"isLive": false,
"id": 42
},
"season": {
"name": "Bundesliga 26/27",
"year": "26/27",
"editor": false,
"id": 97464
},
"roundInfo": {
"round": 4
},
"customId": "lbbsubb",
"status": {
"code": 100,
"description": "Ended",
"type": "finished"
},
"winnerCode": 1,
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
},
"referee": {
"name": "Daniel Schlager",
"slug": "schlager-daniel",
"yellowCards": 1305,
"redCards": 27,
"yellowRedCards": 34,
"games": 303,
"sport": {
"id": 1,
"slug": "football",
"name": "Football"
},
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 102955
},
"homeTeam": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33904,
"manager": {
"name": "Ralf Kettemann",
"slug": "ralf-kettemann",
"shortName": "R. Kettemann",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 811325
},
"venue": {
"city": {
"name": "Paderborn",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 19236
},
"venueCoordinates": {
"latitude": 51.730897,
"longitude": 8.710963
},
"hidden": false,
"slug": "home-deluxe-arena",
"name": "Home Deluxe Arena",
"capacity": 15000,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 655,
"stadium": {
"name": "Home Deluxe Arena",
"capacity": 15000
}
},
"nameCode": "PAD",
"class": 0,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 2561,
"fullName": "SC Paderborn 07",
"subTeams": [],
"foundationDateTimestamp": 486432000,
"timeActive": []
},
"awayTeam": {
"name": "TSG Hoffenheim",
"slug": "tsg-hoffenheim",
"shortName": "Hoffenheim",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 115112,
"manager": {
"name": "Christian Ilzer",
"slug": "christian-ilzer",
"shortName": "C. Ilzer",
"country": {
"alpha2": "AT",
"alpha3": "AUT",
"name": "Austria",
"slug": "austria"
},
"id": 775661
},
"venue": {
"city": {
"name": "Sinsheim",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 21575
},
"venueCoordinates": {
"latitude": 49.23806,
"longitude": 8.887641
},
"hidden": false,
"slug": "prezero-arena",
"name": "PreZero Arena",
"capacity": 30150,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1089,
"stadium": {
"name": "PreZero Arena",
"capacity": 30150
}
},
"nameCode": "TSG",
"class": 0,
"disabled": false,
"national": false,
"type": 0,
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 2569,
"fullName": "TSG Hoffenheim",
"subTeams": [],
"foundationDateTimestamp": -2224886400,
"timeActive": []
},
"homeScore": {
"current": 3,
"display": 3,
"period1": 2,
"period2": 1,
"normaltime": 3
},
"awayScore": {
"current": 1,
"display": 1,
"period1": 0,
"period2": 1,
"normaltime": 1
},
"time": {
"injuryTime1": 1,
"injuryTime2": 3,
"currentPeriodStartTimestamp": 1789929188,
"lastPeriodEndTimestamp": 1789928180
},
"hasGlobalHighlights": true,
"hasXg": true,
"hasEventPlayerStatistics": true,
"hasEventPlayerHeatMap": true,
"detailId": 1,
"correctAiInsight": false,
"correctHalftimeAiInsight": true,
"id": 16434052,
"defaultPeriodCount": 2,
"defaultPeriodLength": 45,
"defaultOvertimeLength": 15,
"slug": "tsg-hoffenheim-sc-paderborn-07",
"currentPeriodStartTimestamp": 1789929188,
"startTimestamp": 1789925400,
"finalResultOnly": false,
"hasBet365LiveStream": true,
"bet365ExcludedCountryCodes": [
"AN"
],
"feedLocked": true,
"seasonStatisticsType": "overall",
"showTotoPromo": true,
"isEditor": false,
"eventFilters": {
"category": [
"club"
],
"level": [
"top-competitions"
],
"gender": [
"M"
]
}
}
},
"startTime": "2026-09-20T19:30:00+02:00",
"timezone": {
"name": "Europe/Amsterdam",
"utcOffset": "+02:00",
"source": "auto",
"country": "NL"
}
}
Match statistics (all groups, every stat key)
Match statistics (all groups, every stat key)
curl -H "x-api-key: YOUR_API_KEY" "https://api.sportsapipro.com/v2/football/match/16434052/statistics"
{
"statistics": [
{
"period": "ALL",
"groups": [
{
"groupName": "Match overview",
"statisticsItems": [
{
"name": "Ball possession",
"home": "34%",
"away": "66%",
"compareCode": 2,
"statisticsType": "positive",
"valueType": "event",
"homeValue": 34,
"awayValue": 66,
"renderType": 2,
"key": "ballPossession"
}
]
}
]
}
]
}
Lineups with player ratings
Lineups with player ratings
curl -H "x-api-key: YOUR_API_KEY" "https://api.sportsapipro.com/v2/football/match/16434052/lineups"
{
"success": true,
"matchId": 16434052,
"endpoint": "lineups",
"data": {
"confirmed": true,
"home": {
"players": [
{
"player": {
"name": "Nahuel Noll",
"slug": "nahuel-noll",
"shortName": "N. Noll",
"position": "G",
"jerseyNumber": "15",
"height": 188,
"userCount": 263,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1048651,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1047859200,
"proposedMarketValueRaw": {
"value": 1900000,
"currency": "EUR"
}
},
"teamId": 2561,
"shirtNumber": 15,
"jerseyNumber": "15",
"position": "G",
"substitute": false,
"statistics": {
"totalPass": 48,
"accuratePass": 17,
"totalLongBalls": 45,
"accurateLongBalls": 14,
"goalAssist": 0,
"accurateOwnHalfPasses": 6,
"totalOwnHalfPasses": 12,
"accurateOppositionHalfPasses": 11,
"totalOppositionHalfPasses": 36,
"duelWon": 1,
"totalClearance": 3,
"ballRecovery": 10,
"wasFouled": 1,
"savedShotsFromInsideTheBox": 1,
"saves": 1,
"punches": 3,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 54,
"rating": 6.7,
"possessionLostCtrl": 31,
"expectedAssists": 0.00679976,
"totalBallCarriesDistance": 138.1336455407,
"ballCarriesCount": 20,
"totalProgression": 38.431397137822,
"progressiveBallCarriesCount": 0,
"keeperSaveValue": 0.3989,
"ratingVersions": {
"original": 6.7,
"alternative": 6.8
},
"totalShots": 0,
"goalsPrevented": -0.4454,
"passValueNormalized": 0.24,
"dribbleValueNormalized": 0.03,
"defensiveValueNormalized": -0.16,
"goalkeeperValueNormalized": 0.16,
"statisticsType": {
"sportSlug": "football",
"statisticsType": "player"
}
},
"minutesPlayed": 90,
"played": true
}
],
"supportStaff": [],
"formation": "3-5-2",
"playerColor": {
"primary": "121212",
"number": "f2eeed",
"outline": "121212",
"fancyNumber": "ffffff"
},
"goalkeeperColor": {
"primary": "f52c4e",
"number": "0d3d82",
"outline": "f52c4e",
"fancyNumber": "222226"
},
"missingPlayers": [
{
"player": {
"name": "Nyamekye Awortwie-Grant",
"firstName": "Nyamekye",
"lastName": "Awortwie-Grant",
"slug": "nyamekye-awortwie-grant",
"shortName": "N. Awortwie-Grant",
"position": "D",
"jerseyNumber": "4",
"height": 193,
"userCount": 32,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 1407863,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 965606400,
"proposedMarketValueRaw": {
"value": 390000,
"currency": "EUR"
}
},
"type": "missing",
"reason": 1,
"description": "Knee Injury",
"externalType": 114,
"expectedEndDate": "2026-10-20T00:00:00+00:00"
}
]
},
"away": {
"players": [
{
"player": {
"name": "Oliver Baumann",
"slug": "oliver-baumann",
"shortName": "O. Baumann",
"position": "G",
"jerseyNumber": "1",
"height": 185,
"userCount": 1766,
"gender": "M",
"country": {
"alpha2": "DE",
"alpha3": "DEU",
"name": "Germany",
"slug": "germany"
},
"id": 40244,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 644284800,
"proposedMarketValueRaw": {
"value": 2700000,
"currency": "EUR"
}
},
"teamId": 2569,
"shirtNumber": 1,
"jerseyNumber": "1",
"position": "G",
"substitute": false,
"captain": true,
"statistics": {
"totalPass": 44,
"accuratePass": 38,
"totalLongBalls": 14,
"accurateLongBalls": 8,
"goalAssist": 0,
"accurateOwnHalfPasses": 35,
"totalOwnHalfPasses": 37,
"accurateOppositionHalfPasses": 3,
"totalOppositionHalfPasses": 7,
"aerialWon": 1,
"duelWon": 1,
"totalClearance": 1,
"ballRecovery": 14,
"goodHighClaim": 1,
"saves": 2,
"punches": 1,
"totalKeeperSweeper": 1,
"accurateKeeperSweeper": 1,
"minutesPlayed": 90,
"touches": 58,
"rating": 6.4,
"possessionLostCtrl": 7,
"expectedAssists": 0.0197772,
"totalBallCarriesDistance": 54.826209421433,
"ballCarriesCount": 10,
"totalProgression": 42.956273721408,
"progressiveBallCarriesCount": 0,
"keeperSaveValue": 0.1209,
"ratingVersions": {
"original": 6.4,
"alternative": 6.8
},
"totalShots": 0,
"goalsPrevented": -1.1059,
"passValueNormalized": 0.22,
"dribbleValueNormalized": 0.03,
"defensiveValueNormalized": -0.21,
"goalkeeperValueNormalized": -0.54,
"statisticsType": {
"sportSlug": "football",
"statisticsType": "player"
}
},
"minutesPlayed": 90,
"played": true
}
],
"supportStaff": [],
"formation": "4-4-2",
"playerColor": {
"primary": "ffffff",
"number": "373eee",
"outline": "ffffff",
"fancyNumber": "222226"
},
"goalkeeperColor": {
"primary": "b0946d",
"number": "ffffff",
"outline": "b0946d",
"fancyNumber": "222226"
},
"missingPlayers": [
{
"player": {
"name": "Bernardo",
"firstName": "Bernardo Fernandes",
"lastName": "Bernardo",
"slug": "bernardo",
"shortName": "Bernardo",
"position": "D",
"jerseyNumber": "13",
"height": 186,
"userCount": 593,
"gender": "M",
"country": {
"alpha2": "BR",
"alpha3": "BRA",
"name": "Brazil",
"slug": "brazil"
},
"id": 828571,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 800409600,
"proposedMarketValueRaw": {
"value": 3700000,
"currency": "EUR"
}
},
"type": "missing",
"reason": 1,
"description": "Achilles Tendon Injury",
"externalType": 114,
"expectedEndDate": "2026-10-10T00:00:00+00:00"
}
]
}
},
"source": "live",
"cacheHit": true,
"timezone": {
"name": "Europe/Amsterdam",
"utcOffset": "+02:00",
"source": "auto",
"country": "NL"
}
}
Incidents (goals, cards, subs)
Incidents (goals, cards, subs)
curl -H "x-api-key: YOUR_API_KEY" "https://api.sportsapipro.com/v2/football/match/16434052/incidents"
{
"success": true,
"matchId": 16434052,
"endpoint": "incidents",
"data": {
"incidents": [
{
"text": "FT",
"homeScore": 3,
"awayScore": 1,
"isLive": false,
"time": 90,
"addedTime": 999,
"timeSeconds": 5400,
"incidentType": "period",
"reversedPeriodTime": 1,
"reversedPeriodTimeSeconds": 0,
"periodTimeSeconds": 2700
},
{
"length": 3,
"time": 90,
"addedTime": 0,
"incidentType": "injuryTime",
"reversedPeriodTime": 1
},
{
"playerIn": {
"name": "Fisnik Asllani",
"slug": "fisnik-asllani",
"shortName": "F. Asllani",
"position": "F",
"jerseyNumber": "11",
"height": 191,
"userCount": 6424,
"gender": "M",
"id": 1010117,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1028764800,
"proposedMarketValueRaw": {
"value": 36000000,
"currency": "EUR"
}
},
"playerOut": {
"name": "Leon Avdullahu",
"firstName": "Leon",
"lastName": "Avdullahu",
"slug": "leon-avdullahu",
"shortName": "L. Avdullahu",
"position": "M",
"jerseyNumber": "7",
"height": 185,
"userCount": 1348,
"gender": "M",
"id": 1493305,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1077494400,
"proposedMarketValueRaw": {
"value": 33000000,
"currency": "EUR"
}
},
"id": 126869897,
"time": 80,
"injury": false,
"isHome": false,
"incidentClass": "regular",
"incidentType": "substitution",
"reversedPeriodTime": 11
},
{
"playerIn": {
"name": "Andrej Kramarić",
"slug": "andrej-kramaric",
"shortName": "A. Kramarić",
"position": "F",
"jerseyNumber": "27",
"height": 177,
"userCount": 8425,
"gender": "M",
"id": 67647,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 677289600,
"proposedMarketValueRaw": {
"value": 2700000,
"currency": "EUR"
}
},
"playerOut": {
"name": "Adam Daghim",
"firstName": "",
"lastName": "",
"slug": "adam-daghim",
"shortName": "A. Daghim",
"position": "F",
"jerseyNumber": "14",
"height": 186,
"userCount": 1162,
"gender": "M",
"id": 1180758,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1127865600,
"proposedMarketValueRaw": {
"value": 8100000,
"currency": "EUR"
}
},
"id": 126869896,
"time": 80,
"injury": false,
"isHome": false,
"incidentClass": "regular",
"incidentType": "substitution",
"reversedPeriodTime": 11
}
],
"home": {
"goalkeeperColor": {
"primary": "f52c4e",
"number": "0d3d82",
"outline": "f52c4e",
"fancyNumber": "222226"
},
"playerColor": {
"primary": "121212",
"number": "f2eeed",
"outline": "121212",
"fancyNumber": "ffffff"
}
},
"away": {
"goalkeeperColor": {
"primary": "b0946d",
"number": "ffffff",
"outline": "b0946d",
"fancyNumber": "222226"
},
"playerColor": {
"primary": "ffffff",
"number": "373eee",
"outline": "ffffff",
"fancyNumber": "222226"
}
}
},
"source": "live",
"cacheHit": true,
"timezone": {
"name": "Europe/Amsterdam",
"utcOffset": "+02:00",
"source": "auto",
"country": "NL"
}
}
Shotmap with xG
Shotmap with xG
curl -H "x-api-key: YOUR_API_KEY" "https://api.sportsapipro.com/v2/football/match/16434052/shotmap"
{
"success": true,
"matchId": 16434052,
"endpoint": "shotmap",
"data": {
"shotmap": [
{
"player": {
"name": "Steffen Tigges",
"firstName": "Steffen",
"lastName": "Tigges",
"slug": "steffen-tigges",
"shortName": "S. Tigges",
"position": "F",
"jerseyNumber": "27",
"userCount": 427,
"gender": "M",
"id": 826884
},
"isHome": true,
"shotType": "miss",
"situation": "assisted",
"playerCoordinates": {
"x": 12.5,
"y": 50.5,
"z": 0
},
"bodyPart": "left-foot",
"goalMouthLocation": "left",
"goalMouthCoordinates": {
"x": 0,
"y": 69.4,
"z": 18.1
},
"xg": 0.087168015539646,
"xgot": 0,
"goalkeeper": {
"name": "Oliver Baumann",
"slug": "oliver-baumann",
"shortName": "O. Baumann",
"position": "G",
"jerseyNumber": "1",
"userCount": 1766,
"gender": "M",
"id": 40244
},
"id": 8509028,
"time": 87,
"timeSeconds": 5160,
"draw": {
"start": {
"x": 50.5,
"y": 12.5
},
"end": {
"x": 30.6,
"y": 0
},
"goal": {
"x": 30.6,
"y": 81.9
}
},
"incidentType": "shot",
"reversedPeriodTime": 4,
"reversedPeriodTimeSeconds": 240,
"periodTimeSeconds": 2460
},
{
"player": {
"name": "Bambasé Conté",
"firstName": "Bambase",
"lastName": "Conte",
"slug": "bambase-conte",
"shortName": "B. Conté",
"position": "M",
"jerseyNumber": "20",
"userCount": 431,
"gender": "M",
"id": 1185359
},
"isHome": false,
"shotType": "block",
"situation": "corner",
"playerCoordinates": {
"x": 16.9,
"y": 60.7,
"z": 0
},
"bodyPart": "left-foot",
"goalMouthLocation": "low-centre",
"goalMouthCoordinates": {
"x": 0,
"y": 48.5,
"z": 19
},
"blockCoordinates": {
"x": 13.8,
"y": 59,
"z": 0
},
"xg": 0.02812678180635,
"xgot": 0,
"goalkeeper": {
"name": "Nahuel Noll",
"slug": "nahuel-noll",
"shortName": "N. Noll",
"position": "G",
"jerseyNumber": "15",
"userCount": 263,
"gender": "M",
"id": 1048651
},
"id": 8509019,
"time": 85,
"timeSeconds": 5052,
"draw": {
"start": {
"x": 60.7,
"y": 16.9
},
"block": {
"x": 59,
"y": 13.8
},
"end": {
"x": 51.5,
"y": 0
},
"goal": {
"x": 51.5,
"y": 81
}
},
"incidentType": "shot",
"reversedPeriodTime": 6,
"reversedPeriodTimeSeconds": 348,
"periodTimeSeconds": 2352
}
]
},
"source": "live",
"cacheHit": true,
"timezone": {
"name": "Europe/Amsterdam",
"utcOffset": "+02:00",
"source": "auto",
"country": "NL"
}
}
Momentum graph
Momentum graph
curl -H "x-api-key: YOUR_API_KEY" "https://api.sportsapipro.com/v2/football/match/16434052/graph"
{
"success": true,
"matchId": 16434052,
"endpoint": "graph",
"data": {
"graphPoints": [
{
"minute": 1,
"value": -4
},
{
"minute": 2,
"value": -6
},
{
"minute": 3,
"value": -8
},
{
"minute": 4,
"value": -41
},
{
"minute": 5,
"value": -33
}
],
"periodTime": 45,
"overtimeLength": 15,
"periodCount": 2
},
"source": "live",
"cacheHit": true,
"timezone": {
"name": "Europe/Amsterdam",
"utcOffset": "+02:00",
"source": "auto",
"country": "NL"
}
}
Best players
Best players
curl -H "x-api-key: YOUR_API_KEY" "https://api.sportsapipro.com/v2/football/match/16434052/best-players"
{
"success": true,
"matchId": 16434052,
"endpoint": "best-players",
"data": {
"bestHomeTeamPlayer": {
"value": "8.1",
"label": "rating",
"player": {
"name": "Santiago Castañeda",
"firstName": "Santiago Castaneda",
"lastName": "",
"slug": "castaneda-santiago",
"shortName": "S. Castaneda",
"position": "M",
"jerseyNumber": "5",
"height": 188,
"userCount": 410,
"gender": "M",
"id": 1199101,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1100304000,
"proposedMarketValueRaw": {
"value": 5200000,
"currency": "EUR"
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561
}
},
"bestAwayTeamPlayer": {
"value": "7.1",
"label": "rating",
"player": {
"name": "Albian Hajdari",
"firstName": "",
"lastName": "",
"slug": "albian-hajdari",
"shortName": "A. Hajdari",
"position": "D",
"jerseyNumber": "21",
"height": 189,
"userCount": 1224,
"gender": "M",
"id": 1000269,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1053216000,
"proposedMarketValueRaw": {
"value": 24000000,
"currency": "EUR"
}
},
"team": {
"name": "TSG Hoffenheim",
"slug": "tsg-hoffenheim",
"shortName": "Hoffenheim",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 114014,
"nameCode": "TSG",
"disabled": false,
"national": false,
"type": 0,
"id": 2569
}
},
"leaderboard": [
{
"value": "8.1",
"label": "rating",
"player": {
"name": "Santiago Castañeda",
"firstName": "Santiago Castaneda",
"lastName": "",
"slug": "castaneda-santiago",
"shortName": "S. Castaneda",
"position": "M",
"jerseyNumber": "5",
"height": 188,
"userCount": 410,
"gender": "M",
"id": 1199101,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 1100304000,
"proposedMarketValueRaw": {
"value": 5200000,
"currency": "EUR"
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561
}
},
{
"value": "7.9",
"label": "rating",
"player": {
"name": "Steffen Tigges",
"firstName": "Steffen",
"lastName": "Tigges",
"slug": "steffen-tigges",
"shortName": "S. Tigges",
"position": "F",
"jerseyNumber": "27",
"height": 195,
"userCount": 427,
"gender": "M",
"id": 826884,
"marketValueCurrency": "EUR",
"dateOfBirthTimestamp": 901843200,
"proposedMarketValueRaw": {
"value": 680000,
"currency": "EUR"
}
},
"team": {
"name": "SC Paderborn 07",
"slug": "sc-paderborn-07",
"shortName": "Paderborn",
"gender": "M",
"sport": {
"name": "Football",
"slug": "football",
"id": 1
},
"userCount": 33644,
"nameCode": "PAD",
"disabled": false,
"national": false,
"type": 0,
"id": 2561
}
}
]
},
"source": "live",
"cacheHit": true,
"timezone": {
"name": "Europe/Amsterdam",
"utcOffset": "+02:00",
"source": "auto",
"country": "NL"
}
}
Head-to-head
Head-to-head
curl -H "x-api-key: YOUR_API_KEY" "https://api.sportsapipro.com/v2/football/match/16434052/h2h"
{
"success": true,
"matchId": 16434052,
"endpoint": "h2h",
"data": {
"teamDuel": {
"homeWins": 1,
"awayWins": 2,
"draws": 2
},
"managerDuel": {
"homeWins": 1,
"awayWins": 0,
"draws": 0
}
},
"source": "live",
"cacheHit": true,
"timezone": {
"name": "Europe/Amsterdam",
"utcOffset": "+02:00",
"source": "auto",
"country": "NL"
}
}