Box score
Retrieve per player statistics for one match.
- Refresh interval
- Once every 5 minutes
The matchId comes from
matches.
Where match statistics gives one set of numbers per team, this gives a set per player, grouped by team.
Player metadata
Alongside their statistics, each player carries the metadata below. Id, name, captain and substitute flags, minutes played and offsides are always present. The other fields are included where available.
| Field | Meaning |
|---|---|
| Id | Unique identifier for the player. |
| Name | The commonly known name of the player. |
| Full name | The full registered name. Where available. |
| Match rating |
Performance rating for this match, as a string such as 6.90. Where
available.
|
| Position |
Playing position, one of Goalkeeper, Defender,
Midfielder or Forward. Where available.
|
| Shirt number | Shirt number worn. Where available. |
| Is a captain | Whether the player was the team captain. |
| Is a substitute | Whether the player started as a substitute. |
| Minutes played | Total minutes played in the match. |
| Offside | Number of offsides committed. |
| Logo | URL of the player's image. Where available. |
Statistics
The per player measures group into six families. Rates and accuracies are strings with a
percent sign, such as 66.67 %.
Attacking
Goals scored, assists, and key passes, which are the passes that directly created a chance.
Shots are reported as shots on target, off target and total, with an accuracy figure derived from them. Penalties follow the same shape, with scored, missed, total and accuracy.
Passing
Successful, failed and total passes, with a passing accuracy figure.
Dribbling and duels
Dribbles are reported as successful, failed and total, with a success rate. Duels follow the same pattern, counting the one against one challenges contested, won and lost, with a success rate.
Defending
Total tackles and total interceptions.
Discipline
Fouls committed and fouls received, plus yellow cards, second yellows and red cards.
Goalkeeping
Goals saved and goals conceded apply to whoever was in goal.
Expected goals
Five modelled measures sit alongside the counted ones. They estimate what should have happened given the quality of the chances, rather than what did.
| Measure | Estimates |
|---|---|
| Expected goals, xG | Goals the player should have scored, based on chance quality. |
| Expected assists, xA | Assists the player should have, based on chance quality. |
| Expected goals on target, xGOT | Goals expected from the placement and quality of shots that were on target. |
| Expected goals on target conceded | Goals a goalkeeper should have conceded, given the shots faced. |
| Expected goals prevented, xGP | The difference between expected goals on target conceded and goals actually conceded. |
Expected goals on target conceded and expected goals prevented apply to whoever was in goal, based on the shots they faced.
Parameters
| Parameter | Type | Description |
|---|---|---|
matchIdrequired
|
numberpath | Requested match id. |
Request
curl --request GET \
--url 'https://soccer.highlightly.net/box-score/{matchId}' \
--header 'x-rapidapi-key: YOUR_API_KEY'
const response = await fetch('https://soccer.highlightly.net/box-score/{matchId}', {
headers: {
'x-rapidapi-key': process.env.HIGHLIGHTLY_API_KEY
}
})
if (!response.ok) {
throw new Error(`Highlightly responded ${response.status}`)
}
const data = await response.json()
import os
import requests
response = requests.get(
'https://soccer.highlightly.net/box-score/{matchId}',
headers={
'x-rapidapi-key': os.environ['HIGHLIGHTLY_API_KEY'],
},
timeout=10,
)
response.raise_for_status()
data = response.json()
Response
teamTeamBoxScoreResponserequired3 fields
idnumberrequired
logostringrequired
namestringrequired
playersPlayerBoxScore[]required49 fields
idnumberrequired
namestringrequired
fullNamestring
logostring
matchRatingstring
shirtNumbernumber
isCaptainbooleanrequired
positionstringGoalkeeperDefenderMidfielderForward
minutesPlayednumberrequired
isSubstitutebooleanrequired
offsidesnumberrequired
statisticsPlayerBoxScoreStatistics[]required37 fields
goalsScorednumberrequired
goalsSavednumberrequired
goalsConcedednumberrequired
assistsnumberrequired
dribblesTotalnumberrequired
dribblesSuccessfulnumberrequired
dribblesFailednumberrequired
dribbleSuccessRatestringrequired
fouledByOthersnumberrequired
fouledOthersnumberrequired
tacklesTotalnumberrequired
interceptionsTotalnumberrequired
duelsTotalnumberrequired
duelsWonnumberrequired
duelsLostnumberrequired
duelSuccessRatestringrequired
cardsRednumberrequired
cardsYellownumberrequired
cardsSecondYellownumberrequired
passesAccuracystringrequired
passesSuccessfulnumberrequired
passesFailednumberrequired
passesTotalnumberrequired
passesKeynumberrequired
penaltiesScorednumberrequired
penaltiesMissednumberrequired
penaltiesTotalnumberrequired
penaltiesAccuracystringrequired
shotsOnTargetnumberrequired
shotsOffTargetnumberrequired
shotsTotalnumberrequired
shotsAccuracystringrequired
expectedGoalsnumber
expectedAssistsnumber
expectedGoalsOnTargetnumber
expectedGoalsOnTargetConcedednumber
expectedGoalsPreventednumber
Example response
[
{
"team": {
"id": 34824,
"logo": "https://highlightly.net/soccer/images/teams/34824.png",
"name": "Liverpool"
},
"players": [
{
"id": 0,
"name": "",
"fullName": "",
"logo": "",
"matchRating": "6.90",
"shirtNumber": 2,
"isCaptain": false,
"position": "Defender",
"minutesPlayed": 90,
"isSubstitute": false,
"offsides": 0,
"statistics": [
{
"goalsScored": 0,
"goalsSaved": 0,
"goalsConceded": 0,
"assists": 0,
"dribblesTotal": 3,
"dribblesSuccessful": 2,
"dribblesFailed": 1,
"dribbleSuccessRate": "66.67 %",
"fouledByOthers": 0,
"fouledOthers": 1,
"tacklesTotal": 7,
"interceptionsTotal": 1,
"duelsTotal": 19,
"duelsWon": 10,
"duelsLost": 9,
"duelSuccessRate": "52.63 %",
"cardsRed": 0,
"cardsYellow": 0,
"cardsSecondYellow": 0,
"passesAccuracy": "78.57 %",
"passesSuccessful": 22,
"passesFailed": 0,
"passesTotal": 28,
"passesKey": 3,
"penaltiesScored": 0,
"penaltiesMissed": 0,
"penaltiesTotal": 0,
"penaltiesAccuracy": "0.00 %",
"shotsOnTarget": 1,
"shotsOffTarget": 0,
"shotsTotal": 1,
"shotsAccuracy": "100.00 %",
"expectedGoals": 0.12,
"expectedAssists": 0.25,
"expectedGoalsOnTarget": 0.16,
"expectedGoalsOnTargetConceded": 0,
"expectedGoalsPrevented": 0
}
]
}
]
}
]
Values are the examples declared in the OpenAPI spec, not a captured live response.
Errors
| Status | Description |
|---|---|
400 |
Bad request descriptive error. |
500 |
Internal server error. |