live-stats
Live per-player boxscore
Per-player stat groups for one match, during the game and after it finishes. One response shape for every sport listed below; cached 15s.
COVERAGE, PER SPORT, STATED RATHER THAN IMPLIED. These sports are not at parity and this endpoint does not pretend they are.
- baseball: broad demonstrated coverage.
- basketball, ice_hockey: covered for the primary professional league only (NBA, NHL). Other leagues return a 400 naming the league.
- football: soccer, and only the mapped competitions (EPL, MLS, FIFA World Cup 2026). Anything else returns a 400 naming the league.
- american_football: NFL and NCAAF (FBS) only, from the 2026 season opener. NCAAF FCS matches are a valid request that will keep returning an empty box score: the live feed does not poll that division, and naming it here is cheaper than letting a caller discover it by waiting. Before kickoff of any covered game the request also succeeds with data.teams: [], meta.stale: true and a meta.note saying so. It is NOT a 404: a match with no rows yet is a correct request whose data has not been written, and the two are different answers.
FRESHNESS. meta.as_of is the timestamp of the most recent stat cell in the response, and meta.stale says whether we would expect to have learned something more recently than that. A box score that has stopped updating mid-game and one that is simply quiet are indistinguishable without those two fields, which is why they are here rather than left for the caller to infer from fetched_at.
get/v1/live-stats/{sport}/{matchId}/players
Request
- Base URL: https://api.bigballsdata.com
- URL: https://api.bigballsdata.com/v1/live-stats/{sport}/{matchId}/players
- Auth: one of:
- API key in header x-api-key
- HTTP bearer
Path parameters
sport'basketball' | 'baseball' | 'ice_hockey' | 'football' | 'american_football' required
matchIdstring uuid required
Response
ok
Example response
{
"data": {
"teams": [
{
"stat_groups": [
{
"players": [
{
"player_id": "0905f056-26ed-48d0-b6b2-ca851a8836ca",
"position": {
"name": "Second Base",
"displayName": "Second Baseman",
"abbreviation": "2B"
}
}
]
}
]
}
]
},
"meta": {
"source": "aggregator-free"
}
}Changes
No recorded changes to this operation across all 3 revisions of this API.