Skip to content
datasportsAPI

ReferenceData reference

Documentation

/

Type to filter the docs by title or path.

v2 contract

Data reference

Every object a response can contain, every frame the stream can push and every value set behind an enum field, each with its type and what it means. Type names are links: start at Fixture and follow the chain down to the last nested field.

Objects
215
REST shapes
Fields
1,440
typed and explained
Stream frames
20
server to client
Enums
89
725 values
Status codes
84
decoded
Statistic keys
302
13 sports

01REST shapes

Objects

The shapes REST responses are made of. An endpoint's data is one of these or a list of them, and nested fields lead on to further objects. Each entry also lists where else it appears, so the graph can be walked in both directions.

Jump to an object215, A–Z

Fixture

43 fields

A single match. Every endpoint and every WebSocket snapshot returns it in this same shape.

idinteger
The fixture’s DataSportsAPI id.
sportstring
Slug of the sport, matching the values listed by /v2/sports.
statusStatus
Current state of the match.
startTimestring (ISO-8601 UTC) | null
Kick-off time. Holds the scheduled start until the source logs the actual kick-off, which then takes its place (the live feed delivers it a few minutes after play begins). Identical across all endpoints and WebSocket deltas.
leagueLeagueRef | null
Competition the fixture belongs to. It is null if the source places the fixture in a competition that has no matching league (observed in minor regional football, e.g. South Africa’s National Second Division on 2026-10-23); in that case season and round are null as well.
seasonSeason | null
Season the fixture is part of.
roundRound | null
Round of the fixture, for competitions organised in rounds.
homeTeamRef | null
The home team. Null until that slot is settled, e.g. while the source still shows a placeholder like "WQF1" (winner of quarter-final 1).
awayTeamRef | null
The away team. Null until that slot is settled (for instance a "WQF1" placeholder from the source).
homeScoreScoreSide
Score of the home team.
awayScoreScoreSide
Score of the away team.
winnerWinner | null
Stays null until status.type is finished, and also when a fight ends as a no contest (fightResult.method noContest). When penalties decide the match, this is always the shoot-out winner regardless of the source (which, on a second leg, reports the team that won the 90 minutes). If the source omits the winner, or declares a draw in a sport where draws are impossible (finishes in regular time or overtime; cricket excluded), we derive it from the score.
venueVenue | null
Where the match is played, if known (frequently null in lower divisions). Populated on /fixtures/{id}, and in date lists when the source provides it. Round, team, player and live lists never include a venue, so a null there means "omitted" rather than "unknown" — fetch /fixtures/{id} to get it.
clockClock | null
The match clock. Null if the source keeps no clock for this fixture, and after the match ends.
firstToServedeprecatedSide | null
Deprecated (2026-10-23); mirrors serving. Because the source refreshes it each game / leg, it reflects who is serving (throwing) at the moment, not who served first. Use serving instead.
servingSide | null
Tennis, darts and other sports with a serve: which side is currently serving (throwing), refreshed by the source every game / leg. Null if the source gives no indication.
homeSeedstring | null
For seeded events such as tennis draws or playoff brackets (basketball, …): the seed of the home side ("1", "12") or its entry status ("WC" wild card, "Q" qualifier, "LL" lucky loser, "PR" protected ranking, …), exactly as shown in the draw. Null for an unseeded side.
awaySeedstring | null
Seed or entry status of the away side; see homeSeed.
notestring | null
Cricket: the match note supplied by the source, which becomes the result line at the end ("Pakistan beat Sri Lanka by 37 runs"). Intended for display only.
battingSideSide | null
Cricket: which side is currently at the crease. Null outside a live innings and in every other sport.
fightResultFightResult | null
MMA / boxing: how, in which round and at what time the fight ended. Null before status.type reaches finished, and when the source supplies no method.
fightDisciplineFightDiscipline | null
Combat sports: the bout’s discipline, when the source labels it (the mma sport includes boxing, kickboxing and Muay Thai cards as well). Only some cards are labelled (ONE, Queensbury, certain OKTAGON fights; never UFC or PFL), so a null value does not imply MMA.
refereeReferee | null
Match official, if the source names one (football and a few other sports; in cricket, the match referee). Present on /fixtures/{id}; always null in lists, where it is omitted.
homeManagerManagerRef | null
Manager or head coach of the home side for this match, if the source names one. Present on /fixtures/{id}; null in lists.
awayManagerManagerRef | null
Manager or head coach of the away side; behaves like homeManager.
surfaceSurface | null
Tennis: the surface the match is played on. Present on /fixtures/{id} and in live lists; null in other sports.
tossCricketToss | null
Cricket: the toss result, after it has taken place. Present on /fixtures/{id}; null in other sports.
umpiresstring[] | null
Cricket: the on-field umpires, named as the source writes them (frequently with a country code, e.g. "Asif Yaqoob (PAK)"). Null when none are listed and in other sports.
tvUmpirestring | null
Cricket: the TV (third) umpire, formatted as for umpires.
previousLegFixtureIdinteger | null
Two-legged ties and playoff series: the DataSportsAPI id of the preceding leg / game, when the source links the two. Look that id up on /fixtures/{id} to get the first-leg score.
aggregateWinnerSide | null
Once the return leg of a two-legged tie is over: the side that went through. Taken from the source’s verdict when available; otherwise from aggregated (the higher total advances) or, if the aggregate is level, from the shoot-out. Null in every other case, including a level aggregate the source leaves unresolved (an away-goals rule). Compare winner, which refers to this match alone: when a second leg goes to penalties both fields name the shoot-out winner, but otherwise they can disagree (a side may win the second leg yet be eliminated). Filled on /fixtures/{id}; in lists and live snapshots it can be null.
fightCardFightCard | null
MMA / boxing: the bout’s section of the card, its running order and its weight class, if the source lists them.
attendanceinteger | null
Crowd figure, if the source reports one (observed for NBA and MLB games, frequently only after the game has started). Present on /fixtures/{id}; omitted (null) in lists.
matchFormatMatchFormat | null
Darts and esports: the format of the match (best of N sets / legs / games), if the source states it. Null in other sports.
inningStateInningState | null
Baseball: the live game situation — inning, half, balls, strikes, outs and runners on base. Null when the game is not in progress or interrupted, and in other sports. Delivered live via WebSocket deltas.
timeoutsTimeouts | null
Basketball: timeouts each side has left. Null outside an in-progress or interrupted game, and whenever the source does not track them. Delivered live via WebSocket deltas.
downAndDistancesince 2026-11-09DownAndDistance | null
American football: the current down, distance and field position. Null when the game is not in progress or interrupted, and in other sports. Delivered live via WebSocket deltas. Available since 2026-11-09.
varChecksince 2026-11-09VarCheck | null
Football: an ongoing VAR review. Null when no review is under way, outside play and in other sports. Delivered live via WebSocket deltas. Available since 2026-11-09.
bonussince 2026-11-09BasketballBonus | null
Basketball: whether each side is in the bonus. Null outside an in-progress or interrupted game, and whenever the source does not report it. The source’s live feed never carries it, so it appears in REST responses and lists only. Available since 2026-11-09.
finalResultOnlysince 2026-11-09boolean
True if the source provides only the final result for this fixture, with no live score, clock or events during play (available since 2026-11-09).
durationssince 2026-11-04Durations | null
Sports played in sets or rounds: the length of every finished period (available since 2026-11-04). Null for sports the source does not time by period (football, basketball, …) and until the first period is over. Delivered live via WebSocket deltas.
lineupsAvailablesince 2026-11-04boolean | null
Becomes true when the source publishes lineups for the fixture, whether predicted or official (check confirmed on /v2/fixtures/{id}/lineups to tell them apart), and false if they are withdrawn. We set it the moment the source’s live feed announces lineups, or when a lineup we fetch contains players. Null means we have no information yet (no announcement observed, nothing fetched). WebSocket deltas carry it live — on fixture:{id} from before kick-off, and on the list channels once play starts. Available since 2026-11-04.
lineupsConfirmedsince 2026-11-04boolean | null
Becomes true when the official lineups are released (matching confirmed on /v2/fixtures/{id}/lineups); otherwise behaves like lineupsAvailable, with null meaning we have no information. Delivered live via WebSocket deltas. Available since 2026-11-04.

Appears inTopPerformanceWsSnapshotWsFixture

Status

6 fields

The state of a match.

typeStatusType
High-level state, computed from phase (mapping in the StatusPhase table).
phaseStatusPhase
Detailed state, computed from code.
codeinteger | null
The source’s raw status code (the data dictionary lists every value); phase, period and finish give you its meaning ready-made.
descriptionstring | null
Human-readable English label taken from our status table (status codes in the data dictionary) and adapted to the sport, for example "Halftime", "2nd half", "After penalties", "After extra time" (football), "After extra innings" (baseball), "After overtime" (basketball, ice hockey, …), "1st innings" (cricket) or "Coverage canceled". For a code we do not recognise, the source’s own wording is passed through. Use it for display, never for branching logic.
periodPeriodKey | null
Period currently being played, or the one just completed during a break. Null before the start and after the end.
finishFinishType | null
The way the result was reached. Only set when type is finished; null otherwise.

Appears inFixturePlayerFixture

ScoreSide

12 fields

Score of one team.

currentnumber | null
The headline score you would see on a scoreboard: goals, points, sets won (tennis / volleyball) or runs (cricket, baseball), counting extra time / overtime. Shoot-out goals are excluded and reported in penalties instead — except in ice hockey, where the shoot-out winner is given one extra goal (3-3 after overtime becomes 3-4). Before the start, and for fixtures whose coverage was canceled, it is null.
periodsRecord<PeriodKey, number>
The score split by period and keyed by PeriodKey — goals per half, quarter or period; games per set in tennis; points per set in volleyball and table tennis; runs per inning in baseball. Extra periods are included too: football and futsal use extra1 / extra2; American football, basketball, handball, ice hockey, water polo and others use overtime; baseball extra innings run from period10 upwards (overtime only if the source reports extra-innings runs as one total). When the source’s breakdown is complete the values sum to current; it is occasionally incomplete (some baseball leagues omit innings, a few futsal matches lack a half), and ice hockey decided by a shoot-out is intentionally one goal short (see current). Esports uses one key per game (map), with a title-dependent meaning: Counter-Strike stores 1 for each map a side won and 0 for the rest (maps not played count as 0, through period5 in a best of 3); in League of Legends it is the side’s kill count in game N, so the values do not sum to current, which counts games won. Each game’s winner and score are on /fixtures/{id}/games. Empty when the source gives no breakdown.
tieBreaksRecord<PeriodKey, number>
Tennis: points won in each set’s tie-break, using the same keys as periods (e.g. { "period2": 7 }).
normalTimenumber | null
Score when regulation time ended, if the source provides it.
penaltiesnumber | null
Goals converted in a penalty shoot-out. In ice hockey the shoot-out winner gets 1 here and the loser 0, in line with the single goal added to current.
aggregatednumber | null
Combined score across both legs of a two-legged tie.
seriesnumber | null
Playoff series: number of games this side has won in the series to date (basketball, baseball, ice hockey, water polo).
pointstring | null
Tennis: score within the current game — "0" | "15" | "30" | "40" | "A", or a plain number ("0"–"N") during a tie-break. Null when play is neither in progress nor interrupted.
redCardsinteger | null
Football: number of red cards this side has received, counting second yellows.
inningsRecord<PeriodKey, CricketInnings>
Cricket: each innings of this side, keyed inning1…N. Empty in other sports.
hitsinteger | null
Baseball: hit total, i.e. the H in the R/H/E line.
errorsinteger | null
Baseball: error total, i.e. the E in the R/H/E line.

Appears inFixturePlayerFixture

CricketInnings

5 fields

A single cricket innings played by one side.

runsinteger | null
Total runs made.
wicketsinteger | null
Number of wickets that have fallen.
oversnumber | null
Overs delivered, in cricket notation (49.5 means 49 overs plus 5 balls).
runRatenumber | null
Average runs scored per over.
targetRunRatenumber | null
Run rate the chasing side needs to reach its target.

Appears inScoreSideScoreSidePatch

Clock

13 fields

Timing data for a match. Running clocks (football, rugby, …): compute elapsed = periodOffsetSeconds + (now − periodStartedAt) and minute = floor(elapsed / 60) + 1; once periodEndSeconds is passed, display periodEndSeconds / 60 followed by "+" and the extra minutes. This applies only while status.phase is inprogress. Stop clocks (basketball, handball, ice hockey, …): playedSeconds is the value at playedAt and advances only while running is true. Tennis, table tennis, badminton and esports (set / map sports) carry only periodStartedAt (start of the current set or map), and only if the source sends it — the clock as a whole is frequently null. A field is null whenever the source does not provide it for that sport; the entire clock is null when no clock exists and after the match ends. Lists other than /fixtures/{id} may include fewer clock fields (static values such as periodLengthSeconds can be null there).

periodStartedAtstring (ISO-8601 UTC) | null
Moment the clock for the current period was started.
periodOffsetSecondsnumber | null
Running clock: seconds already on the clock at the start of the period (2700 for the second half in football). Unit: seconds.
periodEndSecondsnumber | null
Running clock: clock reading, in seconds, at which regulation time for the period runs out (2700 for the first half in football). Unit: seconds.
maxExtraSecondsnumber | null
Running clock: upper bound on the added time the source’s display permits after periodEndSeconds. Unit: seconds.
injuryTimeMinutesnumber | null
Stoppage time announced for the current period. Unit: minutes.
playedSecondsnumber | null
Stop clock: time played in seconds, valid at playedAt. Unit: seconds.
playedAtstring (ISO-8601 UTC) | null
Timestamp at which playedSeconds was captured.
runningboolean | null
Stop clock: true while the game clock is ticking.
runningUpdatedAtstring (ISO-8601 UTC) | null
Time of the most recent change to running.
periodLengthSecondsnumber | null
Stop clock: duration of a single regulation period. Unit: seconds.
overtimeLengthSecondsnumber | null
Duration of a single overtime period. Unit: seconds.
periodCountinteger | null
How many regulation periods the match has (in combat sports, the scheduled rounds).
lastPeriodEndedAtsince 2026-11-04string (ISO-8601 UTC) | null
End time of the latest completed period. During a break (half-time, between periods) this marks when the break started, so the break has lasted now − lastPeriodEndedAt. Used with football-style running clocks; null if the source sends nothing (before the first break, in other sports, or for data stored before 2026-11-04). Available since 2026-11-04.

Appears inFixturePlayerFixture

FightResult

3 fields

MMA / boxing: the way a completed fight was settled.

methodFightMethod
The winning method.
roundinteger | null
Round in which the fight finished.
roundTimeSecondsinteger | null
Elapsed time in that round when the fight was halted (KO, TKO, submission, disqualification, …), if the source records it. Null for every decision (unanimous, split, majority, technical, drawn ones too): nothing stopped the fight, and the source’s figure cannot be trusted there. Unit: seconds.

Appears inFixtureFixturePatchPlayerFixture

Referee

9 fields

The match official (for cricket, the match referee) and the career totals the source records for them. For a per-match rate, divide a total by games.

idinteger
The referee’s DataSportsAPI id.
namestring
Name of the referee.
slugstring | null
Slug for use in URLs.
countryCountry | null
Country of the referee, if the source supplies it.
gamesinteger | null
Number of matches the source has logged with this referee in charge, across the whole career and all competitions.
yellowCardsinteger | null
Yellow cards issued across those matches. Null in sports that have no cards (cricket).
redCardsinteger | null
Direct red cards issued across those matches. Null in sports that have no cards.
yellowRedCardsinteger | null
Dismissals for a second yellow across those matches. Null in sports that have no cards.
imagesince 2026-11-04string (URL) | null
Referee photo hosted on our CDN. Null if no image exists or it has not been uploaded yet. Available since 2026-11-04.

Appears inFixturePlayerFixture

Surface

3 fields

Tennis: the type of court used for the match.

typeSurfaceType
Surface category of the court.
indoorboolean | null
True for an indoor court and false for an outdoor one; null if the source does not specify.
namestring
Surface label as worded by the source, such as "Hardcourt outdoor". For display only.

Appears inFixturePlayerFixtureTennisYearStatistics

FightCard

3 fields

MMA / boxing: a bout’s placement on the event card.

sectionFightCardSection | null
The part of the card (main card, prelims, …), if the source specifies it.
orderinteger | null
Position of the bout in the source’s numbering of the card; larger numbers come later, and the main event carries the largest.
weightClassstring | null
Weight class of the bout, using the source’s naming ("light", "bantam", "feather", …).

Appears inFixturePlayerFixture

FixturePatch

18 fields

Contents of changes in a WebSocket delta: a partial Fixture that keeps the same field names and nesting. Deep-merge it into your local Fixture — nested objects merge key by key, while any other value (null included) overwrites. No fields beyond those listed here are ever sent.

`status` (optional){ type?: StatusType; phase?: StatusPhase; code?: integer | null; description?: string | null; period?: PeriodKey | null; finish?: FinishType | null }
Status fields that were modified. A status change always repeats type, phase and finish, plus period when it is known.
`startTime` (optional)string (ISO-8601 UTC) | null
Updated start time, either because the fixture was rescheduled or because the source has logged the actual kick-off (see Fixture.startTime).
`winner` (optional)Winner | null
Sent once the match is over.
`homeScore` (optional)ScoreSidePatch
Modified fields of the home ScoreSide.
`awayScore` (optional)ScoreSidePatch
Modified fields of the away ScoreSide.
`clock` (optional){ periodStartedAt?: string (ISO-8601 UTC) | null; periodOffsetSeconds?: number | null; periodEndSeconds?: number | null; maxExtraSeconds?: number | null; injuryTimeMinutes?: number | null; playedSeconds?: number | null; playedAt?: string (ISO-8601 UTC) | null; running?: boolean | null; runningUpdatedAt?: string (ISO-8601 UTC) | null; periodLengthSeconds?: number | null; overtimeLengthSeconds?: number | null; periodCount?: integer | null; lastPeriodEndedAt?: string (ISO-8601 UTC) | null } | null
A null value signals the match has ended; discard the clock.
`firstToServe` (optional)deprecatedSide | null
Deprecated; carries the same value as serving.
`serving` (optional)Side | null
Side currently serving (throwing).
`note` (optional)string | null
Cricket: updated match note.
`battingSide` (optional)Side | null
Cricket: side currently batting; null when nobody is.
`inningState` (optional)InningState | null
Baseball: updated game state, always delivered as a complete object; null once play has stopped.
`timeouts` (optional){ homeRemaining?: integer | null; awayRemaining?: integer | null; perTeam?: integer | null } | null
Basketball: timeout counts that were modified; null once play has stopped.
`downAndDistance` (optional)since 2026-11-09{ down?: integer | null; yardsToGo?: integer | null; possession?: Side | null; ballOn?: Side | null; yardLine?: integer | null; goalToGo?: boolean | null; playType?: DownPlayType | null } | null
American football: fields that were modified (the full object when tracking begins); null once play has stopped. Available since 2026-11-09.
`varCheck` (optional)since 2026-11-09VarCheck | null
Football: a full object when a VAR review begins, null when it finishes. Available since 2026-11-09.
`durations` (optional){ periods?: Record<PeriodKey, number | null>; totalSeconds?: integer | null }
A newly finished period with its length in seconds (keyed as in ScoreSide.periods; null means the source removed it, so delete it), together with the updated total. Merge it the same way as a score map.
`fightResult` (optional)FightResult | null
MMA / boxing: how, in which round and when the fight finished, sent as a whole object once the source has it. Expect it in a delta after the one that ends the fight, since the source releases it ~20–60 s after the winner is known.
`lineupsAvailable` (optional)since 2026-11-04boolean | null
True when lineups are published and false when they are pulled, sent as soon as the source announces it, including before kick-off (fixture:{id}). Available since 2026-11-04.
`lineupsConfirmed` (optional)since 2026-11-04boolean | null
Signals that the official lineups have been released. Available since 2026-11-04.

Appears inWsDelta

ScoreSidePatch

12 fields

Only the ScoreSide fields that changed.

`current` (optional)number | null
The headline score you would see on a scoreboard: goals, points, sets won (tennis / volleyball) or runs (cricket, baseball), counting extra time / overtime. Shoot-out goals are excluded and reported in penalties instead — except in ice hockey, where the shoot-out winner is given one extra goal (3-3 after overtime becomes 3-4). Before the start, and for fixtures whose coverage was canceled, it is null.
`normalTime` (optional)number | null
Score when regulation time ended, if the source provides it.
`penalties` (optional)number | null
Goals converted in a penalty shoot-out. In ice hockey the shoot-out winner gets 1 here and the loser 0, in line with the single goal added to current.
`aggregated` (optional)number | null
Combined score across both legs of a two-legged tie.
`series` (optional)number | null
Playoff series: number of games this side has won in the series to date (basketball, baseball, ice hockey, water polo).
`point` (optional)string | null
Tennis: score within the current game — "0" | "15" | "30" | "40" | "A", or a plain number ("0"–"N") during a tie-break. Null when play is neither in progress nor interrupted.
`redCards` (optional)integer | null
Football: number of red cards this side has received, counting second yellows.
`hits` (optional)integer | null
Baseball: hit total, i.e. the H in the R/H/E line.
`errors` (optional)integer | null
Baseball: error total, i.e. the E in the R/H/E line.
`periods` (optional)Record<PeriodKey, number | null>
Just the periods whose value changed. A null value means the source removed that period, so delete it.
`tieBreaks` (optional)Record<PeriodKey, number | null>
Just the tie-breaks whose value changed; null means one was removed.
`innings` (optional)Record<PeriodKey, CricketInnings>
Just the innings that changed. Merge them key by key, as with periods; any innings left out keeps its previous value.

Appears inFixturePatch

TeamRef

6 fields

Compact team reference embedded in other objects (fixtures, standings, players, leaders).

idinteger
The team’s DataSportsAPI id.
namestring
Name of the team. Individual sports (tennis, table tennis, darts, MMA, …) also model each competitor as a team — a single player, or a doubles pair.
slugstring | null
Slug for use in URLs.
shortNamestring | null
Abbreviated display name, if the source provides one.
codestring | null
Abbreviation of 1–4 characters as used on scoreboards (e.g. "ARS", "LA"); generated artificially for individual sports.
imagestring (URL) | null
Team logo hosted on our CDN; null if the team has no image.

Appears inFixturePlayerTransferFormFixturePlayerOfTheSeasonWinnerRaceCareerSeasonTeamRaceDriverScorecardInnings+31 more

TeamDetail

17 fields

Full profile of a team.

idinteger
The team’s DataSportsAPI id.
namestring
Name of the team. Individual sports (tennis, table tennis, darts, MMA, …) also model each competitor as a team — a single player, or a doubles pair.
slugstring | null
Slug for use in URLs.
shortNamestring | null
Abbreviated display name, if the source provides one.
codestring | null
Abbreviation of 1–4 characters as used on scoreboards (e.g. "ARS", "LA"); generated artificially for individual sports.
imagestring (URL) | null
Team logo hosted on our CDN; null if the team has no image.
sportstring | null
Slug of the sport.
countryCountry | null
Country the team is based in or represents.
venueVenue | null
The team’s home ground.
colors{ primary: string | null; secondary: string | null; text: string | null } | null
Kit colours in #rrggbb form. Null when the source has no real colours for the team (the source fills in a placeholder blue for every individual competitor and most minor teams).
genderTeamGender | null
Whether the team is men’s, women’s or mixed; null if the source does not specify.
nationalboolean | null
True for a national team, false for a club; null if the source does not specify.
kindTeamKind | null
Distinguishes a team, a single competitor in an individual sport and a doubles pair; null if the source does not specify.
managerManagerRef | null
Current manager or head coach, if the source names one.
personPerson | null
For individual competitors the source profiles (tennis, MMA): date of birth, height, weight and so on. Null for everyone else.
recordFighterRecord | null
MMA / boxing fighters: career win-draw-loss record together with how their most recent fights ended. Null for all other teams.
foundedOnsince 2026-11-09string (YYYY-MM-DD) | null
Founding date of the club, if the source has it (roughly half of the teams we have read); null otherwise. Available since 2026-11-09.

Person

12 fields

Personal details of an individual competitor (kind: individual) for whom the source keeps a profile (tennis players, MMA fighters). Field names and units match Player.

dateOfBirthstring (YYYY-MM-DD) | null
Birth date.
heightCminteger | null
Body height. Unit: cm.
weightKgnumber | null
Body weight in kilograms (for MMA, the weight the fighter is listed at).
reachCminteger | null
Arm reach, for MMA. Unit: cm.
nicknamestring | null
MMA ring name or nickname, such as "Storm".
weightClassstring | null
Weight class in the source’s wording (MMA: "feather", "light", "bantam", …).
birthplacestring | null
Place of birth in the source’s wording ("San Candido, Italy").
residencestring | null
Place of residence in the source’s wording ("Monte Carlo, Monaco").
handednessHandedness | null
Tennis: which hand the player plays with.
turnedProinteger | null
Tennis: year the player became a professional.
prizeMoneySeasonMoney | null
Tennis: prize money earned in the current season.
prizeMoneyCareerMoney | null
Tennis: total prize money earned over the career.

Appears inTeamDetail

LeagueRef

8 fields

A league or competition. /v2/leagues/{id} and every league list return this same shape.

idinteger
The league’s DataSportsAPI id.
namestring
Name of the league or competition.
slugstring | null
Slug for use in URLs.
sportstring | null
Slug of the sport, matching the values listed by /v2/sports.
categorystring | null
How the source groups the league: by country ("England"), region ("International", "North America", "World"), tour ("ATP", "WTA") or game (esports: "Counter Strike"). It is not necessarily a country; use country for that.
countryCountry | null
Country of the league when its category is a country; null for regions, tours and games.
imagestring (URL) | null
League logo hosted on our CDN; null if the league has no image.
prioritysince 2026-11-04integer | null
The source’s prominence ranking for the competition, handy for ordering leagues: a higher value means a bigger competition (for example 719 for the Champions League, 704 for the Premier League, 702 for LaLiga, 519 for Primeira Liga), and 0 means unranked. It is filled only where the source supplies it: on the league embedded in a fixture and in the /v2/fixtures?date&sport day lists. Everywhere else — league profiles, directories, search — it is null, as it is on rows saved before 2026-11-04. Available since 2026-11-04.

Appears inFixtureFormFixtureGrandSlamResultsSearchFixturePlayerLeagueSeasonsPlayerFixtureRankingRowLeagueDetail+3 more

Country

3 fields

A country record.

codestring | null
Two-letter code supplied by the source. ISO 3166-1 alpha-2, apart from XK for Kosovo and four codes for the UK home nations (England EN, Scotland SX, Wales WA, Northern Ireland NX). Null if unknown.
namestring
Country name in English.
flagsince 2026-11-04string (URL) | null
Flag image (PNG) hosted on our CDN. Null when there is no code or the image has not been uploaded yet. Available since 2026-11-04.

Appears inRefereeTeamDetailLeagueRefVenuePlayerSquadPlayerLineupPlayerSeasonInfo+9 more

Season

5 fields

One season of a league.

idinteger
The season’s DataSportsAPI id.
namestring | null
Full season name, such as "Premier League 26/27".
yearstring | null
Display label in the source’s format: "26/27" or "2026/2027" when the season spans two years, "2026" for a calendar-year season. Use startYear / endYear for sorting and filtering.
startYearinteger | null
Year in which the season begins (2026 for both "26/27" and "2026"); null if the label cannot be parsed.
endYearinteger | null
Year in which the season finishes (2027 for "26/27"; equal to startYear for a calendar-year season); null if the label cannot be parsed.

Appears inFixturePlayerOfTheSeasonWinnerGrandSlamYearRaceCareerSeasonPlayerFixtureRaceRaceSummaryPlayerCareerSeason

Round

4 fields

One round within a league season.

numberinteger
Round number from the source. Treat it as an opaque key rather than a sequence: cups count rounds by how many entrants remain (32 for a tennis "Round of 64"), and playoff rounds get large values (636). Use it with /v2/leagues/{id}/fixtures. The source gives some competitions no round structure — NBA and NHL regular seasons, NCAA, one-off tennis or MMA events; their fixtures may still have a round, but /rounds comes back empty and filtering by round yields nothing, so query them by date.
namestring | null
Name of the round, if it has one ("Quarterfinals", "Playoff round").
slugstring | null
Tells apart rounds that share a number across different phases. When present, include it in /fixtures requests.
prefixstring | null
An additional qualifier (e.g. "Qualification"); send it to /fixtures along with slug.

Appears inFixtureRoundsPlayerFixture

Rounds

2 fields

All rounds of a season plus the one in progress. Returned empty (current: null, rounds: []) for competitions the source does not structure in rounds; see Round.number.

currentRound | null
—
roundsRound[]
—

Venue

5 fields

A stadium or arena: where a fixture takes place, or a team’s home ground.

idinteger | null
The venue’s DataSportsAPI id; null if the source supplies the venue without an id.
namestring | null
Name of the stadium or arena.
citystring | null
City where the venue is located.
countryCountry | null
Country where the venue is located.
capacityinteger | null
Number of seats.

Appears inFixtureTeamDetailCupBlockSearchResultPlayerFixture

PlayerRef

5 fields

Compact player reference embedded in other objects.

idinteger
The player’s DataSportsAPI id.
namestring
Name of the player.
slugstring | null
Slug for use in URLs.
shortNamestring | null
Abbreviated display name such as "B. Saka", if the source provides one.
imagestring (URL) | null
Player photo hosted on our CDN; null if the player has no image.

Appears inTransferLineupPlayerMissingPlayerIncidentBuildUpStepBestPlayerShotAveragePosition+18 more

ManagerRef

5 fields

Compact reference to a team’s manager (head coach), embedded in other objects.

idinteger
The manager’s DataSportsAPI id.
namestring
Name of the manager or head coach.
slugstring | null
Slug for use in URLs.
shortNamestring | null
Abbreviated name such as "F. Hurzeler".
imagesince 2026-11-04string (URL) | null
Manager photo hosted on our CDN. Null if no image exists or it has not been uploaded yet. Available since 2026-11-04.

Appears inFixtureTeamDetailManagerDuelPlayerFixture

Player

17 fields

Full profile of a player.

idinteger
The player’s DataSportsAPI id.
namestring
The player’s full name.
slugstring | null
Slug for use in URLs.
shortNamestring | null
Abbreviated name such as "B. Saka".
positionPosition | null
Primary playing position.
positionCodestring | null
Position code as used by the source.
jerseyNumberstring | null
Shirt number as a string, since basketball and American football treat "0" and "00" as distinct numbers. Null if unknown; rugby squads’ "0" placeholder is dropped.
heightCminteger | null
Body height. Unit: cm.
preferredFoot"left" | "right" | "both" | null
Football: the player’s stronger foot — left, right or both.
dateOfBirthstring (YYYY-MM-DD) | null
Birth date.
countryCountry | null
The player’s nationality.
marketValueMoney | null
Estimated value on the transfer market; null if unknown.
contractUntilstring (YYYY-MM-DD) | null
Date the current contract expires; null if unknown.
imagestring (URL) | null
Player photo hosted on our CDN.
injuryInjury | null
Ongoing injury, if the source records one (football, mainly in covered leagues); null means no injury is listed.
detailedPositionsDetailedPosition[]
Football: fine-grained positions the player occupies, primary first (e.g. ["striker"], ["rightWinger", "attackingMidfielder"]). Empty if the source lists none, as in other sports and minor leagues; position keeps the broad line either way.
teamTeamRef | null
Team the player currently belongs to.

Injury

5 fields

An injury a player is currently carrying.

descriptionstring | null
Name of the injury, such as "Hamstring Injury".
statusInjuryStatus | null
Availability status: out, day to day, …
sincestring (YYYY-MM-DD) | null
Date the injury began (UTC day).
expectedReturnstring (YYYY-MM-DD) | null
Projected return date (UTC day), if the source offers an estimate.
updatedAtstring (ISO-8601 UTC) | null
Time of the source’s latest update to this injury.

Appears inPlayerSquadPlayer

SquadPlayer

16 fields

A member of a squad. Identical to Player minus team, which is implied by the squad.

idinteger
The player’s DataSportsAPI id.
namestring
The player’s full name.
slugstring | null
Slug for use in URLs.
shortNamestring | null
Abbreviated name such as "B. Saka".
positionPosition | null
Primary playing position.
positionCodestring | null
Position code as used by the source.
jerseyNumberstring | null
Shirt number as a string, since basketball and American football treat "0" and "00" as distinct numbers. Null if unknown; rugby squads’ "0" placeholder is dropped.
heightCminteger | null
Body height. Unit: cm.
preferredFoot"left" | "right" | "both" | null
Football: the player’s stronger foot — left, right or both.
dateOfBirthstring (YYYY-MM-DD) | null
Birth date.
countryCountry | null
The player’s nationality.
marketValueMoney | null
Estimated value on the transfer market; null if unknown.
contractUntilstring (YYYY-MM-DD) | null
Date the current contract expires; null if unknown.
imagestring (URL) | null
Player photo hosted on our CDN.
injuryInjury | null
Ongoing injury, if the source records one (football, mainly in covered leagues); null means no injury is listed.
detailedPositionsDetailedPosition[]
Football: fine-grained positions the player occupies, primary first (e.g. ["striker"], ["rightWinger", "attackingMidfielder"]). Empty if the source lists none, as in other sports and minor leagues; position keeps the broad line either way.

Transfer

10 fields

A single player movement between teams, such as a transfer, loan, signing, trade or release. It has no id; the combination of player, type and date identifies it.

playerPlayerRef
Player involved in the move.
typeTransferType
Category of the move.
datestring (YYYY-MM-DD) | null
Date the move became effective (UTC day); null if the source gives no date.
fromTeamRef | null
Club the player departed; null for a free agent or for a side the source has no team record for (see fromName).
fromNamestring | null
The club the player left, named as the source writes it (e.g. "Bryne FK Yth."); set even when from is null.
toTeamRef | null
Club the player moved to; null after a waiver, release or retirement, or for a side the source has no team record for (toName then reads "No team" for releases and free agents).
toNamestring | null
Name of the destination club as written by the source; works like fromName.
feeMoney | null
Transfer fee, if the source states it. Null for free, undisclosed or unknown fees and for any move that is not a transfer.
freeTransferboolean
True if the source marks the move as free, meaning no fee changed hands.
draft{ round: integer | null; pick: integer | null } | null
For type draft: the round and pick number, if listed. Null otherwise.

Appears inTeamTransfersTransferFeed

TeamTransfers

2 fields

Recent incoming and outgoing moves for a team as listed by the source, covering roughly the past year.

arrivalsTransfer[]
Incoming moves, most recent first.
departuresTransfer[]
Outgoing moves, most recent first.

TransferFeed

2 fields

One page of the most recent football transfers (GET /v2/transfers). Available since 2026-11-09.

transfersTransfer[]
Moves on this page (no more than 50), sorted as requested.
hasNextPageboolean
True if another page might contain further moves.

Lineups

3 fields

Team sheets for both sides.

confirmedboolean
True when the official lineups have been released; false means they are predicted or not yet published.
homeTeamLineup
Lineup of the home side.
awayTeamLineup
Lineup of the away side.

Appears inWsLineups

LineupPlayer

16 fields

An individual entry in a lineup.

playerPlayerRef | null
Player reference.
positionPosition | null
Position the player fills in this lineup.
positionCodestring | null
Position code from the source, as shown on a team sheet ("G", "LW", "QB", "1B").
jerseyNumberstring | null
Shirt number as a string, since "00" is possible.
substituteboolean
True if the player started on the bench.
captainboolean
True for the team captain.
heightCmsince 2026-11-06integer | null
Height, copied over from the profile at GET /v2/players/{id}; null if the source has no value. Available since 2026-11-06. Unit: cm.
dateOfBirthsince 2026-11-06string (YYYY-MM-DD) | null
Birth date from the player’s profile; null if unknown. Available since 2026-11-06.
countrysince 2026-11-06Country | null
Nationality from the player’s profile, flag included; null if unknown. Available since 2026-11-06.
marketValuesince 2026-11-06Money | null
Estimated market value from the player’s profile; null if unknown (the source only provides it for some football players). Available since 2026-11-06.
ratingnumber | null
Match rating to 2 decimal places (e.g. 7.4); null for an unrated player.
avgRatingnumber | null
Football: the player’s average match rating over the season (2 decimals), included when the source sends it with the lineup — usually in the run-up to kick-off and around it.
ratingVersions{ original: number | null; alternative: number | null } | null
Football: the rating from the original model alongside the one from the source’s alternative model.
star1 | 2 | 3 | null
Ice hockey: whether the player was picked as first, second or third star of the game.
battingOrderinteger | null
Baseball: the player’s slot in the batting order.
statisticsRecord<string, number> | null
The player’s match statistics, using sport-specific camelCase keys from the same vocabulary as team statistics: whenever a key measures the same thing as a team StatItem, it shares that key (football minutesPlayed, passes, accuratePasses, shotsOnGoal, expectedGoals …; basketball points, fieldGoalsMade, fieldGoalsAttempted, secondsPlayed …; ice hockey goals, shotsOnGoal, penalties, plusMinus, savePercentage …). Every …Percentage key is a share from 0 to 100 — ice-hockey save percentages too (94.1 rather than 0.941). Values are in seconds where the key name says so. Null if the player has no statistics.

Appears inTeamLineup

MissingPlayer

5 fields

A player who is unavailable for a fixture.

playerPlayerRef | null
Player reference.
availabilityAvailability | null
Whether the player is ruled out or only doubtful.
reasonMissingReason | null
Cause of the absence.
descriptionstring | null
Further detail in the source’s words, such as "Hamstring Injury" or "Red card suspension".
expectedReturnAtstring (ISO-8601 UTC) | null
Anticipated return time, if known.

Appears inTeamLineup

Statistics

1 field

Match statistics broken down by period.

periods({ period: "all" | PeriodKey; groups: StatGroup[] })[]
An entry for each period the source provides statistics for, beginning with "all".

Appears inWsStatistics

StatGroup

3 fields

A themed set of statistics.

keystring
Stable group identifier from a per-sport table, not derived from the display name — "matchOverview", "attack", "other" and so on.
namestring | null
Human-readable group title, such as "Match overview".
itemsStatItem[]
—

Appears inStatistics

StatItem

6 fields

A single match statistic with values for both teams.

keystring
Stable camelCase identifier. A given key always denotes the same quantity, across all sports and in lineup player statistics, though it may show up in two groups. Ratio keys are named after the successes their value counts (aerialDuelsWon, fieldGoalsMade, accurateCrosses, firstServesIn, powerPlayConversion) and never end in …Percentage; that suffix is reserved for keys whose value is already a 0–100 share (duelsWonPercentage, corsiPercentage). Note that blocks counts attempts this side blocked, while shotsBlocked counts this side’s own shots that got blocked. The data dictionary lists every key per sport.
namestring | null
English label as provided by the source.
kindStatKind
Tells you how to interpret the value and total of the statistic.
higherIsHigherIs | null
Indicates whether a larger number is better; use it to emphasise the side that leads.
homeStatSide
Home side’s figures.
awayStatSide
Away side’s figures.

Appears inStatGroup

StatSide

3 fields

A single team’s value for a statistic.

displaystring | null
Ready-to-display text, such as "57%", "33/53 (62%)" or "1:22".
valuenumber | null
Underlying numeric value; interpret it using the item’s kind.
totalnumber | null
For kind ratio, the number of attempts; for kind time, the seconds available. Null for other kinds.

Appears inStatItem

Incident

23 fields

Something that happened during a match. As with all timeline lists, entries run oldest first (chronological order).

typeIncidentType
Category of the event.
detailIncidentDetail | null
Sub-category within the type; null on period and injuryTime rows.
sideSide | null
Side the event is credited to (an own goal belongs to the side that benefits from it); null on period / injuryTime rows.
minuteinteger | null
Match minute. Null whenever the clock is stopped — before kick-off, at half-time and after full time, for bench events, and during a shoot-out. Unit: minutes.
addedMinuteinteger | null
How far into stoppage time the event happened (90+3 gives minute 90, addedMinute 3). On injuryTime rows it holds the announced minutes. Unit: minutes.
secondinteger | null
Game clock in seconds, if the source supplies it — present on all rows in ice hockey, basketball, handball and rugby, but only on period rows in football. Unit: seconds.
periodPeriodKey | null
Period in which the event took place. On period rows it is the period that just ended (ET → extra2, PEN → penalties, FT → period2 in football and period4 in basketball). On other rows it is the period bounded by the surrounding period rows, or the source’s own value when supplied; shoot-out kicks use penalties. Null only if it cannot be determined (no period row yet and the period length for the sport is unknown).
playerPlayerRef | null
Main player involved: the scorer, the booked or penalised player, the subject of a VAR check, or the shoot-out taker.
playerNamestring | null
Name of the player; filled even when the source provides a name without a player record (as with some own goals).
assistsPlayerRef[]
Players credited with assists on the goal, in order (up to two in ice hockey).
playerInPlayerRef | null
For a substitution: the player entering the field.
playerOutPlayerRef | null
For a substitution: the player leaving the field.
drawnByPlayerRef | null
For an ice hockey suspension: the player who drew the penalty.
homeScorenumber | null
Home score immediately after the event (on goals, period rows and shoot-out kicks). For period rows in set sports (volleyball, table tennis, badminton) it is the number of sets won so far; the points inside each set are given by /points and by the fixture’s periods.
awayScorenumber | null
Away score immediately after the event (sets won, on period rows in set sports).
textstring | null
On period rows: the label a scoreboard would show ("HT", "FT", "Q4", "3rd period", "Overtime", "PEN"). For display only.
reasonstring | null
For a card, why it was shown ("Foul", "Violent conduct"); for a suspension, the offence ("Holding"); for a missed penalty, how it was missed ("Goalkeeper save", "Off target").
rescindedboolean | null
For a card: true if it was later withdrawn.
confirmedboolean | null
For a varDecision: true when the original decision was upheld.
shootoutSequenceinteger | null
For a shootoutPenalty: position of the kick in the overall order across both teams (1 is the opening kick of the shoot-out).
shootoutRoundinteger | null
For a shootoutPenalty: the round, i.e. whether it was the taking side’s 1st, 2nd, … kick.
durationSecondsinteger | null
For a suspension: how long the player is excluded. Unit: seconds.
buildUpBuildUpStep[]
For a football goal: the sequence of passes and shots leading up to it, ending with the goal itself (covered leagues only; empty elsewhere and for all other incidents).

Appears inKeyedIncident

KeyedIncident

2 fields

An incident paired with its stable key, as used in events frames.

keystring
Identifier of the incident that stays stable within the fixture, built as type:side:minute:addedMinute (e.g. "goal:home:34:0", with "-" standing in for a null side or minute). Additional incidents in the same slot get #2, #3, … in list order. The player is not part of the key, so correcting the scorer or goal type keeps the key and counts as an update; correcting the minute produces a new key and removes the old one.
incidentIncident
The match event itself. As with all timeline lists, entries run oldest first (chronological order).

Appears inIncidentChangesWsEvents

IncidentChanges

3 fields

The difference between an events frame and the one before it.

addedstring[]
Keys of incidents that did not exist in the previous events frame (or in the server’s earlier copy).
updatedstring[]
Keys of incidents whose details were modified (scorer, assist, build-up, rescinded card, …).
removedKeyedIncident[]
Incidents that have disappeared from the source, each with its final content — for example a goal cancelled by VAR. The score reverts through a delta, and the goal shows up here once REST confirms its removal.

Appears inWsEvents

BuildUpStep

11 fields

A single action in the move leading to a goal, as mapped by the source (football, covered leagues).

actionBuildUpAction
Type of action performed in this step.
sideSide | null
Team of the player performing the action (for an own goal, the final step belongs to the defending side).
playerPlayerRef | null
Player who performed the action.
minuteinteger | null
Minute of the match. Unit: minutes.
positionPitchSpot | null
Pitch location where the action began.
endPositionPitchSpot | null
For a pass / cross: where the ball ended up. Null for other actions.
assistboolean
True for the pass credited as the assist.
bodyPartBodyPart | null
For the goal: the body part used to strike it.
expectedGoalsnumber | null
For a goal / savedShot: xG value of the chance on a 0–1 scale, if the source provides it.
expectedGoalsOnTargetnumber | null
For a goal / savedShot: expected goals on target (xGOT), if available.
goalMouthLocationGoalMouthLocation | null
For the goal: the area of the goal mouth it went into.

Appears inIncident

PitchSpot

2 fields

A location on a football pitch.

xnumber
Lengthwise position from 0 to 100, oriented in the attacking direction of the SCORING side (100 is the goal the ball ended up in, own goals included). For away goals we rotate the source’s coordinates, in which the home side always attacks towards 100 (corrected 2026-10-23). Unit: percent.
ynumber
Widthwise position from 0 to 100, rotated together with x (seen from the scoring side). Unit: percent.

Appears inBuildUpStep

H2H

4 fields

The record of the two teams against each other; the endpoint answers null when there is none.

homeWinsinteger
Meetings won by the home team of this fixture.
awayWinsinteger
Meetings won by the away team of this fixture.
drawsinteger
Number of drawn meetings.
managerDuelManagerDuel | null
How the two managers have fared head to head (football and other sports that have managers). Null if they have never met or the source has no data.

ManagerDuel

5 fields

Head-to-head record between the two managers, counting every team either of them has managed.

homeManagerManagerRef | null
Manager of the home team in this fixture.
awayManagerManagerRef | null
Manager of the away team.
homeWinsinteger
Wins for teams led by the home manager over teams led by the away manager.
awayWinsinteger
Wins for the away manager’s teams.
drawsinteger
Number of drawn meetings.

Appears inH2H

PregameForm

2 fields

Form of both sides heading into a fixture. A side is null if the source has no form for it. If only recent matches exist — tennis, for instance, has no competition form guide at the source — results is empty and the table figures are null, but lastFixtures is filled.

homeTeamForm | null
—
awayTeamForm | null
—

TeamForm

8 fields

Pre-match form of a single side.

resultsFormResult[]
Up to five most recent results in this competition prior to the fixture, ordered from oldest to newest.
positioninteger | null
Table position before the fixture.
pointsinteger | null
Points in the table before the fixture, for competitions whose standings use points (football, ice hockey, handball, rugby, …); null otherwise.
winsinteger | null
Wins going into the fixture, for tables that count wins and losses instead of points (W-L in basketball and baseball, W-D-L in MMA); null otherwise. In MMA it is the source’s tally inside the event’s competition — e.g. Volkanovski at 8-0-3 ahead of UFC 333, with a 28-0-4 career record — not the career record — that lives in TeamDetail.record on /v2/teams/{id}.
drawsinteger | null
Draws, for records that include them (MMA W-D-L); null otherwise.
lossesinteger | null
Losses, set alongside wins; null otherwise.
avgRatingnumber | null
Average player rating of the side over its recent matches (2 decimals).
lastFixturessince 2026-11-04FormFixture[]
The source’s team form, which spans ALL competitions: up to five completed matches played before this fixture, oldest to newest, each carrying opponent, score and result. It differs from results, which only covers this competition, and it is filled for tennis too. Empty if the source has nothing, and on forms saved before 2026-11-04 until their next refresh. Available since 2026-11-04.

Appears inPregameForm

FormFixture

8 fields

A recent match played by a side ahead of a fixture, including its score (used in TeamForm.lastFixtures).

fixtureIdinteger
DataSportsAPI id of that match (GET /v2/fixtures/{id}).
startTimestring (ISO-8601 UTC) | null
Start time of the match (UTC).
leagueLeagueRef | null
Competition the match belonged to, of any type (league, cup, European, friendly).
sideSide
Whether the team was home or away in that match.
opponentTeamRef | null
The opposing team.
scoreForinteger | null
Score the team achieved, equal to its side’s Fixture score current (goals, points; sets in tennis).
scoreAgainstinteger | null
Score of the opposing team.
resultFormResult | null
Outcome for the team as interpreted by the source; matches settled in overtime or on penalties count as a win for the side that prevailed.

Appears inTeamForm

Streaks

2 fields

Runs of form for both teams heading into a fixture.

generalStreak[]
For both sides, the streaks that run through their latest matches in every competition before this fixture. After the final whistle it keeps the streaks the match was played with.
headToHeadStreak[]
Streaks drawn from matches between the two sides.

Streak

8 fields

A noteworthy team streak to highlight before a fixture.

namestring
English description of the streak, such as "Wins", "No losses" or "More than 2.5 goals". Display text only, since the source provides no stable key.
kindStreakKind
How to read the figure: an average, a consecutive run, or x out of the last y.
valuestring
The figure exactly as the source formats it: "5" for five in a row, "7/8" when seven of the last eight qualified, "83" for an average.
countinteger | null
Number of matches for which the streak holds (the 5 in "5", the 7 in "7/8"); null for an average.
outOfinteger | null
The y in an "x of the last y" streak; null for consecutive runs and averages.
averagenumber | null
For kind average, the value itself (83 points a game); null otherwise.
sideStreakSide
Which team the streak belongs to.
continuedboolean | null
True if the streak is still active.

Appears inStreaks

BestPlayer

5 fields

One of the standout players in a match.

playerPlayerRef | null
Player reference.
valuenumber | null
Figure the ranking is based on (a rating, points, goals, yards). Null in baseball, where the list simply follows the source’s ordering (best first) without a figure we can account for.
labelBestPlayerLabel | null
Describes what value measures.
statisticssince 2026-11-04Record<string, number> | null
Basketball: the player’s stat line, using the same keys as lineup statistics (points, rebounds, assists, steals, blocks, rating). For baseball, available since 2026-11-04, the numbers — pitching or batting — that got the player picked (pitchingInningsPitched, pitchingStrikeOuts, battingHits, battingHomeRuns, battingRbi, …). Null in any sport where the source lists nothing.
rolesince 2026-11-04BestPlayerRole | null
Baseball (since 2026-11-04): pitcher or batter, i.e. the role the player was picked for; null for every other sport.

Appears inBestPlayers

Momentum

6 fields

Values for drawing a momentum chart: one per game in tennis, one per minute in football, basketball, handball, ice hockey and the like.

points({ minute: number; addedMinute: integer | null; value: number })[]
One value for every minute, in match order; points in added time come after the final minute of their period.
periodLengthMinutesnumber | null
How long one regulation period lasts — 45 minutes in football, 10 in basketball, 20 in ice hockey. Unit: minutes.
periodCountinteger | null
Number of regulation periods.
overtimeLengthMinutesnumber | null
Duration of a single overtime period. Unit: minutes.
overtimeCountinteger | null
How many overtime periods were played, if the source reports it.
games{ period: PeriodKey; game: integer; value: number; breakOfServe: boolean }[]
Tennis: a value for each game in sequence (minute points stay empty). Empty in other sports.

Appears inWsMomentum

Shot

21 fields

A single shot attempt (football, ice hockey, basketball field goals). Lists run chronologically, oldest first, with shoot-out kicks at the end in kick order. Basketball is the exception: the source gives no timing, so home shots come before away shots in the source’s order, and only side, outcome and position are filled.

sideSide | null
Team that took the shot.
playerPlayerRef | null
Player who took the shot.
goalkeeperPlayerRef | null
Football: the opposing goalkeeper.
outcomeShotOutcome | null
Result of the shot.
techniqueShotTechnique | null
Ice hockey: type of shot.
goalTypeShotGoalType | null
Set on goals only: regular, ownGoal or penalty.
situationShotSituation | null
Football: the phase of play that produced the shot.
bodyPartBodyPart | null
Football: body part used to strike the ball.
strengthShotStrength | null
Ice hockey: the manpower situation at the time.
expectedGoalsnumber | null
xG value of the chance on a 0–1 scale.
expectedGoalsOnTargetnumber | null
Football: post-shot expected goals (xGOT), set for shots on target.
minuteinteger | null
Minute of the match. Unit: minutes.
addedMinuteinteger | null
How far into stoppage time the shot came. Unit: minutes.
secondinteger | null
Game clock reading in seconds. Unit: seconds.
periodPeriodKey | null
Period in which the shot came. In football the minute decides it (shoot-out kicks → penalties, 45+2 → period1, 92 → extra1); basketball has no timing, so it stays null.
positionPoint | null
Where the shot was taken from. Football: pitch percentages 0–100, with x measured from the goal line under attack and y across the pitch. Ice hockey: x roughly 0–240 along the ice (rink units from the source, each side attacking one end) and y covering 0–100 from side to side. Basketball: tenths of a foot measured from the basket being attacked; x runs across the court (−250…250 sideline to sideline), y away from the basket (0 is the rim, and the NBA three-point arc sits at 237.5).
goalMouthPoint | null
Football: point at which the ball crossed the goal line (y 0–100 across the goal mouth, z for height).
goalMouthLocationGoalMouthLocation | null
Football: zone of the goal mouth the shot reached, or of the near miss.
blockPositionPoint | null
Football: the point at which a blocked or saved shot was halted.
shootoutSequenceinteger | null
Football shoot-out kicks: where the kick falls in the combined order of both teams (the same numbering the shoot-out incidents use).
shootoutRoundinteger | null
Football shoot-out kicks: which of the shooting side’s kicks this was (1st, 2nd, …).

Appears inWsShotmap

Point

3 fields

A coordinate pair; see Shot for each sport’s coordinate system.

xnumber | null
—
ynumber | null
—
znumber | null
—

Appears inShotBallPenaltyKick

Heatmap

1 field

Activity map of one player across a fixture (football, covered leagues).

pointsHeatPoint[]
All recorded samples, meant to be drawn as a density map. If the source has no heatmap for this player and fixture — always so outside football — the list comes back empty with 200, not 404.

HeatPoint

2 fields

A single touch or position sample within a heatmap.

xnumber
Lengthwise position from 0 to 100, oriented in the player’s attacking direction (100 is the goal being attacked). Unit: percent.
ynumber
Widthwise position from 0 to 100. Unit: percent.

Appears inHeatmap

AveragePosition

7 fields

Where a player was positioned on average during a fixture.

playerPlayerRef | null
Player reference.
jerseyNumberstring | null
The player’s shirt number.
positionPosition | null
Position as used in lineups, derived from positionCode.
positionCodestring | null
Single-letter position code from the source ("G", "D", "M", "F").
xnumber | null
Mean lengthwise position from 0 to 100, oriented in the team’s attacking direction. Unit: percent.
ynumber | null
Mean widthwise position from 0 to 100. Unit: percent.
pointsCountinteger | null
Number of position samples the average is computed from.

Appears inAveragePositions

Points

5 fields

A fixture’s point-by-point record, shaped by sport: sets → games → points in tennis, sets → rallies in rally sports, innings → overs → balls in cricket, at-bats in baseball, and sets → legs → visits in darts.

formatPointsFormat | null
Names the list among sets / innings / atBats / darts that has data. Null until something arrives, and in sports without any point-by-point data — those get 200 with empty lists rather than 404.
setsPointSet[]
Tennis and rally sports: an entry for each set, in sequence.
inningsInningsBalls[]
Cricket: an entry for each innings, in sequence.
atBatsAtBat[]
Baseball: all plate appearances in chronological order, oldest first.
dartsDartsSet[]
Darts: nested sets → legs → visits, in sequence.

PointSet

5 fields

Point-by-point detail of a single set.

periodPeriodKey
Which set this is: period1, period2, …
homeScoreinteger | null
Games (tennis) or points (rally sports) the home side won in the set, taken from the final listed score. For a tennis match tie-break the points are counted (10-8), consistent with the fixture’s period score.
awayScoreinteger | null
Games / points the away side won in the set.
gamesTennisGame[]
Tennis: each game in sequence. Empty for rally sports.
pointsRallyPoint[]
Rally sports: each rally in sequence as recorded by the source. Lower-tier coverage may skip a rally, which shows up as a jump in the running score. Empty for tennis.

Appears inPoints

TennisGame

6 fields

A single game within a tennis set.

numberinteger
Position of the game in the set (13 is the tie-break). When a match tie-break stands in for the deciding set, it is that set’s game 1, played to 10 points.
serverSide | null
The serving side. For a tie-break the source reports whoever served its LAST point rather than its first (verified against real tie-breaks on 2026-10-19).
winnerSide | null
Side that took the game; if it differs from the server, serve was broken. For a completed tie-break we take the winner from its final point, because in a check on 2026-10-19 the source had the wrong game winner on 3 of 8 match tie-breaks.
homeGamesinteger | null
Games won by the home side in the set once this game is over.
awayGamesinteger | null
Games won by the away side in the set once this game is over.
pointsTennisPoint[]
Each point in sequence. For a completed game the final point is the one that decided it (its winner matches the game’s winner); for a game still under way, the points played so far.

Appears inPointSet

TennisPoint

6 fields

A single point within a tennis game.

homeScorestring | null
Home side’s game score following the point: "0", "15", "30", "40", "A" (plain numbers in a tie-break). It is a string to accommodate "A". Null on the point that closes a regular game, since no score exists once the game is over.
awayScorestring | null
Away side’s game score following the point; null in the same case as homeScore.
winnerSide | null
Side that won the point, inferred from how the score changed; null if that cannot be inferred.
descriptionTennisPointDescription | null
Marks an ace or a double fault; null for all other points and for the game-winning point we append. The source does not list that final point, so an ace that closes a game goes unmarked.
homeTypeTennisPointType | null
What the point means for the home side (point won, now holding break or set point, mini-break in a tie-break). Null on the game-winning point added at the end.
awayTypeTennisPointType | null
Significance of the point for the away side, as for homeType.

Appears inTennisGame

RallyPoint

3 fields

A single rally within a set (volleyball, table tennis, badminton).

winnerSide | null
Side that won the rally.
homeScoreinteger | null
Home side’s points in the set following the rally.
awayScoreinteger | null
Away side’s points in the set following the rally.

Appears inPointSet

InningsBalls

3 fields

Ball-by-ball record of a single cricket innings.

inningPeriodKey
Innings key (inning1, inning2, …), matching ScoreSide.innings.
battingSideSide | null
Side at bat during this innings.
oversOver[]
Each over in sequence.

Appears inPoints

Over

2 fields

A single over within an innings.

numberinteger
Over number, starting at 1 for the opening over. Cricket notation counts completed overs instead, so the 3rd ball of over 46 reads "45.3".
ballsBall[]
Each delivery in sequence.

Appears inInningsBalls

Ball

16 fields

A single cricket delivery.

sequenceinteger | null
Running delivery counter from the source across the whole match, useful for ordering deliveries between overs.
ballinteger | null
Delivery number inside the over; extras can take it above 6.
outcomeBallOutcome
Result of the delivery.
runsinteger | null
Runs scored off the bat.
totalRunsinteger | null
All runs the delivery contributed, extras included.
wicketboolean
True if a wicket fell on this ball.
dismissalDismissal | null
Manner of dismissal, when a wicket fell.
batterPlayerRef | null
Batter facing the delivery.
bowlerPlayerRef | null
Bowler who delivered the ball.
fielderPlayerRef | null
Fielder who took part in a dismissal (catch, run-out, stumping).
dismissedBatterPlayerRef | null
Batter who was dismissed, which is not always the striker (run-outs).
scoreRunsinteger | null
Batting side’s total runs once the delivery is complete.
scoreWicketsinteger | null
Wickets fallen once the delivery is complete.
commentarysince 2026-11-04string | null
English ball-by-ball commentary for the delivery, verbatim from the source — e.g. "FOUR! … driven firmly through the covers". Null if the source has none (lower-tier matches, or deliveries stored before 2026-11-04). Available since 2026-11-04.
shotsince 2026-11-04CricketShot | null
Direction the ball travelled off the bat, as plotted on a wagon wheel. Null if the source records no direction (an unhit dot ball, a leave, a bye; lower-tier matches). Available since 2026-11-04.
pitchedAtsince 2026-11-04Point | null
Landing spot of the ball for a pitch map, in the source’s units: y increases with distance from the batter’s stumps (yorker ≈ 25, good length ≈ 41, short ball ≈ 54) and x spans the width of the pitch (values of ≈ 6–26 observed); z is always null. Null if the source has no data. Available since 2026-11-04.

Appears inOver

CricketShot

3 fields

Direction and distance of a cricket shot, forming one line on the wagon wheel.

zoneCricketShotZone | null
Field sector of the shot; null if the source provides only an angle.
angleinteger | null
Shot direction in degrees in the source’s reference frame, seen from a right-handed batter: 0 ≈ square leg, 90 ≈ right behind the keeper, 180 ≈ point, 270 ≈ straight back down the pitch. Unit: degrees.
distanceinteger | null
How far the ball went, on a 1–5 scale set by the source: 1–2 near the bat (say, back to the bowler or edged to the keeper), 3 the ring, 4 the deep, 5 the boundary — every four and six. We inferred these bands from the data on 2026-11-04; the source does not document them.

Appears inBall

AtBat

9 fields

A single baseball plate appearance. The at-bat list has no outcome field; the result is that of the final pitch (/at-bats/{atBatId}/pitches).

idsince 2026-11-04integer | null
DataSportsAPI id of the at-bat, for use with /v2/fixtures/{id}/at-bats/{atBatId}/pitches. Present since 2026-11-04; lists saved before then show null.
inninginteger
Inning number (10, 11, … indicate extra innings).
half"top" | "bottom"
top: the away team is batting; bottom: the home team is batting.
battingSideSide
Side at bat, derived from the half.
batterPlayerRef | null
Batter reference.
pitcherPlayerRef | null
Pitcher reference.
homeWinProbabilityBeforenumber | null
Home win probability before the at-bat on a 0–100 scale, as calculated by the SOURCE (not a DataSportsAPI model, and not bookmaker odds). Unit: percent.
homeWinProbabilityAfternumber | null
Home win probability after the at-bat according to the source, 0–100; the away probability is 100 − home. Unit: percent.
atstring (ISO-8601 UTC) | null
Time the at-bat was recorded.

Appears inPoints

DartsSet

5 fields

A single set in darts; a match played in legs consists of one set.

numberinteger
Set number, always 1 in a legs match.
winnerSide | null
Winner of the set; null in a match played in legs and while the set is still going.
homeSetsinteger | null
Sets won by the home side once this set is over; null in a legs match.
awaySetsinteger | null
Sets won by the away side once this set is over; null in a legs match.
legsDartsLeg[]
Each leg in sequence.

Appears inPoints

DartsLeg

8 fields

A single darts leg broken down visit by visit.

numberinteger
Leg number inside the set (in a legs match, the whole match is one set).
startScoreinteger | null
Starting score for each player in the leg (501), as listed by the source.
throwingFirstSide | null
Side that threw first in the leg according to the source (the throw alternates between legs). The visit list may still open with the other player; this has been seen once on a first leg.
winnerSide | null
Side that won the leg; null while it is still being played.
homeLegsinteger | null
Legs won by the home side in the set once this leg is over.
awayLegsinteger | null
Legs won by the away side in the set once this leg is over.
checkoutinteger | null
Score of the visit that won the leg (the checkout); null while the leg is in progress or if the final visit is missing.
visitsDartsVisit[]
Each visit in sequence.

Appears inDartsSet

DartsVisit

5 fields

One player’s turn at the board: a visit of up to three darts. The source does not report how many darts were thrown.

sideSide
Side that threw.
scoredinteger | null
Points scored in the visit, computed as the thrower’s remaining score before minus after. 0 covers both a scoreless visit and a bust, which the source does not distinguish. Null if the drop is impossible for one visit (over 180, meaning the source skipped a visit).
homeRemaininginteger
Home side’s remaining score once the visit is done.
awayRemaininginteger
Away side’s remaining score once the visit is done.
checkoutboolean
True if this visit won the leg by bringing the thrower to 0; scored then holds the checkout.

Appears inDartsLeg

Bases

3 fields

Baseball: occupancy of each base.

firstboolean
True when first base is occupied.
secondboolean
True when second base is occupied.
thirdboolean
True when third base is occupied.

Appears inInningState

InningState

7 fields

Baseball: the current game situation — inning, half, count, outs and runners. It contains no batter or pitcher because the source does not provide them here; find the current at-bat’s in /points atBats. The source’s live feed refreshes this state roughly once a minute rather than after each pitch, so the count may trail the game by up to a minute.

inninginteger
Current inning (10, 11, … indicate extra innings).
half"top" | "bottom"
top: the away team is batting; bottom: the home team is batting.
battingSideSide
Side at bat, derived from the half.
ballsinteger | null
Number of balls in the current count.
strikesinteger | null
Number of strikes in the current count.
outsinteger | null
Outs recorded in the half-inning; 3 means the half has just finished.
basesBases
Occupancy of each base.

Appears inFixtureFixturePatchPlayerFixture

Timeouts

3 fields

Basketball: remaining timeouts for each side, as tracked by the source.

homeRemaininginteger | null
Timeouts still available to the home side.
awayRemaininginteger | null
Timeouts still available to the away side.
perTeaminteger | null
Timeouts each side is allotted for the game (7 in the NBA).

Appears inFixturePlayerFixture

CurrentTyre

2 fields

Tyres currently fitted to a car (available since 2026-11-09).

compoundTyreCompound
Tyre compound.
isNewboolean | null
True for a fresh set, false for a used one; null if the source does not specify.

Appears inRaceResult

DragonsByType

6 fields

League of Legends: count of elemental dragons killed, split by element (available since 2026-11-09).

chemtechinteger
Number of Chemtech dragons killed.
cloudinteger
Number of Cloud dragons killed.
hextechinteger
Number of Hextech dragons killed.
infernalinteger
Number of Infernal dragons killed.
mountaininteger
Number of Mountain dragons killed.
oceaninteger
Number of Ocean dragons killed.

Appears inEsportsTeamStats

DownAndDistance

7 fields

American football: current down, distance and field position as tracked by the source (available since 2026-11-09). The live feed pushes an update after every play; fields not included in an update keep their previous value.

downinteger | null
The down in play (1–4); null on a kickoff and on the try that follows a touchdown.
yardsToGointeger | null
Yards needed for a first down (or to the goal line when goalToGo); null when there is no down.
possessionSide | null
Side in possession of the ball.
ballOnSide | null
Half of the field the ball is in; combined with yardLine, "home 35" means the home side’s 35-yard line.
yardLineinteger | null
Yard line within that half (50 is midfield).
goalToGoboolean | null
True if the goal line is the line to gain (the source calls it isGoalPossession).
playTypeDownPlayType | null
Kind of play the ball is set up for: scrimmage play, kickoff or try.

Appears inFixturePlayerFixture

VarCheck

1 field

Football: an ongoing video (VAR) review (available since 2026-11-09).

sideSide | null
Side whose incident (a goal, a penalty, a card) is being reviewed, if the source specifies it; null when it does not name one.

Appears inFixtureFixturePatchPlayerFixture

BasketballBonus

2 fields

Basketball: bonus (penalty situation) status for each side, as reported by the source (available since 2026-11-09).

homeboolean
True when the home side is in the bonus, so the away side’s next team foul awards it free throws.
awayboolean
True when the away side is in the bonus.

Appears inFixturePlayerFixture

MatchFormat

3 fields

Length of the match in sets / legs / games, if the source states it.

bestOfSetsinteger | null
Darts: number of sets in the format ("best of 5 sets"); 1 indicates a legs match without sets.
bestOfLegsinteger | null
Darts: legs per set if bestOfSets > 1, otherwise legs in the whole match ("best of 7 legs").
bestOfGamesinteger | null
Esports: how many games (maps) the series is played over ("best of 3").

Appears inFixturePlayerFixture

Umpires

1 field

Baseball only: the umpires working a game.

umpiresUmpire[]
Crew members in the source’s order, starting with home plate; empty if the source lists none and in other sports.

Umpire

3 fields

A single umpire working a baseball game.

namestring
Umpire’s full name in the source’s spelling.
positionUmpirePosition
Umpire’s station for this game.
experienceYearsinteger | null
Experience in years, according to the source.

Appears inUmpires

Weather

1 field

Baseball: conditions at the ballpark. The source reports weather for baseball alone, so other sports return an empty list. The source reports in °F and mph; we convert to metric (58 °F → 14.44 °C, 5 mph → 8.05 km/h). For a stadium with a roof, the reported weather is still the outdoor one.

observationsWeatherObservation[]
Measured and forecast conditions in the source’s order, with the observation first; empty if the source has none and in other sports.

WeatherObservation

10 fields

Weather conditions at a venue at a given moment.

atstring (ISO-8601 UTC) | null
When the observation was made — or, for a forecast, when it was issued.
forecastboolean
True if this is a forecast, false if it is a measured observation.
conditionWeatherCondition
Broad weather category.
descriptionstring | null
Conditions as worded by the source ("Overcast"). For display only.
temperatureCnumber | null
Temperature of the air in °C. Unit: celsius.
dewPointCnumber | null
Dew-point temperature in °C. Unit: celsius.
humidityPercentnumber | null
Relative humidity on a 0–100 scale. Unit: percent.
cloudCoverPercentnumber | null
Share of the sky covered by cloud, 0–100. Unit: percent.
windSpeedKmhnumber | null
Speed of the wind in km/h. Unit: kilometersPerHour.
windDirectionstring | null
Compass point the wind blows from ("SE", "SSE").

Appears inWeather

EsportsGames

1 field

Esports: a game-by-game breakdown of a fixture, with map, winner and score, lineups including K/D/A, bans and objectives.

gamesEsportsGame[]
Each game in sequence; empty before the first game starts and in other sports.

EsportsGame

12 fields

A single game (map) within an esports series.

numberinteger
Position of the game in the series (1, 2, …).
status"notstarted" | "inprogress" | "interrupted" | "willcontinue" | "postponed" | "canceled" | "finished"
Status type of this game (finished, inprogress, notstarted, …).
mapstring | null
Map played ("Dust2"); null for single-map titles (League of Legends).
startedAtstring (ISO-8601 UTC) | null
Start time of the game.
durationSecondsinteger | null
How long the game lasted. Unit: seconds.
winnerSide | null
Side that won the game; null until it ends.
homeEsportsGameSide
Home side’s data for this game.
awayEsportsGameSide
Away side’s data for this game.
homeStartingSidesince 2026-11-04CsSide | null
Counter-Strike: which side the home team opened the map on; null for other titles. Available since 2026-11-04.
roundssince 2026-11-04EsportsRound[]
Counter-Strike: the rounds so far, in order, with winner, how it ended and which side the home team was on. Empty for other titles, and until the source lists them (it adds a map’s rounds while they are played). Available since 2026-11-04.
roundsPerHalfinteger | null
Counter-Strike: rounds per regulation half (12 under MR12); null if unspecified.
overtimeRoundsPerHalfinteger | null
Counter-Strike: how many rounds an overtime half has (3 under MR3); null without overtime.

Appears inEsportsGames

EsportsRound

5 fields

Counter-Strike: a single round on a map.

numberinteger
Round number within the game, starting at 1; overtime rounds carry on the same count.
overtimeboolean
True for an overtime round.
winnerSide | null
Side that won the round.
outcomeCsRoundOutcome
The way the round was decided.
homeSideCsSide | null
Side the home team played on in this round (the away team had the opposite one); null if the source does not specify.

Appears inEsportsGame

PenaltyHistory

3 fields

Penalty record of a player for a single league season (GET /v2/players/{id}/penalties).

scoredinteger | null
Penalties converted during the league season.
attemptsinteger | null
Total penalties attempted.
penaltiesPenaltyKick[]
Every penalty taken, in chronological order (oldest first).

PenaltyKick

6 fields

A single penalty taken by a player (football).

fixtureIdinteger | null
Fixture in which the penalty was taken.
startTimestring (ISO-8601 UTC) | null
Start time of that fixture.
outcomeShotOutcome
Result of the kick: goal, save, miss or post.
goalMouthLocationGoalMouthLocation | null
Where the ball finished relative to the goal, from the taker’s perspective.
goalMouthPoint | null
Point at which the ball crossed the goal line, on 0–100 axes following the source’s drawing of the goal; null if not provided.
expectedGoalsnumber | null
Expected-goals value of the penalty (roughly 0.79).

Appears inPenaltyHistory

SeasonDay

2 fields

A date in a league season that has fixtures (GET /v2/leagues/{id}/calendar).

datestring (YYYY-MM-DD)
Calendar day of the season, in UTC.
fixtureCountinteger
Number of the league season’s fixtures on that day.

PlayerOfTheSeasonWinner

5 fields

The player of the season named for a league in a past season.

playerPlayerRef
Player reference.
teamTeamRef | null
Team the player represented that season.
ratingnumber | null
The player’s mean match rating for the season according to the source, rounded to 2 decimals.
appearancesinteger | null
Number of matches in which the player received a rating.
seasonSeason | null
Season in which the award was won.

GrandSlamYear

5 fields

A tennis player’s furthest progress at a given Grand Slam in a particular year.

yearinteger
The calendar year.
seasonSeason | null
The league season for that year’s edition, if we have its id.
roundstring | null
Deepest round reached, in the source’s wording ("Final", "Semifinals", "Round of 16").
wonboolean
True if the player took the title.
inProgressboolean
True while the edition is still running, meaning the round may still change.

Appears inGrandSlamResults

RaceCareerTotals

5 fields

Career totals for a driver or constructor as counted by the source, combining all its series.

racesStartedinteger | null
Number of race starts across the career.
winsinteger | null
Number of races won.
podiumsinteger | null
Number of top-three finishes.
polePositionsinteger | null
Number of times starting from pole.
championshipsinteger | null
Number of world championships won.

Appears inRaceCareer

RaceCareerSeason

9 fields

A single season in a driver’s or constructor’s career within one series.

seriesSeriesRef | null
Racing series the season belongs to.
seasonSeason
The series season; its id is what the season parameter expects on the /v2/series/{id}/… endpoints and on /v2/teams/{id}/races.
teamTeamRef | null
For a driver, the team (constructor) driven for that season; null on a constructor’s own row.
positioninteger | null
Position in the championship standings; null if unranked (or not yet ranked).
pointsnumber | null
Points earned in the championship.
racesStartedinteger | null
Number of race starts.
winsinteger | null
Number of races won.
podiumsinteger | null
Number of top-three finishes.
polePositionsinteger | null
Number of times starting from pole.

Appears inRaceCareer

TeamRaceResult

9 fields

One race result in a season for a driver or constructor (from GET /v2/teams/{id}/races).

raceRaceSummary
The race weekend in question; the result refers to its main race.
positioninteger | null
Finishing position of a driver, or a constructor’s ranking among constructors; null if unclassified (see state).
pointsnumber | null
Championship points earned in this race.
stateRaceResultState
Whether a driver was classified and, if not, why; constructors are always classified.
outReasonstring | null
Reason a driver did not finish, in the source’s words ("Retired"); null when classified.
gridPositioninteger | null
Grid slot the driver started from.
timeMsinteger | null
Driver’s total race time in ms; null if the driver is out, and for constructors. Unit: milliseconds.
gapMsinteger | null
Driver’s gap to the winner; for the winner, and for drivers who are out or lapped, it is null. Unit: milliseconds.
driversTeamRaceDriver[]
Drivers who raced for the constructor in that event; empty on a driver’s row.

TeamRaceDriver

3 fields

A constructor’s driver in a particular race.

driverTeamRef | null
Driver reference.
positioninteger | null
Finishing position; null if not classified.
gapMsinteger | null
Gap to the winner; for the winner, and for drivers who are out or lapped, it is null. Unit: milliseconds.

Appears inTeamRaceResult

EsportsGameSide

5 fields

A single team’s data for one esports game.

scorenumber | null
Score of the side in this game — rounds won in Counter-Strike, kills in League of Legends and Dota 2.
periodsRecord<PeriodKey, number>
Counter-Strike: rounds won in each half (period1, period2), with all overtime rounds combined under overtime, so the values sum to the game score. Empty if the source has no breakdown.
playersEsportsGamePlayer[]
Players fielded by the side; empty if the source provides no lineup.
bansEsportsCharacter[]
Characters banned by the side, in ban order; empty if none are listed.
statisticsEsportsTeamStats | null
Objective statistics; null if the source has none.

Appears inEsportsGame

EsportsGamePlayer

19 fields

Stat line for one player in one esports game. Only the fields relevant to the title are filled and the rest stay null: League of Legends uses gold / creepScore / level; Dota 2 uses creepScore (last hits) / level / denies / netWorth / goldPerMinute / experiencePerMinute; Counter-Strike uses averageDamagePerRound / headshotKills / kastPercentage / killDeathDifference / firstKillDifference / flashAssists.

playerPlayerRef | null
Player reference.
roleEsportsRole
Role the player filled in this game.
characterEsportsCharacter | null
Champion / hero the player used.
killsinteger | null
Kill count.
deathsinteger | null
Death count.
assistsinteger | null
Assist count.
goldinteger | null
League of Legends: total gold earned.
creepScoreinteger | null
Creeps killed — minions and monsters in League of Legends, last hits in Dota 2.
levelinteger | null
Champion / hero level when the game ended (League of Legends, Dota 2).
deniesinteger | null
Dota 2: friendly creeps the player last-hit to deny the opponent their gold.
netWorthinteger | null
Dota 2: final net worth in gold (gold held plus items).
goldPerMinutenumber | null
Dota 2: average gold earned per minute of play.
experiencePerMinutenumber | null
Dota 2: average experience earned per minute of play.
averageDamagePerRoundnumber | null
Counter-Strike: ADR — hit points of damage dealt per round, on average.
headshotKillsinteger | null
Counter-Strike: number of kills scored with a headshot. This is a count capped by kills, not a percentage.
kastPercentagenumber | null
Counter-Strike: KAST, the 0–100 share of rounds in which the player recorded a kill or assist, survived, or was traded. Unit: percent.
killDeathDifferenceinteger | null
Counter-Strike: kills minus deaths; negative if the player died more often than they killed.
firstKillDifferenceinteger | null
Counter-Strike: opening kills minus opening deaths — an opening duel being the round’s first kill, whether by or on the player. Summed over every player on a map, the values come to 0.
flashAssistsinteger | null
Counter-Strike: kills made by teammates on opponents this player had blinded with a flash.

Appears inEsportsGameSide

EsportsTeamStats

11 fields

One side’s objectives in one game of League of Legends or Dota 2: kills and towers, plus barracks and first blood in Dota 2. Fields that do not exist in the title are null. Counter-Strike has no objectives, so the whole object is null.

killsinteger | null
Kill count.
goldinteger | null
Total gold earned by the side.
towersinteger | null
Opposing towers taken down (in Dota 2, the towers the opponent lost).
inhibitorsinteger | null
Number of inhibitors taken down.
dragonsinteger | null
Dragons (drakes) killed according to the source’s count, excluding elderDragons.
elderDragonsinteger | null
Number of Elder dragons killed.
baronsinteger | null
Number of Barons (Nashor) killed.
heraldTakenboolean | null
True if the side secured the Rift Herald.
barracksinteger | null
Dota 2: opposing barracks taken down (those the opponent lost).
dragonsByTypesince 2026-11-09DragonsByType | null
League of Legends: elemental dragon kills by element (they add up to dragons). Null in other titles, or if the source does not split them. Available since 2026-11-09.
firstBloodboolean | null
Dota 2: true if the side scored first blood, i.e. the opening kill of the game.

Appears inEsportsGameSide

Scorecard

2 fields

Complete scorecard of a cricket fixture. For other sports the response is 200 with { innings: [], current: null } rather than 404.

inningsScorecardInnings[]
All innings, in the order played; empty until the first ball is bowled, and in other sports.
currentCricketState | null
The innings under way right now: striker, non-striker, bowler, plus the current over and ball. Null whenever no innings is under way (not started, between innings, finished) and in other sports.

CricketState

7 fields

The batters at the crease during a live innings. We DERIVE this from the ball-by-ball data instead of using the source’s current-batsman field: we start from the batter on the last ball, switch ends whenever an odd number of runs is run and when an over ends, and bring in the new batter after a wicket. Validated against the following ball on more than 3,000 deliveries.

inningPeriodKey
Key of the innings under way (inning1, inning2, …).
battingSideSide | null
Side currently at bat.
strikerPlayerRef | null
Batter due to face the next delivery. Null when this cannot be determined at the moment (no ball bowled yet in the innings, or a brief mismatch between the ball-by-ball and the scorecard just after a delivery).
nonStrikerPlayerRef | null
The second batter at the crease; null when unknown, under the same conditions as striker.
bowlerPlayerRef | null
Bowler of the current over. Null between overs, because the next bowler is only known once they deliver a ball.
overinteger
Current over, numbered from 1 as in Points; once an over is completed it moves on to the next one.
ballinteger
Legal balls bowled in the current over so far (0–5), not counting wides and no-balls.

Appears inScorecard

ScorecardInnings

12 fields

One cricket innings: totals, the batting card and the bowling card, falls of wicket and partnerships.

inningPeriodKey
Innings key in match order (inning1, inning2, …): the second innings of the match is always inning2, regardless of who bats. Uses the same keys as Points.innings.
battingSideSide | null
Side currently at bat.
battingTeamTeamRef | null
Team at bat in this innings.
bowlingTeamTeamRef | null
Team in the field in this innings.
runsinteger | null
Innings total, combining runs off the bat and extras.
wicketsinteger | null
Wickets fallen, including a batter retired hurt who is unable to return.
oversnumber | null
Overs received, in cricket notation (19.3 means 19 overs plus 3 balls).
extrasExtras
Runs conceded other than off the bat.
battingScorecardBatter[]
Batting card in order of appearance, including did-not-bat entries.
bowlingScorecardBowler[]
Bowling card in the order the bowlers were used.
fallOfWicketsFallOfWicket[]
Each fall of wicket in sequence; retirements are not counted as falls.
partnershipsPartnership[]
Each batting partnership in sequence.

Appears inScorecard

ScorecardBatter

11 fields

A single entry on a batting card, listed in batting order.

batterPlayerRef | null
Batter reference.
stateBatterState
Current status of the batter’s innings.
dismissalDismissal | null
Manner of dismissal; only set when state is out.
descriptionstring | null
State as phrased by the source ("Not out", "LBW", "Did not bat", "Caught & Bowled"). For display only.
bowlerPlayerRef | null
Bowler involved in the dismissal, who is credited with the wicket unless it was a run out. The source also names a bowler on a retired-hurt line.
fielderPlayerRef | null
Fielder involved in the dismissal: whoever took the catch (the bowler for caught & bowled), the wicket-keeper for a stumping, or the fielder who effected a run out.
runsinteger | null
Runs the batter made.
ballsinteger | null
Number of deliveries faced.
foursinteger | null
Number of boundaries for four.
sixesinteger | null
Number of sixes struck.
strikeRatenumber | null
Runs scored per 100 balls, to 2 decimals; null until the batter has faced a ball.

Appears inScorecardInnings

ScorecardBowler

8 fields

A single bowler’s figures from the bowling card; entries follow the order in which they bowled.

bowlerPlayerRef | null
The player who bowled these figures.
oversnumber | null
Overs delivered, written the cricket way: 3.4 means three complete overs plus four balls.
maidensinteger | null
Count of maiden overs.
runsinteger | null
Runs charged to the bowler: wides and no-balls count towards it, byes and leg byes do not.
wicketsinteger | null
Dismissals credited to the bowler; run outs and retirements are excluded.
widesinteger | null
Number of wides delivered.
noBallsinteger | null
Number of no-balls delivered.
economynumber | null
Runs conceded per six-ball over, to two decimal places; null until the first delivery.

Appears inScorecardInnings

FallOfWicket

4 fields

A single entry in the fall-of-wickets list.

wicketinteger
Wicket number, counting from 1 for the first dismissal.
runsinteger | null
Team score at the moment the wicket went down.
oversnumber | null
Point in the innings at which it went down, in cricket notation: 4.2 is the second ball of the fifth over, while the sixth ball of that over is written 5 (never 4.6).
batterPlayerRef | null
The dismissed batter.

Appears inScorecardInnings

Partnership

4 fields

A stand between two batters. Our data source provides these for limited-overs games; multi-day matches frequently come without any.

batter1PlayerRef | null
The first batter in the stand.
batter2PlayerRef | null
The second batter in the stand.
runsinteger | null
Runs the pair put on together.
ballsinteger | null
Number of balls the stand lasted.

Appears inScorecardInnings

Extras

6 fields

Runs credited to the batting side that did not come off the bat.

totalinteger | null
Combined extras, computed as wides + noBalls + byes + legByes + penalties.
widesinteger | null
Extras from wides.
noBallsinteger | null
Extras from no-balls.
byesinteger | null
Extras from byes.
legByesinteger | null
Extras from leg byes.
penaltiesinteger | null
Runs awarded as penalties.

Appears inScorecardInnings

StandingsGroup

6 fields

A single standings table within a season — the overall table, or a conference, division or group.

namestring | null
The table’s label, such as "Eastern Conference", "Group A" or "NHL".
primaryboolean
Marks the table that /standings returns when none is requested. Each season has exactly one: the overall table if it exists, otherwise the largest one (for a group stage, the first group).
overallboolean
true when the table includes all of the season’s teams (a league table); false for conference and division tables and for the individual groups of a group stage.
tieBreakRulestring | null
How ties are broken, as described by our data source.
scoreUnitStandingsScoreUnit | null
Unit behind this table’s scoresFor / scoresAgainst columns. Tables without score columns (cricket) return null.
rowsStandingsRow[]
—

StandingsRow

17 fields

A team’s line in a standings table. Any column that is irrelevant to the sport is null.

positioninteger | null
Position in this table, from 1 to n. When our data source’s positions do not run 1..n (as in its NBA tables early in a season), we rank the rows ourselves by win share, then wins, then fewer losses — or by points, then score difference, then scores for.
teamTeamRef | null
The team this row describes.
playedinteger | null
Number of games played.
winsinteger | null
Total wins, including those in overtime.
drawsinteger | null
Drawn games — filled in American football, cricket, football, futsal, handball and rugby. Where a table has no draw column (baseball, basketball, esports, ice hockey, volleyball, water polo, …) the value is null, meaning the column does not exist — not that no draws have happened yet.
lossesinteger | null
Total losses, including those in overtime.
overtimeWinsinteger | null
Ice hockey only: overtime wins as tallied by our data source. Where shoot-outs are counted separately (the KHL, the NHL’s league table) this covers overtime alone; elsewhere it combines overtime and shoot-out wins. Null where no figure is listed.
overtimeLossesinteger | null
Ice hockey only. Across all NHL tables — league, conference, division, and the home / away tables we compute — it counts losses in overtime and in shoot-outs together, i.e. the NHL’s OTL column, each worth a point. Elsewhere it is the overtime-loss figure our data source reports (for the KHL, overtime losses only).
scoresFornumber | null
How much the team has scored — goals, points, runs, sets, … depending on the table’s scoreUnit.
scoresAgainstnumber | null
How much the team has conceded, expressed in the table’s scoreUnit.
scoreDifferencenumber | null
Difference between the two: scoresFor − scoresAgainst.
pointsnumber | null
Points in the table; null for tables ordered by win percentage (NBA).
winPercentagenumber | null
Basketball, baseball and American football: proportion of games won, from 0 to 1, calculated the league’s way (in the NFL a tie is worth half a win). Unit: ratio.
gamesBehindnumber | null
Basketball and baseball: how many games the team trails the leader (the side with the best wins − losses), calculated as ((leader wins − wins) + (losses − leader losses)) / 2. Our data source shows 0 for every row of its EuroLeague tables; the computed NBA home / away tables work it out separately for each table.
streakinteger | null
The team’s ongoing streak in this competition: +3 means three wins in a row, −2 two defeats in a row. Present when our data source’s table includes it (NBA, EuroLeague, Liga ACB, …); null for other tables and for home / away tables.
zonestring | null
Name of the zone (qualification or relegation) this row sits in — for example "Champions League", "Playoffs" or "Relegation".
formFormResult[] | null
Up to five of the team’s latest results in this competition season, ordered oldest first so the newest comes last; a home / away table shows only home / away results. Null when our data source gives no form for this table — computed tables, rows stored earlier, or a read that failed.

Appears inStandingsGroup

CupTree

3 fields

Bracket view of a league season’s knockout phase: cup rounds, playoffs or a tennis draw.

namestring | null
What the bracket is called — "CONMEBOL Libertadores 2026, Knockout stage" or "NBA 25/26, Playoffs", for instance.
currentRoundinteger | null
order of the round currently being played, or the next one due. Null if our data source does not supply it, or once the bracket is complete (at that point the source points to a round beyond the final one).
roundsCupRound[]
The bracket’s rounds, beginning with the first.

CupRound

3 fields

A single round within a knockout bracket.

orderinteger
Position of the round in the bracket, starting at 1 for the opening round.
namestring | null
Label our data source gives the round, such as "1/8", "Quarterfinals", "Round of 32" or "Conference finals".
blocksCupBlock[]
Ties in this round, listed from the top of the bracket down.

Appears inCupTree

CupBlock

10 fields

A single tie in a knockout round — one match, a two-legged tie or a series.

orderinteger
Where the tie sits in its round, counting from the top as our data source lays out the bracket. Values rise but are not guaranteed to run 1..n: byes or late-entering teams leave gaps (UCL qualifiers 15, 16, 19, …).
homeCupParticipant | null
The participant listed first (first-leg home side or higher seed); null if the slot is unfilled.
awayCupParticipant | null
The participant listed second; null if the slot is unfilled (a bye).
finishedboolean
true once the tie is settled — a participant has been marked as winner, or our data source reports it finished.
inProgressboolean
true while any of the tie’s fixtures is live.
startTimestring (ISO-8601 UTC) | null
Start time of the tie’s opening fixture, in UTC; null if it has not been scheduled.
matchCountinteger | null
Number of fixtures that make up the tie (2 for two legs, 7 for a best-of-7, or 1); 0 for a bye.
fixtureIdsinteger[]
Fixture ids for the tie (usable with /v2/fixtures/{id}), in the order our data source gives them.
automaticProgressionboolean
Flag from our data source indicating the participant advances without playing a fixture.
venueVenue | null
Venue of the tie when our data source provides one (for a one-off final, or the ground of the first leg).

Appears inCupRound

CupParticipant

6 fields

One of the two sides in a knockout tie.

teamTeamRef | null
The team or individual competitor. Null as long as the slot is only a placeholder (“winner of quarter-final 1”); check fromBlock in that case.
seedstring | null
Seeding or entry label in our data source’s own spelling ("1", "Q" for qualifier, "WC" for wild card); null if there is none.
winnerboolean
true if this side won the tie and advanced.
scoreinteger | null
This side’s score in the tie as reported by our data source: aggregate goals across the legs in football, series games won in basketball and ice hockey, sets in a single tennis match. Null until the tie has been played.
penaltiesinteger | null
Football only: goals this side scored in a penalty shoot-out, if the tie needed one; otherwise null.
fromBlockinteger | null
The order value of the block, one round back (PREVIOUS round), that this participant advanced from. Null in the opening round, or when our data source provides no link and the team did not appear in the previous round (a new entrant).

Appears inCupBlock

SearchResult

10 fields

A single search match, ordered by our data source’s relevance ranking. Competitors in tennis and other individual sports come back as team results. Since 2026-10-24 managers, referees, racing series and races can match too; since 2026-11-04, fixtures and venues as well, plus a player’s team.

typeSearchType
The kind of entity matched, which tells you which endpoint its id is for.
idinteger
Identifier of the matched entity. Which endpoint it works with depends on type: /v2/teams, /v2/players, /v2/leagues, /v2/managers, /v2/referees, /v2/series, /v2/races, /v2/fixtures or /v2/venues.
namestring
Name to show; for a fixture it is our data source’s "Home - Away" string.
slugstring | null
—
sportstring | null
Slug of the sport; null for venues, as a venue does not belong to a single sport.
gendersince 2026-11-04TeamGender | null
Only set on team results (since 2026-11-04): whether the team is men’s, women’s or mixed, as shown on TeamDetail. All other result types return null, as does an individual competitor flagged mixed by our data source.
imagestring (URL) | null
Image on our CDN — a logo for teams and leagues, a photo for players, managers and referees. Series, races, fixtures and venues never have one; for other entities it is null when no image exists or it is still to be uploaded.
teamsince 2026-11-04TeamRef | null
For player results, the club our data source currently lists them at (since 2026-11-04). Null for other types and for players with no team (free agents, retired).
fixturesince 2026-11-04SearchFixture | null
Populated only for fixture results (since 2026-11-04) with the key facts of the match; null otherwise.
venuesince 2026-11-04Venue | null
Populated only for venue results (since 2026-11-04) with the venue’s city, country and capacity; null otherwise.

SearchFixture

5 fields

The match summary carried by a fixture search result (since 2026-11-04). For status, score and everything else, call /v2/fixtures/{id}.

homeTeamRef | null
The home side; null until it has been determined.
awayTeamRef | null
The away side; null until it has been determined.
leagueLeagueRef | null
Competition the match belongs to; null if our data source does not name one.
startTimestring (ISO-8601 UTC) | null
Planned start time in UTC; null if our data source does not provide one.
statusStatusType | null
Broad match state when the search ran (no more detailed state is available here); null if our data source gives none.

Appears inSearchResult

TopPlayersCategory

3 fields

One leaderboard for a season.

categorystring
Which leaderboard this is — for example football: goals, averageRating, expectedGoals; basketball: rebounds, points; ice hockey: savePercentage, points. It equals statistic, except for football’s mostConceded / leastConceded, which rank goalkeepers by goals conceded with the most / fewest first.
statisticstring
The statistics key this leaderboard is built on; each entry’s value holds it as a season total. The ordering is our data source’s: counting statistics are generally ranked PER APPEARANCE (value ÷ appearances, so 104 NBA points in 3 games sits above 115 in 4), while ratings and shares rank by the value itself. Treat list position, not value, as the rank.
playersTopPlayerEntry[]
—

TopPlayerEntry

6 fields

A single player on a leaderboard.

playerPlayerRef | null
—
teamTeamRef | null
—
valuenumber | null
This player’s figure for the ranked statistic, i.e. statistics[statistic].
appearancesinteger | null
Number of appearances.
playedEnoughboolean | null
true if the player has played enough minutes or games to qualify for the ranking.
statisticsRecord<string, number>
All numeric statistics supplied with the ranked entry, under v2 keys that match the per-match key for the same measure (naming conventions for season figures: …PerMatch is the total divided by matches, …Per90 is per 90 minutes, average… is a season mean, …Percentage runs 0–100, <key>Against holds the opponents’ figure, and units are spelled out in the key (…Seconds, …Kmh)).

Appears inTopPlayersCategory

TopPerformancesCategory

2 fields

For one statistic, the highest individual match figures recorded in a league season (since 2026-11-09).

categorystring
Which per-match player statistic the list ranks. Keys match those in a lineup player’s statistics — for football rating, goals, assists, kilometersCovered, topSpeed, keyPass, …; for basketball points, rebounds, …; for ice hockey points, hits, ….
performancesTopPerformance[]
At most 10 entries, top performance first in our data source’s ranking — for turnovers, errors and misses that means the highest count, not the lowest.

TopPerformance

3 fields

A single player’s figure from a single match.

playerPlayerRef | null
—
fixtureFixture
The fixture in which the figure was recorded.
valuenumber
The figure itself, in whatever unit the category’s per-match statistic uses — e.g. rating 0–10, topSpeed in km/h, kilometersCovered in km.

Appears inTopPerformancesCategory

DraftRound

2 fields

A single round of a league draft, as returned by GET /v2/leagues/{id}/draft. Available since 2026-11-09.

picksDraftPick[]
Picks in this round, sorted by overall pick number.
teamsWithoutPickTeamRef[]
Clubs that hold no pick in this round because they traded or forfeited it.

DraftPick

7 fields

A single selection in a draft (since 2026-11-09).

overallPickinteger
Pick number counted across the entire draft.
roundinteger
Round in which the pick falls.
pickInRoundinteger | null
Pick number counted within its round.
teamTeamRef | null
Club that makes the selection.
tradedFromTeamRef | null
For a traded pick, the club that originally owned it; null if it was not traded.
playerPlayerRef | null
The drafted player as a record available from /v2/players/{id}; null if our data source has no player entry for him.
prospectDraftProspect | null
The drafted player as described in the draft listing; null while the pick is still to be made.

Appears inDraftRound

DraftProspect

5 fields

How the draft itself describes the selected player.

namestring
Name of the prospect as printed in the draft.
positionstring | null
Listed position, using our data source’s abbreviations: G, F, C, FC, … in basketball; QB, WR, OT, … in American football.
topProspectboolean
true if he was flagged as a top prospect ahead of the draft.
fromTeamTeamRef | null
The college or former club he comes from, when our data source holds it as a team.
fromTeamNamestring | null
Name of that college or club as given in the draft — filled even when fromTeam is null.

Appears inDraftPick

TopTeamsCategory

3 fields

One team leaderboard for a season.

categorystring
Leaderboard identifier — in football, for example, averageRating, goalsScored or cleanSheets.
statisticstring
The statistics key this leaderboard is built on; each entry’s value holds it as a season total. The ordering is our data source’s: counting statistics are generally ranked PER APPEARANCE (value ÷ appearances, so 104 NBA points in 3 games sits above 115 in 4), while ratings and shares rank by the value itself. Treat list position, not value, as the rank.
teamsTopTeamEntry[]
Teams on the leaderboard, top-ranked first.

TopTeamEntry

4 fields

A single team on a leaderboard.

teamTeamRef | null
—
valuenumber | null
This team’s figure for the ranked statistic, i.e. statistics[statistic].
matchesinteger | null
Number of matches played.
statisticsRecord<string, number>
All numeric statistics supplied with the ranked entry, under v2 keys that match the per-match key for the same measure (naming conventions for season figures: …PerMatch is the total divided by matches, …Per90 is per 90 minutes, average… is a season mean, …Percentage runs 0–100, <key>Against holds the opponents’ figure, and units are spelled out in the key (…Seconds, …Kmh)).

Appears inTopTeamsCategory

TeamSeasonStatistics

1 field

Statistics for one team in a given league, season and type.

statisticsRecord<string, number>
Totals and averages for the season under v2 keys, which match the per-match key for the same measure (naming conventions for season figures: …PerMatch is the total divided by matches, …Per90 is per 90 minutes, average… is a season mean, …Percentage runs 0–100, <key>Against holds the opponents’ figure, and units are spelled out in the key (…Seconds, …Kmh)). Football examples: goalsScored, goalsConceded, matches, averageRating, totalShots, averageBallPossession, cleanSheets, …. Ratings are rounded to two decimal places.

SeasonInfo

5 fields

Key facts about a season: running totals and the teams new to it.

statisticsRecord<string, number>
Totals for the season under our data source’s own names (football: goals, yellowCards, redCards, homeTeamWins, awayTeamWins, draws, numberOfCompetitors; in other sports numberOfCompetitors may be the only one).
newcomersUpperDivisionTeamRef[]
Newcomers this season that came down from the division above.
newcomersLowerDivisionTeamRef[]
Newcomers this season that came up from the division below.
newcomersOtherTeamRef[]
Newcomers that arrived by any other route.
hostCountriesCountry[]
Host nations of a tournament held in particular countries, listed in our data source’s order — Canada, Mexico and USA for the 2026 World Cup, eleven of them for EURO 2020. League seasons usually leave it empty, though a few name their country (Germany for the Bundesliga; USA for MLS and the NFL). code is null when the name is missing from our data source’s country list.

PlayerLeagueSeasons

2 fields

A league in which the player has recorded statistics, together with the relevant seasons.

leagueLeagueRef
League or competition reference — the same structure /v2/leagues/{id} and all league lists return.
seasons({ id: integer; name: string | null; year: string | null; startYear: integer | null; endYear: integer | null; types: SeasonStatsType[] })[]
—

PlayerStatistics

2 fields

Statistics for one player in a given league, season and type.

teamTeamRef | null
—
statisticsRecord<string, number>
Totals and averages for the season under v2 keys, which match the per-match key for the same measure (naming conventions for season figures: …PerMatch is the total divided by matches, …Per90 is per 90 minutes, average… is a season mean, …Percentage runs 0–100, <key>Against holds the opponents’ figure, and units are spelled out in the key (…Seconds, …Kmh)). Football examples: appearances, minutesPlayed, goals, averageRating, expectedGoals, …. Ratings are rounded to two decimal places.

PlayerFixture

44 fields

An entry in a player’s fixture list: a Fixture plus the player’s personal involvement (playerMatch).

idinteger
The fixture’s id.
sportstring
Slug of the sport, matching /v2/sports.
statusStatus
Current state of the match.
startTimestring (ISO-8601 UTC) | null
When the match starts: initially the planned time, swapped for the actual kick-off once our data source logs it (its live feed delivers this a few minutes after the start). Every endpoint and every WebSocket delta carries the same value.
leagueLeagueRef | null
Competition the fixture belongs to. Null if our data source places the fixture in a competition without a matching league — seen on 2026-10-23 in minor regional football, e.g. South Africa’s National Second Division; in that case season and round are null as well.
seasonSeason | null
Season the fixture is part of.
roundRound | null
Round of the fixture, for competitions organised in rounds.
homeTeamRef | null
The home side; null until it is known (our data source shows a placeholder such as "WQF1", the winner of quarter-final 1).
awayTeamRef | null
The away side; null until it is known (our data source shows a placeholder such as "WQF1").
homeScoreScoreSide
The home side’s score.
awayScoreScoreSide
The away side’s score.
winnerWinner | null
Remains null until status.type is finished, and stays null for a fight declared a no contest (fightResult.method noContest). If a match was settled on penalties, this is always the shoot-out winner, regardless of our data source (which, on a second leg, names whoever won the 90 minutes). When the source omits a winner, or reports a draw in a sport where draws are impossible, we derive it from the score (matches ending in regular time or overtime; cricket excluded).
venueVenue | null
Where the match is played, if known (lower tiers often have none). Populated on /fixtures/{id} and, when our data source provides it, in date lists. Round, team, player and live lists never include a venue, so null there means "not included" rather than "unknown"; fetch /fixtures/{id} to get it.
clockClock | null
Running match clock; null if our data source has no clock for the fixture, and after the match ends.
firstToServedeprecatedsince 2026-10-23Side | null
Deprecated since 2026-10-23 — mirrors serving. Because our data source refreshes it every game / leg, it reflects the side serving (throwing) at present, not the one that served first; use serving instead.
servingSide | null
Tennis, darts and other sports with a serve: which side is serving (throwing) at the moment, refreshed by our data source each game / leg. Null if the source does not report it.
homeSeedstring | null
In seeded events — tennis draws, or playoff seeding in basketball and other sports — the seed of the home side ("1", "12") or its entry status ("WC" wild card, "Q" qualifier, "LL" lucky loser, "PR" protected ranking, …) as printed on the draw. Unseeded sides get null.
awaySeedstring | null
Seed or entry status of the away side, following the same rules as homeSeed.
notestring | null
Cricket only: our data source’s match note, which becomes the result line after the finish ("Pakistan beat Sri Lanka by 37 runs"). Intended for display only.
battingSideSide | null
Cricket only: the side currently batting. Null when no innings is under way, and for all other sports.
fightResultFightResult | null
MMA and boxing: how, in which round and at what time the fight ended. Null until status.type is finished, or when our data source gives no method.
fightDisciplineFightDiscipline | null
Combat sports: the discipline of this bout when our data source tags one (the mma sport includes boxing, kickboxing and Muay Thai cards too). Only some cards get a tag — ONE, Queensbury and some OKTAGON fights, but never UFC or PFL — so null tells you nothing about whether the bout is MMA.
refereeReferee | null
Named only if our data source has one (football and some other sports; in cricket, the match referee). You get it on /fixtures/{id}; list endpoints return null since it is not included there.
homeManagerManagerRef | null
Manager or head coach of the home side for this fixture, if our data source names one. Populated on /fixtures/{id}; null in lists.
awayManagerManagerRef | null
Manager or head coach of the away side; same behaviour as homeManager.
surfaceSurface | null
Court surface for tennis matches, returned on /fixtures/{id} and in live lists; other sports get null.
tossCricketToss | null
Cricket only: the toss result, once it has taken place. Populated on /fixtures/{id}; null for every other sport.
umpiresstring[] | null
Cricket only: the on-field umpires in our data source’s wording (frequently with a country code, e.g. "Asif Yaqoob (PAK)"); null if none are listed, and for every other sport.
tvUmpirestring | null
Cricket only: the TV (third) umpire, handled the same way as umpires.
previousLegFixtureIdinteger | null
For two-legged ties and playoff series: the fixture id of the tie’s preceding leg / game, if our data source links it. Look it up via /fixtures/{id} to get the first-leg score.
aggregateWinnerSide | null
Set only once a two-legged tie’s return leg has finished: the team that progressed. We take our data source’s verdict; failing that, we use aggregated (the higher total goes through) or, when the aggregate is level, the shoot-out. Null in all other cases, including a level aggregate the source leaves unresolved (an away-goals rule). Compare winner, which is this match’s winner: after a second leg settled on penalties both point to the shoot-out winner, but otherwise they can disagree (a team can win the second leg yet be eliminated). Only /fixtures/{id} fills it; lists and live snapshots leave it out and may show null.
fightCardFightCard | null
MMA and boxing: the bout’s card section, position on the card and weight class, if our data source lists them.
attendanceinteger | null
Crowd size, if our data source reports one (observed for NBA and MLB games, often appearing only after the game has started). Populated on /fixtures/{id}; lists return null because it is not included.
matchFormatMatchFormat | null
Match format for darts and esports — best of N sets / legs / games — when our data source provides it. Other sports get null.
inningStateInningState | null
Baseball only: the game situation right now — inning, half, balls, strikes, outs and runners on base. It is null while the game is not in progress or interrupted, and in every other sport. WebSocket deltas carry it live.
timeoutsTimeouts | null
Basketball: timeouts left for each side, filled only during an in-progress or interrupted game and only if our data source tracks them; null otherwise. WebSocket deltas carry live updates.
downAndDistancesince 2026-11-09DownAndDistance | null
American football only: down, distance and field position at this moment. It is null while the game is not in progress or interrupted, and in every other sport. Delivered live through WebSocket deltas. Available since 2026-11-09.
varChecksince 2026-11-09VarCheck | null
Football only: an ongoing VAR review; null when there is none, outside play, and for every other sport. Delivered live through WebSocket deltas. Available since 2026-11-09.
bonussince 2026-11-09BasketballBonus | null
Basketball only: the side or sides in the bonus. It is null while the game is not in progress or interrupted, and when our data source gives no value; the source’s live feed lacks it, so you only get it over REST and in lists. Available since 2026-11-09.
finalResultOnlysince 2026-11-09boolean
true if our data source covers only the final result of this fixture, with no live score, clock or events during play (since 2026-11-09).
durationssince 2026-11-04Durations | null
Sports played in sets or rounds: the length of every finished period (since 2026-11-04). Null for sports our data source does not time by period (football, basketball, …) and until the first period is over. Delivered live through WebSocket deltas.
lineupsAvailablesince 2026-11-04boolean | null
true once our data source has published lineups for the fixture, whether predicted or official (confirmed on /v2/fixtures/{id}/lineups tells you which); false if they were withdrawn. We set it the moment the source’s live feed announces lineups, or when a lineup we fetch contains players. Null means we have no information (no announcement observed, nothing fetched). WebSocket deltas carry it live — on fixture:{id} from before kick-off, and on the list channels once play starts. Available since 2026-11-04.
lineupsConfirmedsince 2026-11-04boolean | null
true once official lineups have been released (confirmed on /v2/fixtures/{id}/lineups), set in the same way as lineupsAvailable; null means we have no information. Delivered live through WebSocket deltas. Available since 2026-11-04.
playerMatchPlayerMatch | null
The player’s own involvement in this fixture, or null when our data source has nothing listed.

PlayerMatch

5 fields

One player’s personal involvement in a single fixture.

sideSide | null
Which side the player represented.
onBenchboolean
true if the player was a named substitute who never came on.
ratingnumber | null
Player’s match rating (for example 7.4), rounded to two decimal places; null if there is none — the player did not take part, was not rated, or the match has not been played yet.
statisticsRecord<string, number>
Statistics for this match as supplied with the player’s fixture list, using the same keys as lineup statistics (football: minutesPlayed; basketball: points, rebounds, assists, fieldGoalsMade, fieldGoalsAttempted, secondsPlayed, plusMinus …; ice hockey: goals, assists, shotsOnGoal, secondsPlayed …). All …Percentage values are on a 0–100 scale. An empty object when nothing is available.
incidentsRecord<string, number>
Per-player tallies built from the match incidents, e.g. goals (penalties included), penaltyGoals (spot-kicks among those goals), assists, yellowCards, redCards …; an empty object if nothing applies.

Appears inPlayerFixture

Ranking

3 fields

A full ranking table, as returned by GET /v2/rankings/{type}.

typeRankingTypeSlug
Identifier of an available ranking table; GET /v2/rankings lists them all with names.
updatedAtstring (ISO-8601 UTC) | null
Time of our data source’s most recent update to the table.
rowsRankingRow[]
All rows, highest-ranked first.

RankingRow

9 fields

A single entry in a ranking table.

positioninteger
Rank, where 1 is the top spot. In MMA division rankings the champion leads the list with position 0.
previousPositioninteger | null
Rank in the ranking’s previous edition (0 marks the MMA champion); null if our data source does not provide it.
pointsnumber | null
Points in the ranking. UEFA uses coefficients and UTR the rating itself (e.g. 16.45); rankings with no points, such as MMA, give null.
previousPointsnumber | null
Previous edition’s points; null if our data source does not include them.
bestPositioninteger | null
Highest rank ever reached (tennis); null for other rankings.
tournamentsPlayedinteger | null
Number of tournaments that count towards the total (ATP); null for other rankings.
teamTeamRef | null
Team-type object for whoever is ranked; tennis players and fighters are modelled as teams too. In a ranking of countries this is null.
leagueLeagueRef | null
For a country ranking (UEFA): that country’s top league; null for other rankings.
countryCountry | null
Country of the team or competitor, or — for UEFA’s country ranking — the ranked country itself; null if unknown.

Appears inRanking

Category

5 fields

A bucket of leagues inside a sport, forming the top tier of the league directory.

idsince 2026-11-04integer
Category identifier. Use it as the category parameter of GET /v2/leagues, or of GET /v2/fixtures to list that category’s fixtures on a given day (since 2026-11-04).
namestring
Category label: a country such as "England", a region such as "International" or "World", a tour such as "ATP", or a game in esports.
slugstring | null
Slug for use in URLs.
sportstring | null
Slug of the sport, matching /v2/sports.
countryCountry | null
The country this category represents, if it is a country; null for regions, tours and games. Pass its code to GET /v2/leagues as country.

Appears inCategoryFixtureCount

PlayerStatisticsRow

3 fields

A single player’s row in the player-statistics explorer for a league season.

playerPlayerRef
The player, in the reference shape used by every other object.
teamTeamRef | null
Club the player represented in this league season — after a mid-season move, the most recent one.
statisticsRecord<string, number>
Totals for the season in the requested statistics group, keyed with v2 season-statistic names (identical to /v2/players/{id}/statistics: averageRating, goals, expectedGoals, shotsOnGoal, cleanSheets, …; …Percentage runs 0–100). Keys our data source omits for a player are left out, and averageRating is missing for unrated players (for whom the source sends 0).

SeriesRef

4 fields

A racing series, which plays the role of a league in race sports: a motorsport championship, or in cycling the complete men’s or women’s road calendar. Races sit inside its seasons, and /v2/series/{id}/standings ranks competitors across a season.

idinteger
The series’ id.
namestring
Name of the series, for example "Formula 1", "MotoGP" or "NASCAR Cup Series". Cycling is organised differently: our data source bundles each gender’s road races into a single series ("Cycling Men", "Cycling Women").
slugstring | null
Slug for use in URLs.
sportstring | null
Slug of the sport, matching /v2/sports.

Appears inRaceCareerSeasonRaceRaceSummary

Circuit

4 fields

The track hosting a motorsport race.

namestring | null
Name of the track ("Circuit of the Americas").
citystring | null
City where the circuit is located.
countryCountry | null
Country where the circuit is located.
lengthMetersinteger | null
Length of one lap, in metres. Unit: meters.

Appears inRaceRaceSummary

Race

17 fields

Covers either a motorsport weekend (with practice, qualifying, sprint and race sessions) or a cycling event — a one-day race or a stage race.

idinteger
The race’s id.
namestring
What the race is called, e.g. "USA GP", "Tour de France", "Gran Piemonte".
slugstring | null
Slug for use in URLs.
sportstring | null
Slug of the sport, matching /v2/sports.
seriesSeriesRef | null
Series that includes this race.
seasonSeason | null
Which season of the series the race falls in ("Formula 1 2026"); its id is what the /v2/series/{id}/… endpoints expect.
roundinteger | null
Championship round number as assigned by our data source; cancelled races may leave gaps in the sequence.
statusStatusType | null
State of the race: notstarted before its first session, inprogress, finished after all sessions are complete, canceled, or postponed.
startDatestring (YYYY-MM-DD) | null
First day of the race (UTC); the sessions carry exact times. /v2/races and /v2/races/{id} never put it later than the first session’s day, while the race list of a season (/v2/series/{id}/races) keeps our data source’s dates.
endDatestring (YYYY-MM-DD) | null
Last day of the race (UTC). /v2/races and /v2/races/{id} never put it earlier than the last session’s day.
countryCountry | null
Country hosting the race.
circuitCircuit | null
Track used (motorsport); null for cycling.
lapsinteger | null
How many laps the main race is scheduled for (motorsport).
distanceMetersinteger | null
Main-race distance for motorsport, given in metres. Unit: meters.
categorystring | null
Cycling: the race category (e.g. "World Tour 1 Grand Tour"), as our data source labels it.
winnerTeamRef | null
Who won — the main race in motorsport, the general classification in a cycling stage race — filled only after the finish. Drivers and riders are TeamRefs (kind individual), just as tennis players are.
sessionsRaceSession[]
All sessions, sorted by start time (oldest first).

Appears inRaceSnapshotWsRace

RaceSnapshot

3 fields

Snapshot sent on the race:{id} channel: the race, its sessions and the results of the current session.

raceRace
Covers either a motorsport weekend (with practice, qualifying, sprint and race sessions) or a cycling event — a one-day race or a stage race.
sessioninteger | null
Which session the results belong to — the live one if any, otherwise the most recently finished; null until a session has run.
resultsRaceResult[]
Classification for that session, as from /v2/races/{id}/results?session=; [] while none exists.

Appears inWsSnapshot

RaceSummary

16 fields

A race in a season listing, without sessions (fetch /v2/races/{id} for those).

idinteger
The race’s id.
namestring
What the race is called, e.g. "USA GP", "Tour de France", "Gran Piemonte".
slugstring | null
Slug for use in URLs.
sportstring | null
Slug of the sport, matching /v2/sports.
seriesSeriesRef | null
Series that includes this race.
seasonSeason | null
Which season of the series the race falls in ("Formula 1 2026"); its id is what the /v2/series/{id}/… endpoints expect.
roundinteger | null
Championship round number as assigned by our data source; cancelled races may leave gaps in the sequence.
statusStatusType | null
State of the race: notstarted before its first session, inprogress, finished after all sessions are complete, canceled, or postponed.
startDatestring (YYYY-MM-DD) | null
First day of the race (UTC); the sessions carry exact times. /v2/races and /v2/races/{id} never put it later than the first session’s day, while the race list of a season (/v2/series/{id}/races) keeps our data source’s dates.
endDatestring (YYYY-MM-DD) | null
Last day of the race (UTC). /v2/races and /v2/races/{id} never put it earlier than the last session’s day.
countryCountry | null
Country hosting the race.
circuitCircuit | null
Track used (motorsport); null for cycling.
lapsinteger | null
How many laps the main race is scheduled for (motorsport).
distanceMetersinteger | null
Main-race distance for motorsport, given in metres. Unit: meters.
categorystring | null
Cycling: the race category (e.g. "World Tour 1 Grand Tour"), as our data source labels it.
winnerTeamRef | null
Who won — the main race in motorsport, the general classification in a cycling stage race — filled only after the finish. Drivers and riders are TeamRefs (kind individual), just as tennis players are.

Appears inTeamRaceResult

RaceSession

19 fields

A timed segment of a race. In motorsport that is a practice, qualifying, sprint or the race itself; in cycling it is a stage of a stage race (a one-day race consists of a single session, the race).

idinteger
Identifier of the session, accepted by /v2/races/{id}/results?session=.
namestring
Name of the session as provided by our data source ("Practice 1", "Qualification", "Grand Prix", "Stage 5").
typeRaceSessionType
Kind of session.
statusStatusType | null
State of the session, using the fixture status types; null if our data source gives none.
startTimestring (ISO-8601 UTC) | null
Planned start time in UTC.
lapsinteger | null
Planned lap count (motorsport races).
lapsCompletedinteger | null
Laps actually completed; fewer than laps if the race was shortened.
distanceMetersinteger | null
How far the session covers in metres — for cycling, the stage length. Unit: meters.
departureCitystring | null
Town the stage departs from (cycling).
arrivalCitystring | null
Town where the stage finishes (cycling).
profileStageProfile | null
Stage terrain profile (cycling).
weatherRaceWeather | null
Weather conditions, available after the session has run.
trackConditionTrackCondition | null
Whether the track was dry or wet.
airTemperatureCnumber | null
Measured air temperature, in degrees Celsius. Unit: celsius.
trackTemperatureCnumber | null
Measured track-surface temperature in degrees Celsius (motorsport). Unit: celsius.
humidityPercentnumber | null
Humidity as a relative percentage (0–100). Unit: percent.
safetyCarboolean | null
true if the safety car was deployed; null if this was not reported.
winnerTeamRef | null
Winner of the session (the quickest in practice / qualifying), set only after the session ends.
partsRaceSessionPart[]
For knock-out qualifying and sprint qualifying sessions, the individual segments (Q1, Q2…) in run order. Every other session — and any where our data source lists none — has an empty array.

Appears inRace

RaceSessionPart

4 fields

One segment (MotoGP Q1 / Q2, Formula 1 Q1–Q3) of a knock-out qualifying session; segments are listed in run order.

idinteger
Id of the segment; use it as session= on /v2/races/{id}/results to fetch only that segment’s results.
namestring
Label in the series’ own convention, numbered by run order: "Q1", "Q2", "Q3" in qualifying, "SQ1"… in sprint qualifying.
statusStatusType | null
State of the segment; null when our data source gives none (Formula 1 segments).
startTimestring (ISO-8601 UTC) | null
Planned start time in UTC; null if our data source gives none.

Appears inRaceSession

RaceResult

24 fields

A single competitor’s entry in the classification of a session or race.

positioninteger | null
Finishing position; null for a competitor who is not classified (check state).
competitorTeamRef | null
Who raced: a driver or rider, represented as a TeamRef with kind individual.
teamTeamRef | null
Constructor or cycling team the competitor belongs to.
stateRaceResultState
Whether the competitor is classified, and if not, the reason.
outReasonstring | null
Reason for being out, in our data source’s wording ("Retired"); null for classified competitors.
carNumberinteger | null
Race number on the car or bike (motorsport).
gridPositioninteger | null
Grid slot at the start (races); null for a pit-lane start or when unknown.
startedFromPitLaneboolean | null
Set to true for a pit-lane start.
lapsinteger | null
Lap count according to our data source.
lapsBehindinteger | null
How many laps down on the winner (for lapped cars); null if on the lead lap.
lapsLedinteger | null
Number of laps spent in the lead.
pitStopsinteger | null
Number of pit stops made.
timeMsinteger | null
Overall time in ms for a race or stage, or the best lap in practice and qualifying. Null for lapped and non-classified competitors, and for a classified rider without a time in our data source. Unit: milliseconds.
gapMsinteger | null
Gap to the winner. Null for the winner itself, for lapped or non-classified competitors, and for a classified rider with no time logged by our data source. Unit: milliseconds.
intervalMsinteger | null
Gap to the competitor immediately in front; null for the winner, for lapped and non-classified competitors, and for a classified rider without a time in our data source. Unit: milliseconds.
bestLapMsinteger | null
Quickest lap this competitor set, in ms (races). Unit: milliseconds.
bestLapNumberinteger | null
Number of the lap on which that best time came.
fastestLapboolean | null
true if this was the quickest lap of the whole session.
pointsnumber | null
Championship points earned from this result.
tyreStintsTyreStint[]
Sequence of tyre stints (Formula 1 races only; empty elsewhere).
currentTyresince 2026-11-09CurrentTyre | null
The set of tyres currently fitted (Formula 1 sessions while running, then the final set once over); null if our data source does not report it. Available since 2026-11-09.
inPitsince 2026-11-09boolean | null
Whether the car is currently in the pit lane during a live session (true); null if our data source does not report it. Available since 2026-11-09.
cyclingCyclingStanding | null
Secondary classifications, present on the overall result of a cycling stage race; null elsewhere.
partstring | null
When the classification is stitched together from qualifying segments (MotoGP qualifying, for which our data source has no combined table), the segment this entry was taken from ("Q2", "Q1"); timeMs / gapMs / intervalMs then refer to that segment. Null otherwise.

Appears inRaceSnapshotWsRaceResults

TyreStint

2 fields

A run on a single set of tyres.

compoundTyreCompound
Tyre compound used.
lapsinteger | null
Number of laps completed on this set.

Appears inRaceResult

CyclingStanding

7 fields

Secondary-classification standings for one rider within a stage race’s overall result.

jerseyCyclingJersey | null
Leader’s jersey worn by this rider, if there is one.
pointsPositioninteger | null
Where the rider sits in the points classification.
pointsnumber | null
Points tallied in the points classification.
mountainsPositioninteger | null
Where the rider sits in the mountains classification.
mountainsPointsnumber | null
Points tallied in the mountains classification.
youngRiderPositioninteger | null
Where the rider sits in the young-rider classification.
youngRiderTimeMsinteger | null
Time on which the young-rider classification is based (total, in ms). Unit: milliseconds.

Appears inRaceResult

SeriesStandingsRow

10 fields

A single entry in a series championship table.

positioninteger | null
Position in the championship.
competitorTeamRef | null
The ranked entity — a driver or rider with type=competitors, a team with type=teams.
teamTeamRef | null
For drivers and riders, the team they race for; null in the teams table.
pointsnumber | null
Points in the championship.
winsinteger | null
Number of races won.
podiumsinteger | null
Number of podium finishes.
polePositionsinteger | null
Number of pole positions.
fastestLapsinteger | null
Number of fastest laps.
racesStartedinteger | null
Number of races started.
racesWithPointsinteger | null
Number of races finished in the points.

WinProbability

7 fields

DataSportsAPI’s in-house in-play win-probability model for football fixtures (explained in the docs). Its starting point is pre-match expected goals — which v2 builds from each team’s recent results in every competition, its domestic table and our league-strength coefficients, then mixes with the competition’s own table and form — and then adjusts for time remaining, score, red cards and momentum. It is an analytical indicator, not betting advice, and uses no bookmaker odds.

fixtureIdinteger
The fixture’s id.
modelWinProbabilityModel
Version of the model, each described in the docs; new versions are announced in the changelog.
updatedAtstring (ISO-8601 UTC)
Time at which this estimate was calculated.
prematchWinProbabilityPrematch
The estimate made before kick-off, with the inputs it was built from. Once computed it is fixed; later table updates do not touch it.
currentWinProbabilityState
Most recent estimate — equal to the pre-match figure before kick-off and to certainty (1 / 0 / 0) once the match is over.
seriesWinProbabilityPoint[]
The probability curve, sorted oldest first by at. Points come at kick-off, at every match minute, and straight after each goal or red card, each start or end of a period and each big missed chance; before kick-off it is empty. Each point becomes permanent at two minutes old (or when the match ends) and is never edited after that, which keeps the curve faithful to what the model said in the moment. Passing ?since= returns only the points after that instant.
inputs{ shotmap: boolean; momentum: boolean; events: boolean }
Live inputs that the in-play estimate drew on.

WinProbabilityPrematch

9 fields

The estimate made before kick-off, with the inputs it was built from. Once computed it is fixed; later table updates do not touch it.

homenumber
Likelihood of a home win before kick-off, from 0 to 1. Unit: ratio.
drawnumber
Likelihood of a draw before kick-off, from 0 to 1. Unit: ratio.
awaynumber
Likelihood of an away win before kick-off, from 0 to 1. Unit: ratio.
homeExpectedGoalsnumber
Expected goals the model assigns to the home side for the full match (λ home).
awayExpectedGoalsnumber
Expected goals the model assigns to the away side for the full match (λ away).
standingsboolean
true if the league table (attack / defence ratings) could be used; false means league or global averages stood in.
formboolean
true if a pre-match form guide could be used.
allCompetitionsboolean | null
Model v2 only: true if the teams’ recent matches across all competitions could be used (strength derived from as many as their last 20 results, weighted by how old each is and by opponent strength). Null for model v1.
domesticTablesboolean | null
Model v2 only: true if the teams’ domestic league tables could be used (in a cup or European tie, each side’s own league table, made comparable with our league-strength coefficients). Model v1 leaves it null.

Appears inWinProbability

WinProbabilityState

8 fields

A snapshot of the predicted outcome: home / draw / away probabilities at a given point in the match.

homenumber
Chance, from 0 to 1, that the home side finishes the match with more goals on the scoreboard. Unit: ratio.
drawnumber
Chance, from 0 to 1, that the scoreboard is level at the end (a penalty shoot-out does not count). home + draw + away = 1. Unit: ratio.
awaynumber
Chance, from 0 to 1, that the away side finishes the match with more goals on the scoreboard. Unit: ratio.
minuteinteger | null
Minute of the match this estimate refers to, counted like incidents: a goal in the 23rd minute gives 23, and 45+2 becomes minute 45 with addedMinute 2. Before kick-off it is null. Unit: minutes.
addedMinuteinteger | null
How far into added time, in minutes; null outside added time. Unit: minutes.
homeScoreinteger | null
Goals the home side had at that point. Null before kick-off.
awayScoreinteger | null
Goals the away side had at that point. Null before kick-off.
atstring (ISO-8601 UTC) | null
The UTC instant the estimate is tied to. On a curve point it marks the match moment the point stands for — the close of that minute, or the goal or whistle itself — read from the running match clock or, when the clock is stopped, estimated from kick-off, allowing 15 minutes for half-time. On current it is when the estimate was computed (before kick-off and in play) or when the match ended (once finished). Along the series it only ever goes up. Null only for points saved before 2026-10-22 without a known kick-off time.

Appears inWinProbability

WinProbabilityPoint

9 fields

One point on the win-probability curve: the estimate together with the reason it was recorded.

homenumber
Chance, from 0 to 1, that the home side finishes the match with more goals on the scoreboard. Unit: ratio.
drawnumber
Chance, from 0 to 1, that the scoreboard is level at the end (a penalty shoot-out does not count). home + draw + away = 1. Unit: ratio.
awaynumber
Chance, from 0 to 1, that the away side finishes the match with more goals on the scoreboard. Unit: ratio.
minuteinteger | null
Minute of the match this estimate refers to, counted like incidents: a goal in the 23rd minute gives 23, and 45+2 becomes minute 45 with addedMinute 2. Before kick-off it is null. Unit: minutes.
addedMinuteinteger | null
How far into added time, in minutes; null outside added time. Unit: minutes.
homeScoreinteger | null
Goals the home side had at that point. Null before kick-off.
awayScoreinteger | null
Goals the away side had at that point. Null before kick-off.
atstring (ISO-8601 UTC) | null
The UTC instant the estimate is tied to. On a curve point it marks the match moment the point stands for — the close of that minute, or the goal or whistle itself — read from the running match clock or, when the clock is stopped, estimated from kick-off, allowing 15 minutes for half-time. On current it is when the estimate was computed (before kick-off and in play) or when the match ended (once finished). Along the series it only ever goes up. Null only for points saved before 2026-10-22 without a known kick-off time.
reasonWinProbabilityReason
What triggered this point on the curve.

Appears inWinProbabilityWsWinProbability

Commentary

2 fields

Automated match commentary for a football fixture, produced by DataSportsAPI AI using nothing but our own data. Goals, red cards, missed penalties, VAR decisions, the start and end of each period, big chances and lasting momentum shifts each get a short entry, and there are summaries at half-time and full time. Each entry is generated a single time and served identically to all clients.

fixtureIdinteger
The fixture’s id.
entriesCommentaryEntry[]
Entries ordered oldest first by seq, as in every timeline list. Empty until the first entry exists: commentary is only produced while someone is following the match (via this endpoint or the fixture:{id} channel; featured matches on datasportsapi.com always get it), so a match with no followers has none.

CommentaryEntry

7 fields

A single entry of AI commentary.

seqinteger
Sequence number within the fixture’s commentary — 1, 2, 3, … in writing order. A number is never reused.
kindCommentaryKind
The subject of the entry; if it covers several events, the most significant one.
minuteinteger | null
Minute of the latest event the entry covers, counted as incidents are (45+2 is minute 45 with addedMinute 2). For summaries it is the whistle: 45 for halfTime, 90 for fullTime (120 after extra time); null on fullTime entries written before 2026-10-23. Unit: minutes.
addedMinuteinteger | null
How far into added time, in minutes; null outside added time. Unit: minutes.
textstring
Plain-text commentary of one or two English sentences (up to three for summaries), written by DataSportsAPI AI from our own match data alone (score, clock, events, statistics and our win-probability model). It contains no betting language.
modelstring
Identifier of the generating model: "datasportsapi-ai" (DataSportsAPI AI). Entries served before 2026-11-02 carried the name of the underlying provider model instead.
createdAtstring (ISO-8601 UTC)
Time the entry was generated.

Appears inCommentaryWsCommentary

PlayByPlay

1 field

Our data source’s play-by-play text, with an entry for each action (football, basketball, …). The source’s data provider writes it, not DataSportsAPI — see /commentary for our own AI commentary.

entriesPlayByPlayEntry[]
Entries in chronological order, oldest first, as in every timeline list.

PlayByPlayEntry

21 fields

A single play-by-play line from our data source’s text commentary.

typePlayByPlayType
The kind of action the entry describes.
sideSide | null
Side that player belongs to (or the team the entry concerns); null for entries about the match as a whole (kick-off, period ends, delays).
periodPeriodKey | null
Period in which the action took place; null when our data source gives none (football’s final whistle).
minuteinteger | null
Football: the match minute, with added time held separately (45+6 → minute 45, addedMinute 6). Null for clock sports (basketball uses periodSecond) and when our data source gives no time. Unit: minutes.
addedMinuteinteger | null
Added-time minutes in football (45+6 → 6); other cases give null. Unit: minutes.
periodSecondinteger | null
Basketball and other clock sports: elapsed seconds in the current period. Football gives null. Unit: seconds.
periodSecondsLeftinteger | null
Basketball and other clock sports: the game clock, counting down the seconds left in the period. Football gives null. Unit: seconds.
atstring (ISO-8601 UTC) | null
UTC time the action was logged, where our data source timestamps it (basketball); null elsewhere.
textstring
The English commentary text, verbatim from our data source.
playerPlayerRef | null
The player the line concerns — the shooter, scorer, booked or fouling player, rebounder, and so on.
assistPlayerRef | null
Player credited with the assist, if our data source names one (basketball baskets).
playerInPlayerRef | null
substitution: the incoming player.
playerOutPlayerRef | null
substitution: the outgoing player.
drawnByPlayerRef | null
foul (basketball): the fouled player.
stolenByPlayerRef | null
possessionChange (basketball): who made the steal.
goalkeeperPlayerRef | null
Goalkeeper our data source links to a shot (football). The source also fills it on a handful of basketball shots; what it means there has not been verified.
homeScorenumber | null
scoreChange / penaltyScored: the home side’s score once the action is counted; null on all other entries.
awayScorenumber | null
scoreChange / penaltyScored: the away side’s score once the action is counted; null on all other entries.
scoreTypePlayByPlayScoreType | null
scoreChange (basketball): how many points the basket counted for; null in football and on every other entry.
positionCourtPosition | null
Basketball only: court location of the action, or null if our data source has none.
zoneCourtZone | null
Basketball: the area of the court; null when our data source provides none.

Appears inPlayByPlayWsPlayByPlay

CourtPosition

2 fields

Court location of a basketball action, expressed in our data source’s court units.

xnumber
Position on the horizontal axis, measured in our data source’s court units.
ynumber
Position on the vertical axis, measured in our data source’s court units.

Appears inPlayByPlayEntry

LeagueDetail

18 fields

Full league profile from /v2/leagues/{id}: everything in LeagueRef, plus the league’s level, current champion, record title-holders and the divisions directly above and below. Host countries are given per season (/v2/leagues/{id}/seasons/{seasonId}).

idinteger
The league’s id.
namestring
Name of the league or competition.
slugstring | null
Slug for use in URLs.
sportstring | null
Slug of the sport, matching /v2/sports.
categorystring | null
How our data source groups the league: by country ("England"), region ("International", "North America", "World"), tour ("ATP", "WTA") or game (esports: "Counter Strike"). It is not necessarily a country; use country for that.
countryCountry | null
Set when the league’s category is a country (that country); null for regions, tours and games.
imagestring (URL) | null
CDN URL of the league logo; null if the league has none.
prioritysince 2026-11-04integer | null
Our data source’s prominence score for the competition, handy for sorting leagues: a higher value means a bigger competition (for example 719 for the Champions League, 704 for the Premier League, 702 for LaLiga, 519 for Primeira Liga), and 0 means unranked. It is filled only where the source supplies it: on the league embedded in a fixture and in the /v2/fixtures?date&sport day lists. Everywhere else — league profiles, directories, search — it is null, as it is on rows saved before 2026-11-04. Available since 2026-11-04.
tierinteger | null
Tier within the national league pyramid: 1 for the top flight (Premier League), 2 for the second level (Championship); null for cups, international competitions and anything outside a pyramid.
genderTeamGender | null
Whether the competition is for men or women; null if our data source does not specify.
titleHolderTeamRef | null
Current title holder — the winner of the most recent completed season — if our data source names one.
titleHolderTitlesinteger | null
Total number of times the current title holder has won this competition.
mostTitlesinteger | null
Highest number of titles any single team has won.
mostTitlesTeamsTeamRef[]
Team or teams holding that record (more than one if tied); [] if our data source names none.
upperDivisionsLeagueRef[]
Leagues directly above — the destination of promoted teams; [] for a top flight or a cup.
lowerDivisionsLeagueRef[]
Leagues directly below — the destination of relegated teams; [] if none is listed.
currentSeasonStartstring (YYYY-MM-DD) | null
Start date of the current (or next) season, in UTC.
currentSeasonEndstring (YYYY-MM-DD) | null
Planned end date of the current season, in UTC.

RefereeProfile

11 fields

Referee profile from /v2/referees/{id}, with career totals across all competitions our data source covers (games, cards) and a breakdown per competition.

idinteger
The referee’s id.
namestring
Full name of the referee.
slugstring | null
Slug for use in URLs.
countryCountry | null
Country of the referee, if our data source provides it.
gamesinteger | null
Number of matches our data source has logged with this referee officiating, across the whole career and all competitions.
yellowCardsinteger | null
Bookings (yellow cards) handed out across those matches; null where the sport has no cards (cricket).
redCardsinteger | null
Straight red cards handed out across those matches; null where the sport has no cards.
yellowRedCardsinteger | null
Dismissals for a second yellow in those matches; null for sports that have no cards.
imagesince 2026-11-04string (URL) | null
CDN URL of the referee’s photo; null if there is no image or it has not been uploaded yet. Available since 2026-11-04.
sportstring | null
Slug of the sport.
competitionsRefereeCompetition[]
Per-competition breakdown of the career, ordered as our data source lists it; [] when there is none.

RefereeCompetition

6 fields

Career numbers for a referee within a single competition; divide by appearances to get per-match rates.

leagueLeagueRef
Competition these figures relate to.
appearancesinteger
Number of matches officiated in this competition.
yellowCardsinteger | null
Bookings (yellow cards) handed out in those matches.
redCardsinteger | null
Direct red cards handed out.
yellowRedCardsinteger | null
Dismissals for a second yellow.
penaltiesinteger | null
Number of penalties given.

Appears inRefereeProfile

ManagerProfile

12 fields

Profile of a manager or head coach from /v2/managers/{id}, including the career record and the individual jobs that make it up.

idinteger
The manager’s id — identical to the ManagerRef id on fixtures and teams.
namestring
Full name.
slugstring | null
Slug for use in URLs.
shortNamestring | null
Abbreviated name, such as "J. Mourinho".
imagesince 2026-11-04string (URL) | null
CDN URL of the manager’s photo; null if there is no image or it has not been uploaded yet. Available since 2026-11-04.
sportstring | null
Slug of the sport.
countryCountry | null
Country of nationality.
dateOfBirthstring (YYYY-MM-DD) | null
Birth date.
preferredFormationstring | null
Football: the formation he favours, in our data source’s notation ("4-2-3-1").
teamTeamRef | null
Team currently under his management; null if he is out of work.
careerManagerRecord | null
Overall career results across all jobs our data source covers.
stintsManagerStint[]
His positions, most recent first (as in transfer lists); [] if our data source has no history.

ManagerRecord

7 fields

Results for a manager over a span of time — an entire career or a single job. Points per game is points / games.

gamesinteger
Number of matches in charge.
winsinteger
Matches won.
drawsinteger | null
Matches drawn; null for sports with no draws.
lossesinteger
Matches lost.
scoresFornumber | null
Goals (or points, …) his teams scored; null if our data source does not provide them.
scoresAgainstnumber | null
Goals (or points, …) his teams conceded.
pointsnumber | null
League points earned (in football, 3 per win and 1 per draw); null if our data source does not provide them.

Appears inManagerProfileManagerStint

ManagerStint

4 fields

A single position held during a manager’s career.

teamTeamRef | null
Team he was in charge of.
fromstring (YYYY-MM-DD) | null
Date he took charge (UTC).
tostring (YYYY-MM-DD) | null
Final day in charge (UTC). For his present job our data source supplies a FUTURE date — the contract end date it holds — rather than null.
recordManagerRecord | null
Win / draw / loss record for that job; null when our data source has none (youth teams, older spells).

Appears inManagerProfile

Trophy

5 fields

An entry in a team’s trophy cabinet, representing one competition.

leagueLeagueRef
Competition the trophy is for.
competitionTypeCompetitionType | null
Type of competition: national league, national cup or international.
majorboolean | null
true if our data source treats it as a major honour (a league or cup, as opposed to a super cup).
countinteger
Number of times the team has won it.
seasonsTrophySeason[]
Seasons in which it was won, most recent first (as in season lists). Can contain fewer items than count when our data source has no date for very old titles.

TrophySeason

3 fields

A season in which a trophy was won. Our data source supplies only the label, not a season id.

yearstring
Season label in our data source’s format ("23/24", "1932/1933", "2026").
startYearinteger | null
Starting year of the season; null if the label cannot be parsed.
endYearinteger | null
Ending year of the season.

Appears inTrophy

PositionHistoryPoint

5 fields

A team’s league position as it stood at the close of a given week in the season.

weekinteger
Week number within the season, starting at 1 (following our data source’s weekly buckets).
fromstring (YYYY-MM-DD)
Opening day of the week (UTC).
tostring (YYYY-MM-DD)
Final day of the week, inclusive (UTC).
positioninteger | null
Where the team was placed in the league when the week ended.
fixtureIdsinteger[]
Fixture ids of the team’s matches in this competition during the week — typically one, and none in a blank week.

FighterCareerStatistics

50 fields

Career statistics for an MMA fighter, calculated by our data source from the fights it holds detailed data on (which may not be the full career). Includes per-round and per-15-minute rates, 0–100 shares and time spent in each position. Keys take the match-statistics names (significantStrikesHeadLanded, takedownsSucceeded, …) and add the rate as a suffix. Null means the source has no figure.

strikesLandedPerRoundnumber | null
Average strikes landed per round, counting every strike.
strikesDistanceLandedPerRoundnumber | null
Average strikes landed per round while at distance.
strikesDistancePercentagenumber | null
Strikes landed at distance as a share of all his landed strikes, 0–100. Unit: percent.
strikesClinchLandedPerRoundnumber | null
Average strikes landed per round from the clinch.
strikesClinchPercentagenumber | null
Clinch strikes as a share of all his landed strikes, 0–100. Unit: percent.
strikesGroundLandedPerRoundnumber | null
Average strikes landed per round on the ground.
strikesGroundPercentagenumber | null
Ground strikes as a share of all his landed strikes, 0–100. Unit: percent.
strikesReceivedPerRoundnumber | null
Average strikes taken from opponents per round.
significantStrikesLandedPerRoundnumber | null
Per-round average of significant strikes landed.
significantStrikesPercentagenumber | null
Significant strikes as a share of all his landed strikes, 0–100. Unit: percent.
significantStrikesHeadLandedPerRoundnumber | null
Per-round average of significant strikes landed to the head.
significantStrikesHeadPercentagenumber | null
Head strikes as a share of his significant strikes, 0–100. Unit: percent.
significantStrikesBodyLandedPerRoundnumber | null
Per-round average of significant strikes landed to the body.
significantStrikesBodyPercentagenumber | null
Body strikes as a share of his significant strikes, 0–100. Unit: percent.
significantStrikesLegsLandedPerRoundnumber | null
Per-round average of significant strikes landed to the legs.
significantStrikesLegsPercentagenumber | null
Leg strikes as a share of his significant strikes, 0–100. Unit: percent.
significantStrikesDistanceLandedPerRoundnumber | null
Per-round average of significant strikes landed at distance.
significantStrikesDistancePercentagenumber | null
Significant strikes at distance as a share of all his significant strikes, 0–100. Unit: percent.
significantStrikesClinchLandedPerRoundnumber | null
Per-round average of significant strikes landed in the clinch.
significantStrikesClinchPercentagenumber | null
Significant strikes in the clinch as a share of all his significant strikes, 0–100. Unit: percent.
significantStrikesGroundLandedPerRoundnumber | null
Per-round average of significant strikes landed on the ground.
significantStrikesGroundPercentagenumber | null
Significant strikes on the ground as a share of all his significant strikes, 0–100. Unit: percent.
significantStrikesReceivedPerRoundnumber | null
Average significant strikes taken from opponents per round.
takedownsAttemptedPer15Minnumber | null
Number of takedowns he attempts per 15 minutes.
takedownsSucceededPer15Minnumber | null
Successful takedowns per 15 minutes.
takedownsSucceededPercentagenumber | null
Share of his takedown attempts that succeed (landed / attempted), 0–100. Unit: percent.
takedownsReceivedPer15Minnumber | null
Takedown attempts made against him per 15 minutes.
takedownsDefendedPer15Minnumber | null
Of those attempts, the number he stopped per 15 minutes.
takedownsDefendedPercentagenumber | null
Takedown defence rate — attempts stopped divided by attempts against him, 0–100. Unit: percent.
transitionsSucceededPer15Minnumber | null
Ground advances (positional transitions) he completed per 15 minutes.
transitionsReceivedPer15Minnumber | null
Positional transitions completed against him per 15 minutes.
submissionsAttemptedPer15Minnumber | null
How many submissions he attempts per 15 minutes.
submissionsSucceededPer15Minnumber | null
How many submissions he completes per 15 minutes.
submissionsSucceededPercentagenumber | null
Submission success rate — completed divided by attempted, 0–100. Unit: percent.
submissionsReceivedPer15Minnumber | null
How many submissions opponents attempt on him per 15 minutes.
submissionsDefendedPer15Minnumber | null
Of those attempts, how many he fended off per 15 minutes.
submissionsDefendedPercentagenumber | null
Share of submission attempts against him that he defends, 0–100. Unit: percent.
distanceSecondsnumber | null
Total career time spent fighting at distance. Unit: seconds.
distanceSecondsPerRoundnumber | null
Average time per round spent at distance. Unit: seconds.
distancePercentagenumber | null
Per-round average of the proportion of fight time spent at distance, 0–100. This is our data source’s own number: it can exceed 100 slightly (100.2 has been observed), and the distance, clinch and ground shares do not necessarily sum to 100. Unit: percent.
clinchSecondsnumber | null
Total career time spent in the clinch. Unit: seconds.
clinchSecondsPerRoundnumber | null
Average time per round spent in the clinch. Unit: seconds.
clinchPercentagenumber | null
Per-round average of the proportion of fight time spent in the clinch, 0–100 (caveats as for distancePercentage). Unit: percent.
clinchControlSecondsnumber | null
Total career time spent controlling an opponent in the clinch. Unit: seconds.
clinchControlPercentagenumber | null
Clinch control as a share of total fight time, 0–100. Unit: percent.
groundSecondsnumber | null
Total career time spent on the ground. Unit: seconds.
groundSecondsPerRoundnumber | null
Average time per round spent on the ground. Unit: seconds.
groundPercentagenumber | null
Per-round average of the proportion of fight time spent on the ground, 0–100 (caveats as for distancePercentage). Unit: percent.
groundControlSecondsnumber | null
Total career time spent in control on the ground. Unit: seconds.
groundControlPercentagenumber | null
Ground control as a share of total fight time, 0–100. Unit: percent.

FighterRecord

4 fields

The CAREER record (e.g. 28-0-4) of a fighter in MMA or boxing. It is not the same as /v2/fixtures/{id}/form, where our data source gives pre-fight form inside the event’s competition (8-0-3 for that fighter, for example).

winsinteger
Professional wins across all promotions, per our data source’s career record.
drawsinteger
Draws over the career.
lossesinteger
Losses over the career.
recentRecentFight[]
The latest fights, at most five, each with its method, in chronological order. No career-wide breakdown by method is given, because our data source has none and only lists the recent fights it covers.

Appears inTeamDetail

RecentFight

2 fields

A recent fight as it appears in our data source’s record for the fighter.

resultRecentFightResult
Outcome for this fighter: win, draw, loss or no contest.
methodFightMethod | null
Finish method (KO, TKO, submission, decisions, …), or null when our data source does not record one.

Appears inFighterRecord

TeamOfTheWeek

3 fields

A line-up built from the highest-rated players of one round or week in a league season.

periodTeamOfTheWeekPeriod | null
Round or week the team covers; null only when the list of periods could not be loaded.
formationstring | null
Formation of the line-up — "3-4-3" in football, "2-3" in basketball, for instance.
playersTeamOfTheWeekPlayer[]
Selected players, sorted by order.

TeamOfTheWeekPeriod

8 fields

A season round or week that has a team of the week attached.

idinteger
Period identifier, used as the period parameter of /v2/leagues/{id}/team-of-the-week.
kindTeamOfTheWeekPeriodKind
Whether the period is a round or a span of days.
sequenceinteger | null
Position of the period within the season, starting at 1 (equal to the round number in round-based leagues).
roundinteger | null
For kind round: the round covered, as listed by /v2/leagues/{id}/rounds; null for other kinds.
roundNamestring | null
For kind round: the round’s name in our data source’s wording; null for other kinds.
fromstring (ISO-8601 UTC) | null
For kind week / month: when the span begins; null for a round.
tostring (ISO-8601 UTC) | null
Exclusive end of the span; null for a round.
publishedAtstring (ISO-8601 UTC) | null
Time our data source published this team of the week.

Appears inTeamOfTheWeek

TeamOfTheWeekPlayer

6 fields

An individual selected for a team of the week.

orderinteger
Slot in the line-up: 1 is the goalkeeper (football), then numbering runs from defence to attack following the formation.
playerPlayerRef
The player, in the reference shape used by every other object.
teamTeamRef | null
Club he represented during the period.
positionPosition | null
His position, as our data source’s code, interpreted per sport.
ratingnumber | null
Our data source’s match rating (0–10) that won him the spot.
fixtureIdinteger | null
Fixture id of the match the rating comes from.

Appears inTeamOfTheWeek

PlayerAttributes

6 fields

Attribute ratings for a football player across the years, together with his strengths and weaknesses, all from our data source’s own scouting model.

currentAttributeOverview | null
Latest ratings (yearsAgo 0); null if our data source does not rate the player at all.
historyAttributeOverview[]
All ratings our data source holds, starting with the current one (yearsAgo 0, 1, 2, …).
positionAverageAttributeOverview | null
Average ratings for players in the same position, as a benchmark.
strengthsPlayerCharacteristic[]
Strengths our data source attributes to the player, in the source’s order.
weaknessesPlayerCharacteristic[]
Weaknesses our data source attributes to the player.
positionsDetailedPosition[]
Detailed positions the player occupies, primary position first.

AttributeOverview

11 fields

A set of attribute ratings on a 0–100 scale from our data source’s own model. Outfield players are rated on attacking / technical / tactical / defending / creativity, goalkeepers on saves / anticipation / ballDistribution / aerial / tactical; keys belonging to the other group are null.

yearsAgointeger
How many years back the rating is: 0 for now, 1 for the year before, etc.
positionPosition | null
Which position the ratings are given for — outfield and goalkeeper ratings come with different keys.
attackinginteger | null
Outfield players’ attacking rating on a 0–100 scale; goalkeepers get null.
technicalinteger | null
Outfield players’ technical rating, 0–100.
tacticalinteger | null
Tactical rating on a 0–100 scale, given to outfield players and goalkeepers alike.
defendinginteger | null
Outfield players’ defending rating, 0–100.
creativityinteger | null
Outfield players’ creativity rating, 0–100.
savesinteger | null
Goalkeepers’ saves rating on a 0–100 scale; outfield players get null.
anticipationinteger | null
Goalkeepers’ anticipation rating, 0–100.
ballDistributioninteger | null
Goalkeepers’ ball-distribution rating, 0–100.
aerialinteger | null
Goalkeepers’ aerial-play rating, 0–100.

Appears inPlayerAttributes

VenueProfile

11 fields

Profile of a stadium or arena covering its location, capacity, resident teams and match record for each sport.

idinteger
The venue’s id — the same one found on Fixture.venue, TeamDetail.venue and venue search results.
namestring | null
Name of the stadium or arena.
slugstring | null
Slug for use in URLs.
citystring | null
City where the venue is located.
countryCountry | null
Country where the venue is located.
capacityinteger | null
Number of seats.
latitudenumber | null
Geographic latitude (WGS 84, degrees).
longitudenumber | null
Geographic longitude (WGS 84, degrees).
imagestring (URL) | null
CDN URL of a venue photo; null if our data source has none or it has not been uploaded yet.
teamsTeamRef[]
Teams that use the venue as their home ground.
sportsVenueSportStatistics[]
One entry per sport played at the venue, busiest first; the sport slug is the sport value accepted by /v2/venues/{id}/fixtures.

VenueSportStatistics

5 fields

Aggregate results for a single sport at a venue, across all matches our data source holds for it.

sportstring
Slug of the sport.
matchCountinteger
Number of matches in that sport our data source records at the venue.
scoredinteger | null
Total goals (or points, runs …) scored by both sides in those matches.
homeWinPercentagenumber | null
How often the home side won those matches, as a percentage (0–100). Unit: percent.
drawPercentagenumber | null
How often those matches ended in a draw, as a percentage (0–100). Unit: percent.

Appears inVenueProfile

NationalTeamRecord

4 fields

A player’s international record for a single national side.

teamTeamRef
The national side, at senior or youth level.
appearancesinteger | null
Caps: international matches played for that side.
goalsinteger | null
Goals scored for that side in international matches.
debutstring (ISO-8601 UTC) | null
Date of his debut for the side; our data source gives only the day, so the time is midnight UTC.

SeasonHeatmap

3 fields

A player’s areas of activity across a league season (football, covered leagues), built by summing his per-match heatmaps.

pointsSeasonHeatPoint[]
All points with their counts; draw them as a weighted density map.
fixtureCountinteger | null
Number of matches feeding the heatmap, as counted by our data source.
fixtureIdsinteger[]
Fixture ids of those matches, to the extent our data source lists them.

SeasonHeatPoint

3 fields

A single point on a season heatmap along with how many samples it holds.

xnumber
Lengthwise position on the pitch, 0–100, using the match heatmap’s scale. Unit: percent.
ynumber
Position across the width of the pitch, 0–100. Unit: percent.
countinteger
Number of samples recorded at this point during the season; use it to weight the density.

Appears inSeasonHeatmap

PlayerRating

5 fields

The rating a player received in a single match of a season, forming one point on his rating chart.

fixtureIdinteger
Fixture id of the match.
startTimestring (ISO-8601 UTC) | null
Kick-off time of the match.
ratingnumber | null
Match rating from our data source (0–10).
sideSide | null
Side he represented in that match.
opponentTeamRef | null
The opposing team.

PlayerCareerSeason

5 fields

One row of a player’s career table: his statistics for a single competition, season and type.

leagueLeagueRef
Competition the row covers.
seasonSeason
Season of this row. Its id goes into the season parameter of /v2/players/{id}/statistics, together with this league.
teamTeamRef | null
Club he represented in this competition, or a national side in international competitions.
typeSeasonStatsType
Which matches are included: overall, or regularSeason / playoffs in leagues that separate them.
statisticsRecord<string, number>
Totals and averages for the season, keyed exactly as in /v2/players/{id}/statistics (naming conventions for season figures: …PerMatch is the total divided by matches, …Per90 is per 90 minutes, average… is a season mean, …Percentage runs 0–100, and units are spelled out in the key). Ratings are rounded to two decimal places.

TeamRanking

8 fields

One row from /v2/rankings/{type}, showing a team’s or competitor’s position in that ranking table.

typeRankingTypeSlug
Which ranking table this is; fetch the full table with GET /v2/rankings/{type}.
positioninteger
Current rank in the table (0 for MMA champions).
previousPositioninteger | null
Rank in the previous edition; null if our data source does not provide it.
pointsnumber | null
Ranking points — for UTR, the Universal Tennis Rating value itself (e.g. 16.45). Rankings without points return null.
previousPointsnumber | null
Previous edition’s points.
bestPositioninteger | null
Best rank ever reached (tennis), if our data source provides it.
bestPositionAtstring (ISO-8601 UTC) | null
Date the career-high rank was reached, if our data source provides it (which is rare).
tournamentsPlayedinteger | null
Number of tournaments that count towards the total (ATP / WTA); null for other rankings.

PlayerOfTheSeason

4 fields

Our data source’s player of the season for a completed league season — the highest average rating among players who met the playing-time threshold.

playerPlayerRef
The winning player.
teamTeamRef | null
Team he played for that season.
ratingnumber | null
Average match rating across the season, from our data source, rounded to two decimal places.
appearancesinteger | null
Number of matches in which he received a rating.

PlayerOfTheSeasonCandidate

5 fields

A candidate for player of the season; candidates are ordered by average rating, highest first.

playerPlayerRef
The candidate.
teamTeamRef | null
Team he played for that season.
ratingnumber | null
Average match rating across the season, from our data source, rounded to two decimal places.
appearancesinteger | null
Number of matches in which he received a rating.
playedEnoughboolean | null
true if he has played enough of the season to be eligible.

Pitch

29 fields

A single pitch in a baseball at-bat, or a play that happens between pitches, with its type, speed, location, outcome, the resulting count, runners and fielders.

kindPitchEventKind
Whether this is a pitch or a play between pitches.
numberinteger | null
Pitch number within the at-bat, starting at 1; a play between pitches reuses the number of the preceding pitch (0 if no pitch has been thrown yet).
atstring (ISO-8601 UTC) | null
Time the pitch was delivered.
pitcherPlayerRef | null
Player on the mound.
batterPlayerRef | null
Player at the plate.
pitcherHandHandedness | null
Throwing hand of the pitcher.
batterHandHandedness | null
Side of the plate the batter hits from.
pitchTypePitchType | null
Kind of pitch; null for a play between pitches.
pitchNamestring | null
Pitch name in our data source’s words ("Four-Seam Fastball"), intended for display only.
speedKmhnumber | null
Speed of the ball at release. Unit: kilometersPerHour.
zoneinteger | null
Location where the ball crossed the plate, using MLB Statcast zones: 1–9 cover the strike zone as a 3 × 3 grid numbered from the top left from the catcher’s view, and 11–14 are the four quadrants outside it.
outcomePitchOutcome | null
Result of the pitch; null for a play between pitches.
outcomeCodestring | null
Raw outcome code from our data source ("bB", "kKS", "oFO", …), for outcomes that other leaves unnamed.
endsAtBatboolean
true if the at-bat finished on this pitch.
ballsinteger | null
Ball count once the pitch is recorded.
strikesinteger | null
Strike count once the pitch is recorded.
outsinteger | null
Outs in the half-inning once the pitch is recorded.
homeScoreinteger | null
Home side’s runs once the pitch is recorded.
awayScoreinteger | null
Away side’s runs once the pitch is recorded.
hitboolean
true if the pitch resulted in a base hit.
buntboolean
true if the batter bunted.
wildPitchboolean
true if it was a wild pitch.
passedBallboolean
true if it was a passed ball.
doublePlayboolean
true if a double play resulted.
triplePlayboolean
true if a triple play resulted.
overturnedboolean
true if the call was reversed after review.
battedBallBattedBall | null
Details of the ball put in play, if any.
runnersPitchRunner[]
Runner movements on the play in the order listed, including the batter once he starts running.
fieldersPitchFielder[]
Fielders who received credit on the play.

PitchRunner

4 fields

Movement of one runner during a pitch or a play between pitches.

playerPitchActor
Someone named on a pitch as a runner or a fielder.
fromBaseinteger | null
Starting base: 0 for the batter at the plate, 1–3 for first through third base.
toBaseinteger | null
Base reached: 1–3 for first through third, 4 for home (a run scored); null if he was put out.
outboolean
true if the runner was retired on the play.

Appears inPitch

PitchActor

2 fields

Someone named on a pitch as a runner or a fielder.

idinteger | null
The player’s id; null if our data source supplies none.
namestring | null
Name in our data source’s listing.

Appears inPitchRunnerPitchFielder

PitchFielder

3 fields

Credit given to a fielder on a play.

playerPitchActor
Someone named on a pitch as a runner or a fielder.
roleFielderRole
The fielder’s part in the play.
orderinteger | null
Sequence within the play, where 1 is the first fielder to touch the ball.

Appears inPitch

Highlight

8 fields

A match highlight video that lives on a third-party platform.

titlestring
Video title, for example "Liverpool FC 0-1 Arsenal".
subtitlestring | null
Secondary title such as "Full Highlights", or the text of the post.
urlstring (URL)
Link to the video on its platform (YouTube, X, …). DataSportsAPI does not host video, so link to or embed it from that platform.
providerHighlightProvider
Platform hosting the video.
thumbnailUrlstring (URL) | null
Thumbnail hosted by the video platform itself (i.ytimg.com, pbs.twimg.com); any other platform gives null.
mainboolean
true if our data source marks this as the match’s primary highlight.
countriesstring[]
Two-letter codes of the countries to which our data source restricts the video (broadcast rights); an empty list means it is available everywhere.
publishedAtstring (ISO-8601 UTC) | null
Time our data source added the highlight.

Durations

2 fields

Period lengths for sports played in sets or rounds (tennis, table tennis, badminton, volleyball, MMA, …), as timed by our data source.

periodsRecord<PeriodKey, number>
Duration in seconds of every COMPLETED period, using the same keys as ScoreSide.periods (in tennis period1 is the first set; in MMA / boxing the keys are the rounds). The period under way is excluded; its start is clock.periodStartedAt.
totalSecondsinteger | null
Adds up periods: once the match has ended this is its playing time, not counting breaks between periods. Null when periods is empty. Unit: seconds.

Appears inFixturePlayerFixture

SourceWinProbability

6 fields

In-game win probability published by our data source itself for a fixture. Only available for American football (NFL), the single sport the source provides it for (verified 2026-11-04). Served over REST only — no WebSocket frame includes it. It is an analytical indicator, not betting advice.

fixtureIdinteger
The fixture’s id.
model"source"
Always "source", signalling that the estimate comes from the DATA SOURCE alongside its match data rather than from the football model we run ourselves, which lives at GET /v2/fixtures/{id}/win-probability (model values v1 to v3). Its methodology is unknown to us; no bookmaker odds are used on our side.
periodLengthMinutesinteger | null
How long a regulation period lasts — 15 in the NFL. Unit: minutes.
periodCountinteger | null
Number of regulation periods (4 in the NFL).
overtimeLengthMinutesinteger | null
How long an overtime period lasts — 10 in the NFL regular season. Unit: minutes.
seriesSourceWinProbabilityPoint[]
The probability curve, oldest point first, at about one point per minute of play (minutes can be missing, and the curve may start at 1). It grows as the game goes on; the last point is simply the source’s most recent estimate and need not be 0 or 1 when the game ends. Empty before kick-off and whenever the source has no data.

SourceWinProbabilityPoint

3 fields

A single data point (one game minute) on the win-probability curve our data source publishes.

minuteinteger
Minute of game time the estimate applies to — measured in playing time rather than wall-clock time (an NFL quarter is 15 minutes, and overtime carries on the count: 61, 62, …). Unit: minutes.
homenumber
Our data source’s estimated chance of a home win, from 0 to 1. Unit: ratio.
awaynumber
Our data source’s estimated chance of an away win, from 0 to 1 (equal to 1 − home, since the source does not model a tie). Unit: ratio.

Appears inSourceWinProbability

FixtureCounts

6 fields

Fixture totals for a UTC day, broken down by sport (today only) or by category within one sport (any day), A client can use it to print something like “1,172 matches today, 45 live” without walking through every page of the day.

datestring (YYYY-MM-DD)
Date (UTC, YYYY-MM-DD) the counts refer to.
sportstring | null
Sport being counted; null covers all sports, in which case only today can be requested.
fixtureCountinteger
All fixtures on the day regardless of state. With sport, this sums the per-category counts; without it, it sums the per-sport totals. For the same sport the two methods can disagree by a few percent, because the per-category list includes some matches carried over from late on the previous day.
liveCountinteger | null
Fixtures currently live, taken from our live index (the same as /v2/sports); null unless date is today (UTC).
sportsSportFixtureCount[]
When sport is omitted: each sport we cover that has fixtures today, ordered by fixture count, highest first. Empty when sport is given.
categoriesCategoryFixtureCount[]
With sport set: every category (country, region, tour) that has fixtures on the day, sorted by fixture count, highest first, then by name. Empty when sport is omitted, and for race sports (motorsport, cycling — use /v2/races).

SportFixtureCount

3 fields

Today’s fixture total for a single sport, along with the number currently live.

sportstring
Slug of the sport, matching /v2/sports.
fixtureCountinteger
All fixtures on the UTC day regardless of state, taken from our data source’s per-sport daily counter.
liveCountinteger
Fixtures currently live according to our live index — the same number /v2/sports and /v2/livescores report.

Appears inFixtureCounts

CategoryFixtureCount

3 fields

How many fixtures one category (a country, region or tour) has on a given day.

categoryCategory
A bucket of leagues inside a sport, forming the top tier of the league directory.
fixtureCountinteger
All fixtures in the category’s leagues on the UTC day, regardless of state.
leagueCountinteger
Number of the category’s leagues that have one or more fixtures that day.

Appears inFixtureCounts

PlayerActions

4 fields

A player’s on-ball actions in one match, each placed on the pitch — the same actions our data source’s player rating is built from (football, covered leagues). When the source has none (the player did not play, the match has not started, or it is another sport) the response is 200 with empty lists.

passesPlayerAction[]
Passes and crosses in our data source’s order (no timestamps are provided).
dribblesPlayerAction[]
Dribble attempts (take-ons).
defensivePlayerAction[]
Defensive actions: tackles, interceptions, ball recoveries, clearances and blocks.
ballCarriesPlayerAction[]
Ball carries, i.e. runs made in possession.

PlayerAction

6 fields

Describes one thing a player did on the ball in a match.

typePlayerActionType
Kind of action.
startActionPoint
Player’s location when the action began.
endActionPoint | null
End point: where the ball travelled to (passes, crosses, clearances) or where it was carried (ball carries). Null for other action types and when our data source has none.
successfulboolean | null
Whether the action succeeded — a completed pass or cross, a take-on or tackle won. Our data source marks successes only, so anything else reads false (we checked this against accuratePass / wonContest / wonTackle in the lineups). Ball carries have no outcome and get null.
keyPassboolean | null
true for a pass or cross that set up a shot. Null for other action types.
longBallboolean | null
true when our data source counts it as a long ball (passes and crosses); these flags can add up to more than totalLongBalls in the lineups. Null for other action types.

Appears inPlayerActions

ActionPoint

2 fields

Pitch coordinates marking where an action began or finished.

xnumber
Position along the pitch, 0–100, oriented in the player’s attacking direction (0 at the player’s own goal line, 100 at the goal he is attacking). Both sides use this frame, the same as the match heatmap. Unit: percent.
ynumber
Widthwise position on the pitch, 0–100, using the heatmap’s frame. Unit: percent.

Appears inPlayerAction

RaceLap

5 fields

Lap data for one competitor on one lap of a race session.

lapinteger
Number of the lap; 0 represents the starting grid.
positioninteger | null
Position when the lap ended (on lap 0, the grid slot); null on the lap where the competitor retired.
tyreTyreCompound | null
Compound fitted during this lap (Formula 1).
pitStopboolean
true if the competitor pitted at the end of this lap (the new tyres appear from the next lap).
retiredboolean
true if the competitor retired during this lap, making it their final one (position is null).

Appears inRaceCompetitorLaps

RaceCompetitorLaps

4 fields

A competitor’s race broken down lap by lap, showing position, tyre and pit stops for each lap.

competitorTeamRef | null
Driver for this record — a TeamRef of kind individual, resolvable via /v2/teams/{id}.
teamTeamRef | null
Constructor the driver races for.
numberinteger | null
Race number on the car.
lapsRaceLap[]
Starts with lap 0 (the grid), followed by each lap completed in sequence; for a competitor who retired, the list ends at that lap.

PlayerStatRanking

5 fields

A player’s league-season rank for a single statistic.

statisticstring
Statistic being ranked, named as in /v2/players/{id}/statistics (goals, assists, rating, expectedGoals, …).
valuenumber
Player’s value for this statistic across the league season.
rankinteger
The player’s rank for this statistic among all league players (1 = top). Equal values share the same rank, as in standard competition ranking.
tiedCountinteger | null
How many players hold that rank, including him (1 means no tie).
playerCountinteger | null
Size of the ranked field for this statistic in the league season.

GoalDistribution

5 fields

The timing of a team’s goals scored and conceded across a league season (football).

scopeGoalDistributionScope
Set of matches included.
fixtureCountinteger | null
Number of matches included.
scoredinteger | null
Goals the team scored in those matches.
concededinteger | null
Goals the team conceded in those matches.
bandsGoalDistributionBand[]
Six bands of 15 minutes each, in chronological order.

GoalDistributionBand

4 fields

Goal counts for a single 15-minute slice of the match.

fromMinuteinteger
Minute at which the band starts (1, 16, 31, …). Unit: minutes.
toMinuteinteger
Minute at which the band ends (15, 30, … 90). Stoppage time is counted in the band it is added to. Unit: minutes.
scoredinteger
Goals scored by the team in this band.
concededinteger
Goals conceded by the team in this band.

Appears inGoalDistribution

TennisYearStatistics

21 fields

Figures for a tennis player covering one calendar year and one surface.

surfaceSurface | null
Court surface the figures relate to.
matchesinteger | null
Number of matches played.
winsinteger | null
Number of matches won.
tournamentsPlayedinteger | null
Number of tournaments entered.
tournamentsWoninteger | null
Number of tournaments won.
acesinteger | null
Aces served.
doubleFaultsinteger | null
Double faults committed.
servicePointsinteger | null
Total service points (= firstServesIn + secondServes).
firstServesIninteger | null
First serves that landed in.
firstServePointsWoninteger | null
Service points won after landing the first serve.
secondServesinteger | null
Service points that needed a second serve.
secondServesIninteger | null
Count of second serves that went in (= secondServes − doubleFaults).
secondServePointsWoninteger | null
Service points won when playing on a second serve.
breakPointsConvertedinteger | null
Break points he converted while returning serve.
breakPointChancesinteger | null
Break-point chances he created while returning serve.
breakPointsFacedinteger | null
Break points he had to defend while serving.
breakPointsLostinteger | null
Of the break points against him, how many the opponent won.
tiebreaksWoninteger | null
Number of tie-breaks won.
tiebreaksLostinteger | null
Number of tie-breaks lost.
winnersinteger | null
Number of winners struck.
unforcedErrorsinteger | null
Number of unforced errors made.

LeagueChampion

3 fields

The champion of a single league season.

seasonIdinteger | null
Id of the season in question, matching a Season from /v2/leagues/{id}/seasons.
yearinteger | null
Year in which the season finished (2026 for 25/26).
teamTeamRef | null
Team that took the title.

Odds

4 fields

Betting prices for a fixture from a single bookmaker (bet365, supplied via our data source): pre-match and in-play, opening and current, plus settlement flags once the match is over. Available since 2026-11-04. Live updates arrive on the odds:{fixtureId} WebSocket channel (Business). These are third-party prices shown for information only — they are neither advice nor an offer to bet.

fixtureIdinteger
The fixture’s id.
bookmakerBookmaker | null
Bookmaker that set these prices; null if there are no prices.
updatedAtstring (ISO-8601 UTC) | null
Our last fetch or receipt of these prices (no timestamp comes from our data source itself); null when no prices exist.
marketsOddsMarket[]
All markets the bookmaker offers on the fixture, in the bookmaker’s order. Empty when there are none — typically a minor league, a match far in the future, or a finished match whose odds have been removed.

Appears inWsSnapshot

OddsMarket

8 fields

A market the bookmaker offers for a fixture.

keystring
Identifier of the market that stays stable within its fixture. It is built from kind, followed by :period unless the market covers the whole match, :line if there is a line, and :live for in-play markets ("result", "result:half1", "totalGoals:2.5", "asianHandicap:-1.25", "winner:live"). For other markets the label is added ("other:corners-1x2"), and further markets sharing a key get #2, #3. The :live suffix exists because, once play starts, the bookmaker shows the in-play market alongside the closed pre-match one. When a line moves it gets a new key and the old key disappears. Use this key to merge WebSocket odds frames.
kindOddsMarketKind
What the market is pricing.
namestring
Market name as the bookmaker labels it ("Full time", "Match goals", "Asian handicap").
periodstring | null
Portion of the match the market is settled on: "match" when it covers the whole match in the market’s own sense (see kind); otherwise a unit with a number — half1, half2, quarter1…4, period1…3 (ice hockey), set1…, inning1…, map1…, game1…, round1…. Whatever the sport’s division, a half always means half of the match (in basketball, half1 = quarters 1–2). null if our data source’s period label is not recognised (check name).
linenumber | null
Line value: the over / under threshold for a total, or the home side’s handicap for a handicap market. Null for markets without a line.
liveboolean
true for in-play prices — once the match has started and the bookmaker is trading it live.
suspendedboolean
true while a goal, red card, VAR check or similar has paused the market; the prices shown cannot be bet on at that moment.
choicesOddsChoice[]
Selections in the bookmaker’s order: home ahead of away, with draw / "no goal" between them.

Appears inOddsFeaturedOddsWsOdds

OddsChoice

8 fields

A single selection within a betting market, together with its price.

namestring
Label the bookmaker uses for the selection, as passed on by our data source ("1", "X", "Over", "(-0.5) Galatasaray", a team name).
outcomeOddsOutcome
What the selection is backing.
fractionalstring | null
Current price in fractional form ("19/20" means 19 profit for every 20 staked). null while the bookmaker displays no price.
decimalnumber | null
Decimal form of the current price (= 1 + fractional, which is the total paid back per unit staked), rounded to two decimal places. Null exactly when fractional is null.
openingFractionalstring | null
Opening price of the market, in fractional form.
openingDecimalnumber | null
Opening price of the market, in decimal form.
changeOddsChange
Direction of the price’s most recent movement.
winningboolean | null
Once settled, true if this selection won. null before settlement and when our data source does not say (frequently the case on handicap markets).

Appears inOddsMarket

Bookmaker

2 fields

Bookmaker that supplied a set of odds.

idinteger
The bookmaker’s id.
namestring
Name of the bookmaker, such as "bet365".

Appears inOddsWinningOdds

FeaturedOdds

2 fields

The headline market for a fixture in a daily odds list — the three-way result in sports that allow draws, otherwise the winner market.

fixtureIdinteger
The fixture’s id; GET /v2/fixtures/{id} returns the match and GET /v2/fixtures/{id}/odds returns all of its markets.
marketOddsMarket
A market the bookmaker offers for a fixture.

WinningOdds

5 fields

Winning-odds figures for a fixture. It takes each side’s win price (bet365, via our data source) and gives the probability that price implies plus how often sides at that price have won in the past — both figures come from the data source. It is two-way only, so there is no draw entry. Available since 2026-11-06. The prices and statistics come from a third party and are for information only; they are not advice or an offer to bet.

fixtureIdinteger
The fixture’s id.
bookmakerBookmaker | null
Bookmaker whose price the figures refer to; null if there are no figures.
updatedAtstring (ISO-8601 UTC) | null
Time we last fetched the figures (our data source supplies no timestamp of its own); null if there are no figures.
homeWinningOddsSide | null
Figures for the home side; null if our data source has none for it (it may cover only one side).
awayWinningOddsSide | null
Figures for the away side; null if our data source has none for it.

WinningOddsSide

4 fields

A side’s win price alongside the historical success rate of that price.

fractionalstring | null
The side’s win price that the figures are based on, fractional ("33/20"). Our data source chooses this pre-match price itself, so it may not match any current or opening price from GET /v2/fixtures/{id}/odds.
decimalnumber | null
Decimal equivalent of that price (= 1 + fractional), rounded to two decimal places.
expectedWinPercentageinteger | null
Implied probability of winning at this price, 0–100 (≈ 100 / decimal, rounded by our data source, with the bookmaker’s margin left in). Unit: percent.
actualWinPercentageinteger | null
Historical win rate for sides at this price, 0–100, from the data source’s own records (it discloses neither the sample size nor the time span). Unit: percent.

Appears inWinningOdds

02WebSocket

Stream frames

What the server writes to an open WebSocket. Every message is one JSON frame, and its type tells you which of these shapes you are holding. Connecting, subscribing and resyncing are covered in the WebSocket guide.

WsWelcome

5 fields

Server frame, type "welcome"

The server sends this frame first, as soon as the connection opens.

type"welcome"
—
protocolinteger
Version of the protocol in use. It has been 4 since the evening of 2026-10-23 (from then on, a fixture joining a list channel is delivered as a fixture frame); it was 3 from 2026-10-23 and 2 from 2026-10-19.
heartbeatMsinteger
Interval between server pings. Reply to them (browsers do this automatically) or the connection is closed.
maxChannelsinteger
Maximum number of channels this connection may subscribe to.
replayboolean
True when your plan includes lastSeq replay.

WsSnapshot

5 fields

Server frame, type "snapshot"

The complete current state of a channel, delivered when you subscribe and again whenever you resync.

type"snapshot"
—
channelstring
—
seqinteger
Current sequence number of the channel. Treat it as an opaque, increasing counter that does not start at 0; the following delta carries seq + 1.
tsinteger
Server timestamp in Unix milliseconds.
datasince 2026-11-04Fixture[] | Fixture | RaceSnapshot | Odds | null
Depends on the channel. livescores / sport:{slug} / league:{id} / team:{id} carry a Fixture[]: for league:{id}, that league’s in-progress fixtures; for team:{id} (since 2026-11-04), that team’s in-progress fixtures, home and away. fixture:{id} carries a Fixture and race:{id} a RaceSnapshot; odds:{id} (since 2026-11-04) carries an Odds matching GET /v2/fixtures/{id}/odds. Each of these three is null when there is no data.

WsDelta

7 fields

Server frame, type "delta"

Sent when a single fixture changes. On the four list channels (livescores, sport:{slug}, league:{id}, team:{id}), every delta concerns a fixture the channel already sent you, either in its snapshot or as a fixture frame, and a fixture that drops out of the channel (finished, canceled) receives one final delta reporting that. Deltas cover both live-feed updates and the corrections a board refresh produces. A score that goes DOWN (a goal disallowed, a basket corrected) arrives within 1.5 s of the source sending it; the delay lets us drop the brief flaps when the source re-sends an older score. A REST refetch of /fixtures/{id} may still be a few seconds ahead, so resync from time to time if you need exact values.

type"delta"
—
channelstring
—
seqinteger
One more than the previous seq on this channel. A gap means you lost a delta — send resync.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
changesFixturePatch
A partial Fixture that uses the same field names and nesting as the full object. Deep-merge it into the Fixture you store: objects are merged key by key, while every other value (null included) overwrites what you have. No fields beyond those listed for FixturePatch are ever sent.

WsFixture

7 fields

Server frame, type "fixture"

On the four list channels (livescores, sport:{slug}, league:{id}, team:{id}): the channel’s set gained a fixture — after kick-off, or when the server first sees it. The frame carries the complete Fixture, exactly as a snapshot would contain it. Append it to your list and apply subsequent deltas to it. fixture:{id} channels never receive this frame.

type"fixture"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the counter is shared with deltas.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
dataFixture
A match, in the same shape used by every endpoint and by WebSocket snapshots.

WsSubscribed

5 fields

Server frame, type "subscribed"

Acknowledges a subscribe that produced no snapshot: either a lastSeq replay (sent once the replayed frames have gone out) or a repeat subscribe to a channel you already hold.

type"subscribed"
—
channelstring
—
seqinteger
Current seq of the channel once the replay is done; the following delta carries seq + 1.
tsinteger
Server timestamp in Unix milliseconds.
replayedinteger
Number of frames the replay delivered. 0 means you missed nothing, or that you were already subscribed to the channel.

WsWinProbability

8 fields

Server frame, type "winProbability"

On fixture:{id} channels for football fixtures in play: the win-probability estimate shifted by one percentage point or more (evaluated whenever the fixture changes and once per minute). point matches the endpoint’s current, including why it moved, and point.at is the moment it was calculated. It is NOT a point on the stored curve, whose per-minute points fall at the end of each minute; for a chart, fetch GET /v2/fixtures/{id}/win-probability once and then refresh it with ?since=.

type"winProbability"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the channel’s deltas use the same counter.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sport"football"
Slug of the fixture’s sport; win probability exists only for football.
modelWinProbabilityModel
Version of the model that produced the estimate. Each version is described in the docs, and new ones are announced in the changelog.
pointWinProbabilityPoint
One point on the win-probability curve: the estimate together with the reason it was produced.

WsCommentary

7 fields

Server frame, type "commentary"

On fixture:{id} channels for football fixtures: a fresh AI commentary entry has been produced. Keep the two counters apart: the frame’s seq belongs to the channel (and is shared with deltas), whereas entry.seq numbers the entry within GET /v2/fixtures/{id}/commentary.

type"commentary"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the channel’s deltas use the same counter.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sport"football"
Slug of the fixture’s sport; commentary exists only for football.
entryCommentaryEntry
A single AI-written commentary entry.

WsEvents

8 fields

Server frame, type "events"

On fixture:{id} channels for fixtures in play: the list of match events (goals, cards, substitutions, VAR decisions, periods, …) has changed. Because the live feed contains no events, the server pulls them from REST: roughly 20 s and 45 s after every change of score, red cards or status (goals reach the source’s event list 18–33 s after the score changes), and every 30 s during play, since cards and substitutions trigger no signal. A frame goes out only when the list differs. A disallowed goal shows up in changes.removed, and only after REST has confirmed it. Each frame holds the complete list, so missing one does no harm; fetch GET /v2/fixtures/{id}/events for the state before the first frame arrives.

type"events"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the channel’s deltas use the same counter.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
eventsKeyedIncident[]
The FULL events list as it stands, in chronological order — the incidents GET /v2/fixtures/{id}/events returns, keys included. Replace your copy with it.
changesIncidentChanges
The difference between this events frame and the one before it.

WsStatistics

7 fields

Server frame, type "statistics"

On fixture:{id} channels for fixtures in play: the match statistics have changed, and the frame carries the complete object as returned by GET /v2/fixtures/{id}/statistics. The server reads REST every 30 s while at least one client is subscribed, plus a final read after full time, and emits a frame only when the content differs. Figures typically trail the action by ~30–60 s.

type"statistics"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the channel’s deltas use the same counter.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
statisticsStatistics
The match statistics, broken down by period.

WsLineups

7 fields

Server frame, type "lineups"

On fixture:{id} channels for fixtures in play: the lineups have changed. The frame carries the whole object that GET /v2/fixtures/{id}/lineups returns, including each player’s statistics. While someone is subscribed the server checks every 30 s, stopping once the lineups are confirmed and have stayed the same for 10 minutes. Substitutions are delivered as events instead.

type"lineups"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the channel’s deltas use the same counter.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
lineupsLineups
The lineups for each side.

WsPlayByPlay

9 fields

Server frame, type "playByPlay"

On fixture:{id} channels, for football and basketball matches in play: the source’s play-by-play commentary has new or changed text. While at least one client is subscribed the server re-reads REST every 20 s (the source’s own page updates every 15–20 s), and once more after full time. A frame is sent only when the list differs, and it starts at the first entry that changed. For the state before the first frame, call GET /v2/fixtures/{id}/play-by-play.

type"playByPlay"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the channel’s deltas use the same counter.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
startinteger
0-based position, in the full list, of the first item in entries. Retain your first start entries, discard everything after them and append entries. Normally equal to the length of your list (new lines added at the end); lower when the source edited or deleted a line.
totalinteger
Current length of the full list (start + entries.length). If start is beyond the end of your list, you are out of sync — reload GET /v2/fixtures/{id}/play-by-play.
entriesPlayByPlayEntry[]
Entries from position start onwards, oldest first, in the form GET /v2/fixtures/{id}/play-by-play returns them.

WsMomentum

7 fields

Server frame, type "momentum"

On fixture:{id} channels for football fixtures in play: the momentum graph has changed. The frame holds the complete object as returned by GET /v2/fixtures/{id}/momentum; with one point per minute, expect roughly one frame a minute. While anyone is subscribed the server checks every 30 s (and once more after full time) and only sends a frame if something changed.

type"momentum"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the channel’s deltas use the same counter.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
momentumMomentum
The momentum graph: a value per game in tennis, or per minute in football, basketball, handball, ice hockey and the like.

WsShotmap

7 fields

Server frame, type "shotmap"

On fixture:{id} channels for football fixtures in play: the shot map has changed, through either a new shot or a correction by the source. While anyone is subscribed the server checks every 30 s (and once more after full time) and only sends a frame if something changed. Shots typically appear ~30–60 s after they happen.

type"shotmap"
—
channelstring
—
seqinteger
One more than the previous seq on this channel; the channel’s deltas use the same counter.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
shotsShot[]
The current shot map in FULL, oldest first, as returned by GET /v2/fixtures/{id}/shotmap. Overwrite your copy with it.

WsRace

7 fields

Server frame, type "race"

On race:{id}: something about the race changed, such as a session starting or finishing, or a status or schedule update. The frame carries the complete Race as returned by GET /v2/races/{id}. Since the live feed has no data for race sports, the server reads REST every 60 s while a session is running or due to begin within 15 minutes.

type"race"
—
channelstring
—
seqinteger
One more than the previous seq on this channel.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Race id assigned by DataSportsAPI.
sportstring
Slug of the race’s sport (motorsport, cycling).
dataRace
A race: a motorsport weekend with practice, qualifying, sprint and race, or a cycling event — one-day or stage race.

WsRaceResults

8 fields

Server frame, type "raceResults"

On race:{id}: the classification of a session has changed. The server checks every 30 s while the session is running and one last time when it finishes, and sends a frame only when something differs.

type"raceResults"
—
channelstring
—
seqinteger
One more than the previous seq on this channel.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Race id assigned by DataSportsAPI.
sportstring
Slug of the race’s sport.
sessioninteger | null
The session this classification belongs to.
resultsRaceResult[]
The full classification of the session, as returned by /v2/races/{id}/results?session=.

WsOdds

9 fields

Server frame, type "odds"

On odds:{fixtureId}: prices have moved (available since 2026-11-04). Price changes, both in-play and pre-match, come from the source’s live odds feed and reach you within roughly a second. Suspensions, newly added markets and settlement flags rely on a REST re-read, every 30 s during the match and every 2 minutes beforehand. Hold on to the snapshot (an Odds, as returned by GET /v2/fixtures/{id}/odds) and merge every frame into it by market key. Odds travel exclusively on odds:{id}; no other channel includes them.

type"odds"
—
channelstring
—
seqinteger
One more than the previous seq on this channel.
tsinteger
Server timestamp in Unix milliseconds.
idinteger
Fixture id assigned by DataSportsAPI.
sportstring
Slug of the fixture’s sport.
updatedAtstring (ISO-8601 UTC)
Time at which these prices came in.
marketsOddsMarket[]
Markets that changed, each sent in FULL with all its choices. Swap out your market with the matching key, or add it if you do not have one yet.
removedstring[]
Keys of markets the bookmaker has withdrawn (for example a handicap line that moved, or a closed market). Remove them from your copy.

WsUnsubscribed

3 fields

Server frame, type "unsubscribed"

Acknowledges that you have left a channel.

type"unsubscribed"
—
channelstring
—
tsinteger
Server timestamp in Unix milliseconds.

WsPing

2 fields

Server frame, type "ping"

Heartbeat at the application level, emitted every heartbeatMs alongside the protocol-level ping. You do not need to answer it.

type"ping"
—
tsinteger
Server timestamp in Unix milliseconds.

WsPong

2 fields

Server frame, type "pong"

The server’s answer to a { "type": "ping" } you sent.

type"pong"
—
tsinteger
Server timestamp in Unix milliseconds.

WsError

5 fields

Server frame, type "error"

The server rejected a frame you sent. Your connection remains open.

type"error"
—
codeWsErrorCode
Machine-readable code of the WebSocket error.
messagestring
—
`channel` (optional)string
—
tsinteger
Server timestamp in Unix milliseconds.

03Value sets

Enums

The value sets behind enum-typed fields. A field typed with one of these names carries one of the listed strings, and every value comes with its meaning, so code can branch on the value instead of parsing display labels.

Jump to an enum89, A–Z

Winner

3 values

Outcome of a fixture that has finished.

  • homeVictory for the home side.
  • awayVictory for the away side.
  • drawNeither side won; the fixture was drawn.

Appears inFixtureFixturePatchPlayerFixture

StatusType

7 values

High-level state of a match, meant for filtering.

  • notstartedHas not begun yet: still scheduled, or its start has been delayed.
  • inprogressUnder way, breaks included (for example half-time, or a fight waiting for its decision).
  • interruptedHalted partway through (weather, crowd, …); play is expected to restart.
  • willcontinueA match spread over several days, currently between days (for cricket Tests, the end of day N).
  • postponedRescheduled for a later date; the fixture id stays the same.
  • canceledThe match is not going to be played (canceled, abandoned or removed).
  • finishedCompleted and has a result.

Appears inStatusFixturePatchSearchFixtureRaceRaceSummaryRaceSessionRaceSessionPart

StatusPhase

12 values

Detailed match state, as a scoreboard would display it.

  • notstartedScheduled and not yet under way.
  • delayedThe start time has passed but play has been delayed.
  • inprogressA period is in play; status.period identifies which one.
  • breakA planned stoppage within the match, such as half-time, the gap between sets, waiting for extra time or penalties, or a cricket lunch / tea / drinks interval.
  • awaitingResultPlay has ended but the result has not been announced yet (for example a combat-sports judges’ decision).
  • interruptedHalted unexpectedly; play should restart.
  • suspendedHalted by the organiser and possibly resumed on another day.
  • willcontinueA match lasting several days, currently paused between days.
  • postponedRescheduled for a later date.
  • canceledCalled off before the start, or removed.
  • abandonedBegan but was stopped for good without a result.
  • finishedCompleted; status.finish explains how the result was reached.

Appears inStatusFixturePatch

FinishType

7 values

The way a completed match was settled.

  • regularSettled in regulation time; this is also the normal ending for any sport played in sets, frames or games.
  • overtimeSettled in overtime, extra time or extra innings (shown upstream as “AET”).
  • penaltiesSettled by a penalty shoot-out (shown upstream as “AP”).
  • goldenSetSettled by a golden set, in volleyball.
  • walkoverResult awarded with no match played.
  • retiredA side withdrew partway through the match (tennis).
  • defaultedA side was defaulted or disqualified.

Appears inStatusFixturePatch

FightMethod

11 values

The way a fight was decided.

  • koKnockout (KO).
  • tkoTechnical knockout: the referee or the doctor stopped the fight.
  • submissionWin by submission.
  • unanimousDecisionA decision on which every judge agreed.
  • splitDecisionA decision on which the judges were divided.
  • majorityDecisionA majority decision: two judges favour the winner and the third scores it even. Paired with winner: "draw" it is a majority draw instead, with two judges scoring a draw (observed in real boxing data on 2026-10-19).
  • technicalDecisionDecided on the scorecards following a stoppage.
  • pointsDecisionBoxing: a decision on points (PTS in the source), scored solely by the referee as in British small-hall bouts. A drawn bout carries winner: "draw".
  • disqualificationOne fighter was disqualified.
  • noContestRuled a no contest.
  • otherA method we do not classify yet; we log the source’s code.

Appears inFightResultRecentFight

FightDiscipline

6 values

Which combat sport a fight belongs to.

  • mmaMixed martial arts (MMA).
  • boxingA boxing bout.
  • kickboxingA kickboxing bout.
  • muayThaiA Muay Thai bout.
  • grapplingA submission grappling match.
  • otherA discipline without a mapping yet; we log the source’s value.

Appears inFixturePlayerFixture

SurfaceType

5 values

Surface of a tennis court.

  • hardA hard court.
  • clayA clay court, red or green.
  • grassA grass court.
  • carpetCarpet, a synthetic indoor surface.
  • otherA surface we do not classify yet; name holds the source’s text.

Appears inSurface

TossDecision

2 values

The choice made by the side that won a cricket toss.

  • batElected to bat first.
  • bowlElected to bowl (field) first.

Appears inCricketToss

FightCardSection

4 values

Which section of a fight card a bout belongs to.

  • mainCardPart of the main card.
  • prelimsPart of the preliminary card.
  • earlyPrelimsPart of the early preliminary card.
  • otherA section without a mapping yet; we log the source’s value.

Appears inFightCard

DownPlayType

4 values

American football: what type of play the ball is spotted for.

  • scrimmageA scrimmage play, for which downs count.
  • kickoffA kickoff, which uses no down.
  • conversionThe try after a touchdown — a kick for the extra point or a two-point attempt — with no down in play.
  • otherAny play type missing from this list.

Appears inFixturePatchDownAndDistance

Position

53 values

Where a player plays, defined per sport; positionCode keeps the source’s letter code.

  • goalkeeperFootball, futsal and handball: goalkeeper.
  • defenderFootball and futsal: defender.
  • midfielderFootball and futsal: midfielder.
  • forwardFootball, futsal, basketball, ice hockey and rugby: forward.
  • guardBasketball: guard.
  • centerBasketball, ice hockey and American football: center.
  • guardForwardBasketball: guard-forward.
  • forwardCenterBasketball: forward-center.
  • goalieIce hockey: goalie.
  • defensemanIce hockey: defenseman.
  • leftWingIce hockey and handball: left wing.
  • rightWingIce hockey and handball: right wing.
  • leftBackHandball: left back.
  • rightBackHandball: right back.
  • centreBackHandball: centre back.
  • pivotHandball: pivot, also called line player.
  • quarterbackAmerican football: quarterback.
  • runningBackAmerican football: running back or fullback.
  • wideReceiverAmerican football: wide receiver.
  • tightEndAmerican football: tight end.
  • offensiveLinemanAmerican football: offensive lineman.
  • offensiveTackleAmerican football: offensive tackle.
  • offensiveGuardAmerican football: offensive guard.
  • defensiveTackleAmerican football: defensive tackle or nose tackle.
  • defensiveEndAmerican football: defensive end.
  • defensiveLinemanAmerican football: defensive lineman.
  • linebackerAmerican football: linebacker.
  • cornerbackAmerican football: cornerback.
  • safetyAmerican football: safety.
  • defensiveBackAmerican football: defensive back.
  • kickerAmerican football: kicker.
  • punterAmerican football: punter.
  • longSnapperAmerican football: long snapper.
  • pitcherBaseball: pitcher.
  • startingPitcherBaseball: starting pitcher.
  • reliefPitcherBaseball: relief pitcher.
  • catcherBaseball: catcher.
  • firstBaseBaseball: first baseman.
  • secondBaseBaseball: second baseman.
  • thirdBaseBaseball: third baseman.
  • shortstopBaseball: shortstop.
  • leftFieldBaseball: left fielder.
  • centerFieldBaseball: center fielder.
  • rightFieldBaseball: right fielder.
  • infielderBaseball: infielder.
  • outfielderBaseball: outfielder.
  • designatedHitterBaseball: designated hitter.
  • batterCricket: batter.
  • bowlerCricket: bowler.
  • allRounderCricket: all-rounder.
  • wicketKeeperCricket: wicket-keeper.
  • backRugby: one of the backs, without saying which (the source does not specify).
  • otherA code that has no mapping for this sport; the raw value stays in positionCode.

Appears inPlayerSquadPlayerLineupPlayerAveragePositionTeamOfTheWeekPlayerAttributeOverview

Availability

2 values

Tells whether an absent player is definitely out or only doubtful.

  • outWill not play in this fixture.
  • doubtfulCould miss this fixture.

Appears inMissingPlayer

MissingReason

9 values

The reason a player is unavailable.

  • injuryAn injury; when known, description gives it (e.g. "Hamstring Injury").
  • illnessIllness.
  • suspensionA suspension that is not a card ban.
  • absentAway for some other reason (personal matters, international duty, …).
  • yellowCardSuspensionA ban after accumulating yellow cards.
  • yellowRedCardSuspensionA ban following a sending-off for a second yellow card.
  • redCardSuspensionA ban following a straight red card.
  • onLoanLoaned out and ineligible to face the parent club.
  • otherA reason from the source that DataSportsAPI has not classified yet.

Appears inMissingPlayer

StatKind

3 values

Explains how a statistic’s value and total should be interpreted.

  • valuevalue holds the displayed number (for "57%" it is 57, for "2.04" it is 2.04) and total is null.
  • ratiovalue successful attempts out of total ("33/53 (62%)" gives 33 and 53). A display that shows only a percentage, such as "42%", is still expressed as value / total.
  • timevalue is a number of seconds and total the seconds that were available (the length of the period); time spent in the lead is one example.

Appears inStatItem

HigherIs

2 values

Tells whether a larger figure is an advantage.

  • betterLarger numbers favour the side (shots, possession).
  • worseLarger numbers count against the side (fouls, turnovers, errors).

Appears inStatItem

IncidentType

9 values

The kind of match event.

  • goalAny score, whether a goal, basket, try, touchdown, …; detail gives the kind. Points are not listed for set sports (volleyball, table tennis, badminton); the end of each set appears as a period row instead.
  • cardA card shown to a team official or a player.
  • substitutionA substitution in which playerIn comes on for playerOut.
  • periodThe end of a period, and nothing else: since 2026-10-23 a period still in progress gets no row. period names the period just finished, and text holds its scoreboard label (FT, HT, Q2, 2. set, 3rd period, …). The scores show the match score at that moment — for volleyball, table tennis and badminton the sets won so far; the points inside each set are given by /points and by the fixture’s periods.
  • injuryTimeAnnouncement of added time: addedMinute extra minutes following minute.
  • varDecisionThe outcome of a video review, described by detail; confirmed means the original call was upheld.
  • inGamePenaltyA penalty kick taken during play that did not result in a goal (detail missed). A converted penalty is recorded as a goal with detail penalty.
  • shootoutPenaltyA single kick in a penalty shoot-out. shootoutSequence is its position in the overall order (1, 2, 3, …, counting both sides) and shootoutRound is the round, i.e. the 1st, 2nd, … kick of the taker’s side.
  • suspensionA time-limited exclusion such as an ice hockey penalty or a handball two-minute suspension, with durationSeconds and reason.

Appears inIncident

IncidentDetail

34 values

Refines an incident’s type into a more specific kind.

  • regularFor a goal, a standard goal; for a substitution, a tactical change.
  • ownGoalgoal: put into their own net by the conceding side; side is the team credited with it.
  • penaltygoal: a converted penalty kick or 7-metre throw.
  • powerPlaygoal (ice hockey): scored while the side had a man advantage.
  • shortHandedgoal (ice hockey): scored while the side was a man short.
  • emptyNetgoal (ice hockey): scored with no goalie in the net.
  • onePointgoal (basketball): a made free throw.
  • twoPointsgoal: a 2-point field goal in basketball, or a conversion in rugby.
  • threePointsgoal: a 3-pointer in basketball, or a penalty goal or drop goal in rugby.
  • trygoal (rugby): try scored.
  • touchdowngoal (American football): touchdown scored.
  • extraPointgoal (American football): extra point converted.
  • fieldGoalgoal (American football): field goal made.
  • twoPointConversiongoal (American football): successful two-point conversion.
  • safetygoal (American football): points from a safety.
  • yellowcard: a caution (yellow).
  • secondYellowcard: a second yellow, which means a sending-off.
  • redcard: a direct red.
  • injurysubstitution: made because of an injury.
  • goalAwardedvarDecision: the review awarded a goal.
  • goalNotAwardedvarDecision: the review ruled a goal out.
  • penaltyAwardedvarDecision: the review awarded a penalty.
  • penaltyNotAwardedvarDecision: the review cancelled a penalty.
  • cardUpgradevarDecision: the review raised a card (e.g. yellow → red).
  • cardDowngradevarDecision: the review lowered a card.
  • scoredshootoutPenalty: the kick went in.
  • missedshootoutPenalty / inGamePenalty: the kick failed, either missed or saved; reason tells which.
  • twoMinutessuspension: minor penalty of two minutes.
  • fiveMinutessuspension: major penalty of five minutes.
  • tenMinutessuspension: misconduct penalty of ten minutes.
  • fourMinutessuspension (ice hockey): double minor lasting four minutes. Available since 2026-11-09.
  • awardedinGamePenalty: the referee gave a penalty kick; the kick is then logged separately (as missed, or as the goal). Available since 2026-11-09.
  • redCardGivenvarDecision: the review produced a red card. Available since 2026-11-09.
  • otherA kind supplied by the source that DataSportsAPI does not classify yet.

Appears inIncident

BodyPart

4 values

Football: the part of the body used for a shot.

  • rightFootStruck with the right foot.
  • leftFootStruck with the left foot.
  • headHeaded.
  • otherSome other part of the body.

Appears inBuildUpStepShot

GoalMouthLocation

15 values

Football: where a shot finished in relation to the goal.

  • lowLeftOn target, bottom left as seen by the shooter.
  • lowCentreOn target, bottom centre.
  • lowRightOn target, bottom right.
  • highLeftOn target, top left.
  • highCentreOn target, top centre.
  • highRightOn target, top right.
  • leftMissed to the left.
  • rightMissed to the right.
  • highWent over the crossbar.
  • closeLeftNarrowly wide to the left.
  • closeRightNarrowly wide to the right.
  • closeHighNarrowly over the bar.
  • closeHighLeftNarrowly over, to the left.
  • closeHighRightNarrowly over, to the right.
  • otherA location we have not classified yet.

Appears inBuildUpStepShotPenaltyKick

BuildUpAction

16 values

The type of a single step in the move leading to a goal.

  • passA pass; endPosition marks where it was received.
  • crossA cross; endPosition marks where it arrived.
  • throwInA throw-in; endPosition marks where it landed. Available since 2026-10-25.
  • freeKickA free kick that fed into the move; endPosition marks where it arrived. Available since 2026-11-09.
  • carryThe player ran with the ball (ball-movement in the source), without an endPosition. Available since 2026-10-25.
  • touchA block, deflection, goalkeeper’s parry or similar touch that kept the move going (ball-touch in the source). Available since 2026-10-25.
  • tackleA ball-winning tackle from which the move begins or continues. Available since 2026-11-09.
  • interceptionAn intercepted pass from which the move begins or continues. Available since 2026-11-09.
  • clearanceEither team cleared the ball and play went on. Available since 2026-11-09.
  • savedShotA shot saved by the goalkeeper, with play continuing from the rebound.
  • missedShotAn off-target shot after which play continued. Available since 2026-10-25.
  • postA shot off the woodwork after which play continued. Available since 2026-11-09.
  • penaltySavedA saved penalty kick, with play continuing from the rebound. Available since 2026-11-09.
  • penaltyMissedA missed penalty kick after which play continued. Available since 2026-11-09.
  • goalThe scoring shot, always the final step.
  • otherAn action without a mapping yet; we log the source’s value.

Appears inBuildUpStep

BestPlayerLabel

5 values

The metric behind a best-player value.

  • ratingThe player’s match rating (football, basketball, …).
  • pointsPoints; in ice hockey, goals plus assists.
  • goalsGoals scored (handball).
  • yardsYardage (American football).
  • otherA metric we have not classified yet.

Appears inBestPlayer

BestPlayerRole

2 values

Baseball: the reason a top performer was selected.

  • pitcherChosen for pitching; the statistics use pitching keys.
  • batterChosen for batting; the statistics use batting keys.

Appears inBestPlayer

ShotOutcome

5 values

The result of a shot.

  • goalWent in (in basketball, a made field goal).
  • saveOn target but kept out by the goalkeeper / goalie.
  • missMissed the target (in basketball, a missed field goal).
  • blockStopped by an outfield player / skater, goal-line clearances included (in basketball, a blocked field goal).
  • postStruck the woodwork (football).

Appears inShotPenaltyKick

ShotTechnique

10 values

Ice hockey: the type of shot.

  • wristA wrist shot.
  • snapA snap shot.
  • slapA slap shot.
  • backhandA backhand shot.
  • tipInA tip-in.
  • deflectedA deflected shot.
  • wrapAroundA wrap-around attempt.
  • pokeA poke shot.
  • batA batted puck.
  • otherA shot type we have not classified yet.

Appears inShot

ShotSituation

10 values

Football: the phase of play that produced a shot.

  • regularFrom open play, with no assist.
  • assistedFrom open play, set up by a team-mate’s pass.
  • cornerFollowing a corner kick.
  • setPieceFollowing some other set piece.
  • fastBreakDuring a counter-attack.
  • freeKickTaken directly from a free kick.
  • throwInSetPieceFollowing a throw-in set play.
  • penaltyA penalty kick taken during play.
  • shootoutA kick in a penalty shoot-out; shootoutSequence gives the overall kick order and shootoutRound the round for the taker’s side.
  • otherA situation we have not classified yet.

Appears inShot

ShotGoalType

3 values

The type of goal a shot produced.

  • regularA standard goal.
  • ownGoalAn own goal; the value matches the incident detail of the same name.
  • penaltyA penalty that was scored, either during play or in the shoot-out.

Appears inShot

ShotStrength

3 values

Ice hockey: the player-strength situation when the shot was taken.

  • evenBoth teams at equal strength (ice hockey).
  • powerPlayThe shooting team had a man advantage (ice hockey).
  • shortHandedThe shooting team was a man short (ice hockey).

Appears inShot

RecentFightResult

4 values

How a fight ended for the fighter, as shown in their record.

  • winA win.
  • drawA draw.
  • lossA loss.
  • noContestA no contest: the fight was declared void with no winner. Listed since 2026-11-09; earlier, such fights were omitted.

Appears inRecentFight

StreakSide

3 values

Which side the streak belongs to.

  • homeThe streak belongs to the home side of the fixture.
  • awayThe streak belongs to the away side of the fixture.
  • bothShared by both sides; for head-to-head streaks it covers their meetings with each other.

Appears inStreak

StreakKind

3 values

How to read a streak’s figure: consecutive matches, x out of the last y, or an average.

  • inARowConsecutive matches: count of them in a row ("5").
  • ofLastcount out of the most recent outOf matches ("7/8").
  • averageA mean across recent matches, held in average ("83" points per game); count and outOf are both null.

Appears inStreak

PointsFormat

5 values

The structure a fixture’s point-by-point data follows.

  • tennisTennis, nested as sets → games → points (sets[].games).
  • rallyBadminton, table tennis and volleyball, nested as sets → points (sets[].points).
  • cricketCricket, nested as innings → overs → balls (innings).
  • baseballBaseball, one at-bat at a time (atBats), with the pitcher, the batter and the win probability before / after every at-bat.
  • dartsDarts, nested as sets → legs → visits (darts), giving the score of every visit and what both players still have remaining.

Appears inPoints

TennisPointDescription

3 values

How a tennis point was decided, when the source provides it.

  • aceAn ace, meaning the server took the point with the serve itself.
  • doubleFaultA double fault, handing the point to the receiver.
  • otherA description without a mapping yet; we log the source’s code.

Appears inTennisPoint

TennisPointType

6 values

The significance of a tennis point for one side.

  • wonThe side took the point and nothing else needs flagging.
  • noneNothing to flag for this side, usually because it lost the point (the final point of a tie-break may be none for both sides).
  • breakPointFollowing this point the receiving side holds a break point, one point away from breaking serve.
  • setPointThe side now has set point (and match point too, should that set be the decider — the source treats both alike). Takes precedence over breakPoint and miniBreak.
  • miniBreakTie-break point won against the opponent’s serve.
  • otherA type without a mapping yet; we log the source’s code.

Appears inTennisPoint

BallOutcome

10 values

The result of a single cricket delivery.

  • dotA dot ball, with no run scored.
  • runsRuns off the bat that are not a boundary (1, 2, 3, …).
  • fourA boundary worth four.
  • sixA boundary worth six.
  • wicketA wicket was taken; see dismissal.
  • wideA wide, which counts as an extra and must be bowled again.
  • noBallA no-ball, which counts as an extra and must be bowled again.
  • legByeLeg byes: extras that come off the batter’s body.
  • byeByes: extras that get past the wicket-keeper.
  • otherA delivery without a mapping yet; we log the source’s code.

Appears inBall

Dismissal

11 values

The way a batter was dismissed.

  • caughtCaught by a fielder who is not the bowler.
  • caughtAndBowledCaught by the bowler off their own delivery.
  • bowledOut bowled.
  • lbwLeg before wicket (LBW).
  • runOutA run-out.
  • stumpedStumped by the wicket-keeper.
  • hitWicketOut hit wicket.
  • retiredRetired, whether hurt or out.
  • obstructingTheFieldOut for obstructing the field.
  • timedOutOut timed out.
  • otherA dismissal without a mapping yet; we log the source’s text.

Appears inBallScorecardBatter

CricketShotZone

12 values

Cricket: the wagon-wheel sector a shot was played into, named after the fielding positions for a right-handed batter.

  • squareLegSquare leg or backward square leg, roughly 350°–20°.
  • fineLegFine leg, roughly 20°–65°.
  • behindWicketFine, directly behind the wicket-keeper, roughly 65°–115°.
  • thirdManThird man, roughly 115°–155°.
  • pointPoint or backward point, roughly 155°–172°.
  • coverPointCover point or deep cover, roughly 173°–189°.
  • coverCover or extra cover, roughly 190°–229°.
  • longOffMid-off or long-off, roughly 230°–254°.
  • straightBack past the bowler, straight down the ground, roughly 255°–284°.
  • longOnMid-on or long-on, roughly 285°–309°.
  • midWicketMid-wicket or cow corner, roughly 310°–349°.
  • otherA sector code without a mapping yet (we log the source’s code); angle still gives the direction.

Appears inCricketShot

UmpirePosition

7 values

Where a baseball umpire is stationed.

  • homePlateUmpire behind home plate, who calls balls and strikes.
  • firstBaseUmpire stationed at first base.
  • secondBaseUmpire stationed at second base.
  • thirdBaseUmpire stationed at third base.
  • leftFieldUmpire along the left-field line, used by six-man postseason crews.
  • rightFieldUmpire along the right-field line, used by six-man postseason crews.
  • otherAny assignment missing from this list.

Appears inUmpire

WeatherCondition

7 values

A short description of the weather.

  • clearSunny or clear skies.
  • cloudyOvercast or cloudy.
  • fogMisty or foggy.
  • rainShowers or rain.
  • snowSleet or snow.
  • stormThunderstorms.
  • otherA condition missing from this list; description keeps the source’s wording.

Appears inWeatherObservation

EsportsRole

10 values

The role a player fills in an esports title.

  • topLeague of Legends: top lane.
  • jungleLeague of Legends: jungle.
  • midMid lane in League of Legends; position 2 in Dota 2.
  • bottomLeague of Legends: bottom-lane carry (AD carry).
  • supportLeague of Legends: support.
  • carryDota 2 position 1: the safe-lane carry.
  • offlaneDota 2 position 3: offlane.
  • softSupportDota 2 position 4: soft support.
  • hardSupportDota 2 position 5: hard support.
  • otherA role missing from this list, or a game that has no roles (Counter-Strike).

Appears inEsportsGamePlayer

CsRoundOutcome

5 values

The way a Counter-Strike round was won.

  • eliminationThe winning side wiped out every opponent.
  • bombDefusedThe Counter-Terrorists defused the bomb.
  • bombExplodedThe bomb went off, giving the round to the T side.
  • timeExpiredThe clock expired without a bomb plant, giving the round to the CT side.
  • otherAny other kind of round ending.

Appears inEsportsRound

CsSide

2 values

Which side a team plays in Counter-Strike.

  • ctCounter-Terrorists, who defend the bomb sites.
  • tTerrorists, who plant the bomb.

Appears inEsportsGameEsportsRound

BatterState

6 values

The current status of a batter’s innings.

  • outOut; dismissal gives the details.
  • notOutBatted and remained not out at the close of the innings.
  • battingCurrently at the crease while the innings is in progress.
  • didNotBatHas not batted, or not yet if the innings is still in progress.
  • retiredHurtRetired hurt: walked off injured without being dismissed.
  • otherA state without a mapping yet; we log the source’s code.

Appears inScorecardBatter

TeamKind

3 values

What a team object represents: an actual team, a single competitor in an individual sport, or a doubles pair.

  • teamA club or team, national sides included.
  • individualOne competitor in an individual sport — a tennis player, fighter or darts player; see person for details.
  • pairA doubles pair of two players (badminton, beach volleyball, table tennis, tennis).

Appears inTeamDetail

Handedness

3 values

Which hand a player uses.

  • rightPlays right-handed.
  • leftPlays left-handed.
  • ambidextrousUses either hand (ambidextrous).

Appears inPersonPitch

DetailedPosition

13 values

Football: a fine-grained playing position derived from the source’s position codes.

  • goalkeeperGoalkeeper; source code GK.
  • leftBackLeft back or left wing-back; code DL.
  • centreBackCentre back; code DC.
  • rightBackRight back or right wing-back; code DR.
  • defensiveMidfielderDefensive midfielder; code DM.
  • leftMidfielderLeft midfielder; code ML.
  • centralMidfielderCentral midfielder; code MC.
  • rightMidfielderRight midfielder; code MR.
  • attackingMidfielderAttacking midfielder; code AM.
  • leftWingerLeft winger; code LW.
  • rightWingerRight winger; code RW.
  • strikerStriker or centre forward; code ST.
  • otherA code without a mapping yet; we log the source’s code.

Appears inPlayerSquadPlayerPlayerAttributes

InjuryStatus

5 values

The effect an ongoing injury has on selection.

  • outUnavailable until the expected return date.
  • outForSeasonSidelined for the remainder of the season (outForSeason in the source, observed on NBA squads on 2026-10-25).
  • dayToDayDay to day; could feature in the next match.
  • doubtfulA doubt for the next match.
  • otherA status without a mapping yet; we log the source’s value.

Appears inInjury

TransferType

15 values

The nature of a player move.

  • transferA permanent move to another team — paid, free or with an undisclosed fee (see fee and freeTransfer).
  • loanSent on loan to another team.
  • loanEndA loan has ended and the player returns to the parent team.
  • signedJoined the team, usually as a free agent, in which case from is null.
  • releasedLet go after the contract was terminated.
  • waivedUS leagues: placed on waivers or released by the team; to is null.
  • claimedPicked up off waivers by a different team.
  • tradedUS leagues: dealt to another team in a trade.
  • draftSelected in a draft; draft gives the round and pick when available.
  • contractExpiredThe contract reached its end.
  • tenDayContractNBA: a 10-day contract.
  • secondTenDayContractNBA: a further 10-day contract, the second with the same team.
  • retiredThe player retired.
  • deceasedThe player has passed away.
  • otherA move supplied by the source that DataSportsAPI does not classify yet.

Appears inTransfer

StandingsScoreUnit

7 values

The unit counted by a table’s scoresFor / scoresAgainst / scoreDifference.

  • goalsGoals — bandy, floorball, football, futsal, handball, ice hockey, minifootball, water polo.
  • pointsPoints, used in basketball, rugby and American football.
  • runsRuns, used in baseball.
  • setsSets won and lost, not the rally points inside them (padel, volleyball).
  • mapsMaps won and lost, used in esports.
  • framesFrames, used in snooker.
  • legsLegs, used in darts.

Appears inStandingsGroup

SearchType

9 values

The kind of entity a search result is, which also tells you which endpoint accepts its id.

  • teamA team, or a competitor in an individual sport (tennis player, fighter, driver); use /v2/teams/{id}.
  • playerA team-sport player; use /v2/players/{id}.
  • leagueA league or competition; use /v2/leagues/{id}.
  • managerA manager or head coach; use /v2/managers/{id}.
  • refereeA match referee; use /v2/referees/{id}.
  • seriesA racing series such as Formula 1 or MotoGP; use /v2/series/{id}.
  • raceA Grand Prix, a cycling race or any other single race in a racing series; look it up with /v2/races/{id}.
  • fixtureA match or fixture (since 2026-11-04); use /v2/fixtures/{id}. fixture holds its teams, league, start time and status.
  • venueA stadium or arena (since 2026-11-04); use /v2/venues/{id}, the same id found in Fixture.venue and TeamDetail.venue. venue holds its city, country and capacity.

Appears inSearchResult

CompetitionType

4 values

The category a competition falls into.

  • domesticLeagueA league within one country, e.g. LaLiga.
  • domesticCupA cup or super cup within one country, e.g. Copa del Rey or Supercopa.
  • internationalCupA cross-border competition for clubs or national teams, e.g. Champions League or UEFA Super Cup.
  • otherA type without a mapping yet; we log the source’s value.

Appears inTrophy

TeamOfTheWeekPeriodKind

4 values

The span a team-of-the-week period refers to.

  • roundA single competition round, identified by round / roundName.
  • weekRoughly one calendar week (from / to), used by competitions that have no rounds (NBA).
  • monthOne calendar month, bounded by from / to.
  • otherSome other kind of period; we log the source’s value.

Appears inTeamOfTheWeekPeriod

PlayerCharacteristic

26 values

Something a player is notably good or weak at.

  • anchorPlayAnchoring midfield as a screen in front of the back line.
  • penaltyTakingTaking penalties.
  • directFreeKicksTaking direct free kicks.
  • longShotsLong-range shooting.
  • finishingConverting chances into goals.
  • passingPassing ability.
  • playmakingSetting up chances for team-mates.
  • tacklingTackling ability.
  • ballInterceptionCutting out opposition passes.
  • consistencyDelivering a steady level of performance from one match to the next.
  • crossingDelivering crosses.
  • longBallsPlaying long balls.
  • ballControlControlling the ball.
  • groundDuelsContesting ground duels.
  • aerialDuelsContesting aerial duels.
  • errorPronenessCommitting errors; listed as a weakness, it marks the player as error-prone.
  • disciplineDiscipline; listed as a weakness, it points to cards and fouls.
  • penaltySavingGoalkeepers: stopping penalties.
  • reflexesGoalkeepers: making reflex saves.
  • runsOutGoalkeepers: rushing off the line.
  • highClaimsGoalkeepers: collecting high balls.
  • ballHandlingGoalkeepers: ball handling.
  • longShotsSavingGoalkeepers: stopping long-range shots.
  • positioningPositional sense.
  • highPressingPressing opponents high up the field.
  • otherA characteristic without a mapping yet; we log the source’s number.

Appears inPlayerAttributes

SeasonStatsType

5 values

The set of matches season statistics are based on. If you omit type, the endpoints fall back to the first type listed for the season (overall, otherwise regularSeason).

  • overallAll matches in the season (football, handball, rugby, European basketball, …).
  • homeOnly matches played at home.
  • awayOnly matches played away.
  • regularSeasonRegular-season matches, used by North American leagues (NBA, NHL, …) that have no overall type.
  • playoffsPlayoff matches only.

Appears inPlayerLeagueSeasonsPlayerCareerSeason

WinProbabilityModel

3 values

Versions of the win-probability model. Each version is explained below, and any new one is announced in the changelog.

  • v1The original model (2026-10-22). Its pre-match estimate relies solely on the current competition’s table and form. Fixtures whose pre-match estimate was locked in before v2 still use it, since the estimate is kept once a match starts.
  • v2Live since 2026-10-22. Before kick-off it combines each team’s recent results in every competition, its domestic league table and our league-strength coefficients (which make teams from different leagues comparable), and gives the current competition’s table more weight as the season goes on. In-play behaviour matches v1. Fixtures whose pre-match estimate was locked in before v3 still use it.
  • v3Live since 2026-10-25. Pre-match it reuses v2, with two changes: a league match with a newcomer — a team that came into the competition by promotion or relegation, early in the season — uses only the current table and form, and the Turkish 1.Lig is now part of the league-strength coefficients. In play it applies v2’s formula plus a calibration step, phased in across the first 15 minutes, that makes the curve slightly less certain to correct a mild over-confidence.

Appears inWinProbabilityWsWinProbability

WinProbabilityReason

8 values

What triggered a win-probability point.

  • kickoffKick-off: the pre-match estimate, placed at minute 0.
  • minuteThe routine point emitted every minute; the estimate shifts as time runs down even if nothing else occurs.
  • goalEmitted immediately after a goal; an own goal counts for the side it is credited to.
  • redCardEmitted immediately after a red card, second yellows included.
  • periodStartStart of a period: the second half or either half of extra time.
  • periodEndEnd of a period: half-time, the close of regulation or the close of extra time.
  • bigChanceInserted just after a missed big chance (a shot worth at least 0.3 expected goals) so the moment is visible on the curve. Neither v1 nor v2 uses live expected goals in the estimate.
  • finalFull time: the final result expressed as certainty (1 / 0 / 0).

Appears inWinProbabilityPoint

OddsMarketKind

18 values

The proposition a betting market offers prices on.

  • resultThree-way market ("1X2") on a home win, a draw or an away win when period ends; only regular time counts, not extra time or shoot-outs.
  • winnerWho wins the match or period, as a two-way market without a draw. Where a sport has overtime, settlement follows the bookmaker, whose rules usually count overtime.
  • doubleChanceBacks two of the three outcomes: 1X (home or draw), 12 (home or away) or X2 (draw or away).
  • drawNoBetBack a home or away win; if the match is drawn the bet is void and stakes are refunded.
  • bothTeamsToScoreYes / no on whether each side scores at least once.
  • firstToScoreThe side that opens the scoring, or no goal at all.
  • totalGoalsTotal goals scored by both teams, over or under line.
  • totalCardsTotal cards in the match, over or under line; the bookmaker’s own rules decide how a second yellow counts.
  • totalCornersNumber of corner kicks, over or under line.
  • totalThe total in the sport’s own scoring unit, over or under line — goals in handball and ice hockey, runs in baseball, games or sets in tennis, points in American football and basketball.
  • asianHandicapAsian handicap: the home side starts line goals up (down, if the value is negative) and the away side gets the opposite. On quarter lines (±0.25, ±0.75) the stake is split over the two neighbouring lines; on whole lines a push returns the stake.
  • handicapHandicap or point spread: line is applied to the home side’s score, and its opposite to the away side’s, before the bet is settled.
  • nextGoalIn-play market on who scores the next goal, or whether no more goals follow (none). Available since 2026-11-09.
  • tossWinnerCricket: the side that wins the toss. Available since 2026-11-09; before that it was returned as winner.
  • mostSixesCricket: the side hitting more sixes in the match (draw when level). Available since 2026-11-09; before that it was returned as result.
  • centuryInMatchCricket: yes / no on any batter reaching a hundred in the match. Available since 2026-11-09.
  • fiftyInMatchCricket: yes / no on any batter reaching fifty in the match. Available since 2026-11-09.
  • otherA market we have not classified yet. name carries the bookmaker’s label, and we log the source’s value so the market can be added.

Appears inOddsMarket

OddsOutcome

12 values

The outcome a betting choice stands for.

  • homeThe home side, including the market’s handicap where there is one.
  • drawA drawn result.
  • awayThe away side, with the reverse handicap where there is one.
  • homeOrDrawDouble chance 1X: home win or draw.
  • drawOrAwayDouble chance X2: draw or away win.
  • homeOrAwayDouble chance 12: either side wins, i.e. anything but a draw.
  • yesThe proposition happens (e.g. both teams score).
  • noThe proposition does not happen.
  • overThe final total is higher than line.
  • underThe final total is lower than line.
  • noneNeither side — for example when nobody scores in a first-to-score market.
  • otherAn unclassified choice; name carries the bookmaker’s label.

Appears inOddsChoice

OddsChange

3 values

Direction of a price’s most recent movement.

  • upThe price went up the last time it moved: the outcome is seen as less likely and pays out more.
  • downThe price went down the last time it moved: the outcome is seen as more likely and pays out less.
  • noneNo movement since the price opened, or the direction is unknown.

Appears inOddsChoice

GoalDistributionScope

4 values

The set of matches a goal distribution is built from.

  • overallAll of the team’s matches in the league season.
  • homeOnly the team’s home matches.
  • awayOnly the team’s away matches.
  • otherAny other kind of split.

Appears inGoalDistribution

PlayerActionType

10 values

The type of a single on-ball action by a player.

  • passA pass; crosses have their own type.
  • crossA crossed ball.
  • dribbleA take-on, i.e. trying to get past an opponent with the ball (counted in the lineups’ totalContest / wonContest).
  • ballCarryA ball carry by the player, from start to end.
  • tackleA tackle; successful is true when it was won.
  • interceptionA pass cut out by the player.
  • ballRecoveryPossession regained from a loose ball.
  • clearanceA clearance; end shows where the ball went when the source provides it.
  • blockA shot or pass that the player blocked.
  • otherAny other kind of action.

Appears inPlayerAction

CommentaryKind

13 values

The subject of a commentary entry.

  • kickoffThe match has started.
  • goalA goal, including own goals and penalties.
  • redCardA sending-off, from a straight red card or a second yellow.
  • missedPenaltyA penalty taken during the match that was missed or saved; a converted one appears as a goal entry.
  • varDecisionThe outcome of a video review: a goal or penalty awarded / overturned, or a card changed.
  • bigChanceA big chance not taken — a shot worth 0.3 expected goals or more.
  • momentumOne side has kept up pressure for several minutes, according to the attack-momentum graph.
  • periodStartPlay got under way in the second half or in a half of extra time.
  • periodEndRegulation or the first half of extra time is over, with more play to come.
  • halfTimeA recap at half-time.
  • fullTimeA recap at full time.
  • updateA catch-up on the match to date, produced when commentary begins while the match is already in progress.
  • correctionThe source reassigned an already-covered goal to a different player, so a single line names the scorer it now credits; earlier entries are left as written. Available since 2026-10-27.

Appears inCommentaryEntry

PlayByPlayType

37 values

The event a play-by-play entry describes.

  • matchStartedFootball: kick-off of a half, halves of extra time included.
  • matchEndedFootball: the match has ended.
  • endFirstHalfFootball: end of the first half.
  • endSecondHalfFootball: end of the second half.
  • periodStartBasketball and other timed sports: start of a period; the opening tip also counts as periodStart.
  • periodEndBasketball and other timed sports: end of a period.
  • addedTimeFootball: the fourth official has signalled added time; text gives the minutes.
  • scoreChangeThe score moved, through a goal or basketball points (scoreType identifies which); homeScore / awayScore show the new score.
  • shotSavedFootball: an on-target shot kept out by a save.
  • shotOffTargetA missed shot: off target in football, a missed field goal in basketball.
  • shotBlockedFootball: a defender blocked a shot.
  • postFootball: a shot struck the post or crossbar and play continued. Available since 2026-11-09; before that it was reported as other.
  • cornerKickFootball: a corner kick. player is the defender who gave it away and side is that defender’s side, so the corner went to the opposing team.
  • freeKickWonFootball: a free kick earned; player is the one who was fouled.
  • freeKickLostFootball: a foul committed; player is the one who committed it.
  • offsideFootball: a player flagged for offside.
  • yellowCardFootball: a yellow card is shown.
  • redCardFootball: a red card is shown, second yellows included.
  • substitutionA player change, with playerIn / playerOut.
  • startDelayFootball: play halted, for example for an injury or a delay.
  • endDelayFootball: play restarted following a delay.
  • foulBasketball: a foul; player committed it and drawnBy drew it.
  • freeThrowMissedBasketball: a free throw that did not go in.
  • reboundBasketball: a rebound; text tells whether it was offensive or defensive.
  • possessionChangeBasketball: a turnover; if it came from a steal, stolenBy names the player who took the ball.
  • jumpBallBasketball: a jump-ball situation.
  • lineupChangeBasketball: a side changed its five on the floor; text lists the names.
  • timeoutA timeout was called.
  • stoppageBasketball: a clock stoppage (out of bounds, …).
  • reviewA video review; text gives the outcome (a VAR decision, in football).
  • penaltyAwardedFootball: a penalty kick given; player is the one fouled and side is that player’s side.
  • penaltyConcededFootball: a penalty kick given away; player is the one responsible and side is that player’s side.
  • penaltyScoredFootball: a penalty kick converted during play. Because the source provides no score on this entry, homeScore / awayScore are derived by counting on from the previous goal in the list; they are null in a penalty shoot-out, since that leaves the match score unchanged.
  • penaltyMissedFootball: a penalty kick that went off target.
  • penaltySavedFootball: a penalty kick stopped by the goalkeeper.
  • violationBasketball: a violation such as a kicked ball or goaltending; text gives the kind.
  • otherAny other kind of entry — a value the source introduced later; text has the details.

Appears inPlayByPlayEntry

PlayByPlayScoreType

4 values

The value of a basketball scoring play.

  • freeThrowA successful free throw, worth 1 point.
  • twoPointerA successful two-point field goal.
  • threePointerA successful three-point field goal.
  • otherAny other type of score.

Appears inPlayByPlayEntry

CourtZone

14 values

The area of the basketball court where an action took place.

  • underBasketDirectly beneath the basket.
  • inThePaintInside the paint (the lane) but not right at the basket.
  • insideLeftWithin the three-point arc, on the left baseline side.
  • insideRightWithin the three-point arc, on the right baseline side.
  • insideCenterWithin the three-point arc, straight in front of the basket (central mid-range).
  • insideLeftWingWithin the three-point arc, on the left wing.
  • insideRightWingWithin the three-point arc, on the right wing.
  • outsideLeftBehind the three-point arc, in the left corner.
  • outsideRightBehind the three-point arc, in the right corner.
  • outsideCenterBehind the three-point arc, at the top of the key.
  • outsideLeftWingBehind the three-point arc, on the left wing.
  • outsideRightWingBehind the three-point arc, on the right wing.
  • backcourtIn the backcourt, i.e. the other half of the floor.
  • otherSome other zone, a value the source introduced later.

Appears inPlayByPlayEntry

RankingTypeSlug

30 values

A ranking table available from DataSportsAPI; GET /v2/rankings returns the full list with names.

  • fifa-menFootball: FIFA World Ranking (men).
  • uefa-countriesFootball: UEFA country coefficients.
  • uefa-clubsFootball: UEFA club coefficients.
  • world-rugby-menRugby: World Rugby Rankings (men).
  • atpTennis: ATP singles ranking.
  • wtaTennis: WTA singles ranking.
  • atp-liveTennis: ATP live singles ranking, which shifts while tournaments are played.
  • wta-liveTennis: WTA live singles ranking, which shifts while tournaments are played.
  • utr-menTennis: UTR rating (men). Here points holds the Universal Tennis Rating value itself (e.g. 16.45) rather than ranking points.
  • utr-womenTennis: UTR rating (women). Here points holds the Universal Tennis Rating value itself (e.g. 12.97) rather than ranking points.
  • padel-menPadel: world ranking (men).
  • padel-womenPadel: world ranking (women).
  • ufc-flyweightMMA: UFC flyweight rankings.
  • ufc-bantamweightMMA: UFC bantamweight rankings.
  • ufc-featherweightMMA: UFC featherweight rankings.
  • ufc-lightweightMMA: UFC lightweight rankings.
  • ufc-welterweightMMA: UFC welterweight rankings.
  • ufc-middleweightMMA: UFC middleweight rankings.
  • ufc-light-heavyweightMMA: UFC light heavyweight rankings.
  • ufc-heavyweightMMA: UFC heavyweight rankings.
  • ufc-womens-strawweightMMA: UFC women’s strawweight rankings.
  • ufc-womens-flyweightMMA: UFC women’s flyweight rankings.
  • ufc-womens-bantamweightMMA: UFC women’s bantamweight rankings.
  • fnc-bantamweightMMA: FNC bantamweight rankings.
  • fnc-featherweightMMA: FNC featherweight rankings.
  • fnc-lightweightMMA: FNC lightweight rankings.
  • fnc-welterweightMMA: FNC welterweight rankings.
  • fnc-middleweightMMA: FNC middleweight rankings.
  • fnc-light-heavyweightMMA: FNC light heavyweight rankings.
  • fnc-heavyweightMMA: FNC heavyweight rankings.

Appears inRankingTypeInfoRankingTeamRanking

RankingEntry

3 values

What a single ranking row represents.

  • teamA national side or club; team is populated.
  • competitorOne competitor in an individual sport — a tennis player or fighter — modelled as a team object with kind individual; team is filled.
  • countryA country ranked on the results of its clubs; country and league (its top league) are populated and team is null.

Appears inRankingTypeInfo

PlayerStatisticsGroup

6 values

The set of statistics returned on a player-statistics page. Every group additionally includes appearances, minutesPlayed and the sort key.

  • summaryHeadline figures: rating, goals, assists, expected goals, pass accuracy, dribbles and tackles.
  • attackShooting and finishing: goal conversion, shots (on / off target, blocked), goals by body part and by area, penalties, set pieces, woodwork and offsides.
  • defenseDefensive work: tackles, interceptions, clearances, blocks, errors, own goals, times dribbled past, clean sheets and penalties conceded.
  • passingDistribution: big chances created, assists, passes with their accuracy by area, key passes, crosses and long balls.
  • goalkeepingGoalkeeper figures: clean sheets, saves (inside / outside the box), goals conceded by area, penalties faced and saved, high claims, punches and runs out.
  • otherEverything else: cards, duels (ground, aerial, total), minutes, fouls committed and suffered, dispossessions, possession lost, appearances and starts.

SportKind

2 values

The group of endpoints that serves a sport’s data.

RaceSessionType

7 values

The type of a race session.

  • practiceMotorsport practice session.
  • qualifyingQualifying, which sets the race’s starting grid (motorsport). It also marks a qualifying segment like Q1 that the source lists as a separate session.
  • sprintQualifyingFormula 1 sprint qualifying, which decides the sprint’s starting grid.
  • sprintSprint: a short race of its own that awards points (Formula 1, MotoGP).
  • raceThe main event: the Grand Prix / main race in motorsport, or a one-day race in cycling.
  • stageA single stage of a cycling stage race, e.g. stage 5 of the Tour de France.
  • otherAny other kind of session.

Appears inRaceSession

RaceResultState

5 values

A competitor’s status within a classification.

  • classifiedIncluded in the classification, whether lapped or not; position is filled unless the source left a gap there.
  • didNotFinishTook the start but failed to finish (retired, crashed out); has no position.
  • didNotStartWas entered but never started; has no position.
  • disqualifiedExcluded by disqualification; has no position.
  • notClassifiedLeft out of the classification for some other reason (the source flags the row as out without explanation); has no position.

Appears inTeamRaceResultRaceResult

TyreCompound

6 values

Formula 1 tyre compound.

  • softThe soft slick, "S" in the source.
  • mediumThe medium slick, "M".
  • hardThe hard slick, "H".
  • intermediateThe intermediate, used on a damp track, "I".
  • wetThe full wet tyre, "W".
  • otherAny compound letter missing from this list.

Appears inCurrentTyreTyreStintRaceLap

CyclingJersey

5 values

A jersey worn by a classification leader in a cycling stage race.

  • generalGeneral classification leader; the yellow jersey at the Tour.
  • pointsPoints classification leader; green at the Tour.
  • mountainsMountains classification leader; polka dot at the Tour.
  • youngTop young rider; white at the Tour.
  • otherAny jersey missing from this list.

Appears inCyclingStanding

StageProfile

8 values

The kind of terrain a cycling stage or one-day race covers.

  • flatFlat terrain, suited to sprinters.
  • hillyHilly terrain.
  • intermediateRolling terrain or medium mountains.
  • mountainMountainous terrain.
  • highMountainHigh mountains, typically ending with a summit finish.
  • timeTrialA time trial ridden individually.
  • teamTimeTrialA time trial ridden by teams.
  • otherAny profile missing from this list.

Appears inRaceSession

RaceWeather

7 values

Session weather, using the source’s own wording.

  • sunnySunshine.
  • hotHot conditions.
  • cloudyCloudy skies.
  • lightRainLight rainfall.
  • rainRainfall.
  • nightHeld at night; the source supplies no further weather term for it.
  • otherAny weather term missing from this list.

Appears inRaceSession

TrackCondition

4 values

State of the track / road surface in a session.

  • dryThe track / road is dry.
  • partlyWetPartly wet, either drying out or wet in some places. Available since 2026-11-09.
  • wetThe track / road is wet.
  • otherAny condition missing from this list.

Appears inRaceSession

SeriesStandingsType

2 values

Which championship a standings table covers.

  • competitorsChampionship for drivers / riders.
  • teamsChampionship for teams (constructors).

FielderRole

4 values

What a fielder contributed to a play.

  • putoutRecorded the putout by catching the ball or by tagging or forcing the runner.
  • assistHelped on the out by throwing to the fielder who recorded the putout.
  • errorWas charged with an error on the play.
  • otherAny role missing from this list.

Appears inPitchFielder

BattedBallTrajectory

5 values

The path a batted ball took.

  • groundBallA ball hit along the ground.
  • lineDriveA line drive.
  • flyBallA fly ball.
  • popupA pop-up.
  • otherAny trajectory missing from this list.

Appears inBattedBall

BattedBallHardness

4 values

The strength of contact on a batted ball.

  • softWeak, soft contact.
  • mediumModerate contact.
  • hardSolid, hard contact.
  • otherAny value missing from this list.

Appears inBattedBall

PitchEventKind

3 values

The type of a row within an at-bat.

  • pitchA pitch delivered to the batter.
  • stealAction involving a runner between pitches, such as a stolen-base attempt or a pickoff. It carries no pitch type, speed or outcome; check runners.
  • otherAny other kind of row.

Appears inPitch

PitchType

19 values

Pitch classification, following MLB Statcast.

  • fourSeamFastballFF: four-seam fastball.
  • sinkerSI: sinker, also called two-seam fastball.
  • cutterFC: cut fastball.
  • sliderSL: slider.
  • sweeperST: sweeper, a slider with extra horizontal break.
  • slurveSV: slurve.
  • curveballCU: curveball.
  • knuckleCurveKC: knuckle curve.
  • slowCurveCS: slow curve.
  • changeupCH: changeup.
  • splitterFS: split-finger fastball.
  • forkballFO: forkball.
  • screwballSC: screwball.
  • knuckleballKN: knuckleball.
  • eephusEP: eephus.
  • fastballFA: a fastball with no more specific classification.
  • pitchoutPO: pitchout.
  • intentionalBallIN: intentional ball.
  • otherAny pitch type missing from this list; pitchName holds the source’s text.

Appears inPitch

PitchOutcome

19 values

What a pitch resulted in.

  • ballA ball, including pitches in the dirt and intentional balls.
  • calledStrikeA called strike, i.e. strike looking.
  • swingingStrikeA swinging strike.
  • foulA foul ball.
  • foulTipA foul tip, caught and therefore a strike.
  • singleA single: ball put in play and the batter reaches first safely.
  • doubleA double.
  • tripleA triple.
  • homeRunA home run.
  • hitByPitchHit by pitch: the batter is awarded first base.
  • reachedOnErrorThe batter got on base because of a fielding error.
  • flyOutOut on a fly ball.
  • groundOutOut on a ground ball.
  • lineOutOut on a line drive.
  • popOutOut on a pop-up.
  • sacrificeFlyA sacrifice fly: the batter is out while a runner scores.
  • sacrificeBuntA sacrifice bunt.
  • fieldersChoiceFielder’s choice: the batter reached base while a different runner was put out (see runners).
  • otherAny outcome missing from this list; outcomeCode holds the source’s code.

Appears inPitch

HighlightProvider

3 values

The platform hosting a highlight.

  • youtubeVideo hosted on YouTube.
  • xA video embedded in a post on X (Twitter).
  • otherSome other hosting platform.

Appears inHighlight

StandingsSource

2 values

Origin of a standings table, reported in meta.source of /standings.

  • upstreamThe table exactly as our data source publishes it.
  • computedBuilt by DataSportsAPI from the season’s completed fixtures because the source does not publish this table (NBA and NHL home / away tables). It has the same columns as the source’s total table; tied teams are ordered by our own rules rather than head-to-head.

SeriesFiguresSource

2 values

Origin of the wins / podiums / polePositions / racesStarted / racesWithPoints figures in a series table, reported in meta.figuresSource of /series/{id}/standings.

  • upstreamTaken as published by our data source; null where it provides none.
  • computedDerived by DataSportsAPI from the main race of each completed championship round, since the source only publishes positions and points (MotoGP). wins counts 1st places, podiums top-3 finishes, polePositions starts from grid position 1, racesStarted the races started (for a team, races where at least one of its entries started) and racesWithPoints the races in which points were scored; a team’s figures include all its entries. Sprints are excluded. fastestLaps stays null if the races do not report it.

WsErrorCode

11 values

Codes that a WebSocket error frame can carry.

  • bad_frameThe frame is not valid JSON, does not match any known shape, or is missing a required field; message names that field (e.g. "channel: required").
  • unknown_channelThe channel name is not one we offer, or its sport slug is unknown.
  • channel_forbiddenYour plan’s tier does not include this channel.
  • unknown_leagueleague:{id} refers to a league id DataSportsAPI never issued (take ids from /v2/leagues or from a fixture’s league). The REST API returns 404 not_found for the same id.
  • unknown_fixtureThe id in fixture:{id} (or, since 2026-11-04, odds:{id}) is not a fixture DataSportsAPI issued; REST answers 404 not_found for that id. It does not count as one of your channels.
  • unknown_racerace:{id} does not point to a race: it is a season or session id, or an id DataSportsAPI never issued. /v2/races/{id} returns 404 for the same id. It does not count as one of your channels.
  • unknown_teamteam:{id} refers to a team id DataSportsAPI never issued (take ids from a fixture’s home / away or from /v2/teams). The REST API returns 404 not_found for the same id. Available since 2026-11-04.
  • not_subscribedA resync / unsubscribe targeted a channel this connection has not joined.
  • too_many_channelsThis connection has reached its maxChannels limit.
  • snapshot_failedBuilding the snapshot failed; retry with resync. For league:{id}, this also happens when the league id could not be verified at that moment, in which case subscribe again.
  • rate_limitedThis connection sent over 60 frames within 10 seconds; further frames are discarded until the window resets.

Appears inWsError

04PeriodKey

Period keys

The keys of per-period maps such as ScoreSide.periods and the values of status.period. Where a key ends in N, N counts up from 1.

periodN
Regulation period number N. What a period is depends on the sport: a half in football, rugby, handball, futsal, minifootball and bandy; a quarter in basketball, American football and water polo; a period in ice hockey and floorball; a set in tennis, volleyball, table tennis, badminton and padel; an inning in baseball; a round in combat sports; a map / game in esports; a leg / frame block in darts and snooker.
inningN
Cricket only: innings number N.
extra1
Football and futsal: the opening half of extra time.
extra2
Football and futsal: the closing half of extra time.
overtime
Every overtime period summed into one value (American football, basketball, handball, ice hockey, water polo, …). In baseball it holds the runs scored in extra innings, and only when the source provides no inning-by-inning split (period10, …).
penalties
The penalty shoot-out, which appears only as a status.period value; its score is kept in ScoreSide.penalties, not under a periods key.

05status.code

Status codes

How the numeric status.code decodes. You rarely need the number itself: phase, type and finish already carry its meaning. The labels are the generic English text; status.description adapts them to the sport.

status.type
  • notstarted
  • inprogress
  • postponed
  • canceled
  • interrupted
  • finished
  • willcontinue
  • 0notstarted

    Not started

    phase notstarted

  • 1inprogress

    1st period

    phase inprogress

  • 2inprogress

    2nd period

    phase inprogress

  • 3inprogress

    3rd period

    phase inprogress

  • 4inprogress

    4th period

    phase inprogress

  • 5inprogress

    5th period

    phase inprogress

  • 6inprogress

    1st half

    phase inprogress

  • 7inprogress

    2nd half

    phase inprogress

  • 8inprogress

    1st set

    phase inprogress

  • 9inprogress

    2nd set

    phase inprogress

  • 10inprogress

    3rd set

    phase inprogress

  • 11inprogress

    4th set

    phase inprogress

  • 12inprogress

    5th set

    phase inprogress

  • 13inprogress

    1st quarter

    phase inprogress

  • 14inprogress

    2nd quarter

    phase inprogress

  • 15inprogress

    3rd quarter

    phase inprogress

  • 16inprogress

    4th quarter

    phase inprogress

  • 20inprogress

    Started

    phase inprogress

  • 21inprogress

    1st inning

    phase inprogress

  • 22inprogress

    2nd inning

    phase inprogress

  • 23inprogress

    3rd inning

    phase inprogress

  • 24inprogress

    4th inning

    phase inprogress

  • 25inprogress

    5th inning

    phase inprogress

  • 26inprogress

    6th inning

    phase inprogress

  • 27inprogress

    7th inning

    phase inprogress

  • 28inprogress

    8th inning

    phase inprogress

  • 29inprogress

    9th inning

    phase inprogress

  • 30inprogress

    Pause

    phase break

  • 31inprogress

    Halftime

    phase break

  • 32inprogress

    Awaiting extra time

    phase break

  • 33inprogress

    Extra time halftime

    phase break

  • 34inprogress

    Awaiting penalties

    phase break

  • 40inprogress

    Overtime

    phase inprogress

  • 41inprogress

    1st extra

    phase inprogress

  • 42inprogress

    2nd extra

    phase inprogress

  • 43inprogress

    Lunch

    phase break

  • 44inprogress

    Tea break

    phase break

  • 45inprogress

    Innings break

    phase break

  • 46inprogress

    Extra innings

    phase inprogress

  • 47inprogress

    Dinner

    phase break

  • 48inprogress

    Drinks

    phase break

  • 50inprogress

    Penalties

    phase inprogress

  • 51inprogress

    Penalties

    phase inprogress

  • 52inprogress

    Shootout

    phase inprogress

  • 53inprogress

    1st round

    phase inprogress

  • 54inprogress

    2nd round

    phase inprogress

  • 55inprogress

    3rd round

    phase inprogress

  • 56inprogress

    4th round

    phase inprogress

  • 57inprogress

    5th round

    phase inprogress

  • 58inprogress

    Awaiting announcement

    phase awaitingResult

  • 60postponed

    Postponed

    phase postponed

  • 61notstarted

    Start delayed

    phase delayed

  • 70canceled

    Canceled

    phase canceled

  • 80interrupted

    Interrupted

    phase interrupted

  • 81interrupted

    Suspended

    phase suspended

  • 90canceled

    Abandoned

    phase abandoned

  • 91finished

    Walkover

    phase finished · finish walkover

  • 92finished

    Retired

    phase finished · finish retired

  • 93canceled

    Removed

    phase canceled

  • 97finished

    Home defaulted

    phase finished · finish defaulted

  • 98finished

    Away defaulted

    phase finished · finish defaulted

  • 100finished

    Ended

    phase finished · finish regular

  • 110finished

    After overtime

    phase finished · finish overtime

  • 120finished

    After penalties

    phase finished · finish penalties

  • 130finished

    After golden set

    phase finished · finish goldenSet

  • 140willcontinue

    Will continue

    phase willcontinue

  • 141willcontinue

    End of day 1

    phase willcontinue

  • 142willcontinue

    End of day 2

    phase willcontinue

  • 143willcontinue

    End of day 3

    phase willcontinue

  • 144willcontinue

    End of day 4

    phase willcontinue

  • 301inprogress

    First break

    phase break

  • 302inprogress

    Second break

    phase break

  • 303inprogress

    Third break

    phase break

  • 441inprogress

    6th set

    phase inprogress

  • 442inprogress

    7th set

    phase inprogress

  • 445inprogress

    Break

    phase break

  • 500canceled

    Not played

    phase canceled

  • 1001inprogress

    Game 1

    phase inprogress

  • 1002inprogress

    Game 2

    phase inprogress

  • 1003inprogress

    Game 3

    phase inprogress

  • 1004inprogress

    Game 4

    phase inprogress

  • 1005inprogress

    Game 5

    phase inprogress

  • 1006inprogress

    Game 6

    phase inprogress

  • 1007inprogress

    Game 7

    phase inprogress

06positionCode

Positions

The letter codes a lineup or squad player carries in positionCode, sport by sport. The broader role is in Position.

Football

4 codes

  • Ggoalkeeper
  • Ddefender
  • Mmidfielder
  • Fforward

Futsal

4 codes

  • Ggoalkeeper
  • Ddefender
  • Mmidfielder
  • Fforward

Minifootball

4 codes

  • Ggoalkeeper
  • Ddefender
  • Mmidfielder
  • Fforward

Basketball

7 codes

  • Gguard
  • Fforward
  • Ccenter
  • GFguardForward
  • FGguardForward
  • FCforwardCenter
  • CFforwardCenter

Ice Hockey

7 codes

  • Ggoalie
  • Ddefenseman
  • Ccenter
  • LleftWing
  • RrightWing
  • Fforward
  • WleftWing

Handball

8 codes

  • Ggoalkeeper
  • LWleftWing
  • RWrightWing
  • LBleftBack
  • RBrightBack
  • CBcentreBack
  • Ppivot
  • BcentreBack

American Football

27 codes

  • QBquarterback
  • RBrunningBack
  • FBrunningBack
  • WRwideReceiver
  • TEtightEnd
  • OLoffensiveLineman
  • ToffensiveTackle
  • OToffensiveTackle
  • GoffensiveGuard
  • OGoffensiveGuard
  • Ccenter
  • DTdefensiveTackle
  • DEdefensiveEnd
  • DLdefensiveLineman
  • NTdefensiveTackle
  • LBlinebacker
  • ILBlinebacker
  • OLBlinebacker
  • CBcornerback
  • SAFsafety
  • Ssafety
  • FSsafety
  • SSsafety
  • DBdefensiveBack
  • Kkicker
  • Ppunter
  • LSlongSnapper

Baseball

14 codes

  • Ppitcher
  • SPstartingPitcher
  • RPreliefPitcher
  • Ccatcher
  • 1BfirstBase
  • 2BsecondBase
  • 3BthirdBase
  • SSshortstop
  • LFleftField
  • CFcenterField
  • RFrightField
  • IFinfielder
  • OFoutfielder
  • DHdesignatedHitter

Cricket

4 codes

  • BMbatter
  • Bbowler
  • ARallRounder
  • WKwicketKeeper

Rugby

2 codes

  • Fforward
  • Bback

07StatItem.key

Statistic keys

The key of every match statistic, sport by sport: its display name, the group it is filed under, whether a higher number is the better one, and the kind that says how to read value and total.

American Football

28 keys

Statistic keys for American Football
KeyNameHigher isKind
Offense
touchdownsTouchdownsbettervalue
fieldGoalsMadeField goalsbetterratio
totalYardsTotal yardsbettervalue
turnoversTurnoversworsevalue
redZoneConversionRed zone efficiencybetterratio
timeOfPossessionTime of Possessionbettertime
firstDownsFirst downsbettervalue
penaltyFirstDownsFirst downs by penaltybettervalue
thirdDownConversionThird down efficiencybetterratio
puntsPuntsworsevalue
puntingYardsPerPuntAverage yards per puntbettervalue
yardsPerPlayAverage yards per playbettervalue
Passing
passingFirstDownsFirst downs by passingbettervalue
passingNetYardsNet yards passingbettervalue
passingYardsGross yards passingbettervalue
passingTouchdownsPassing touchdownsbettervalue
passingInterceptionsInterceptions thrownworsevalue
passingYardsPerAttemptAverage passing yards per attemptbettervalue
passingRedZoneAttemptsRed zone passing attemptsbettervalue
Rushing
rushingAttemptsRushing attemptsbettervalue
rushingYardsRushing yardsbettervalue
rushingYardsPerAttemptAverage rushing yards per attemptbettervalue
rushingFirstDownsFirst downs by rushingbettervalue
rushingRedZoneAttemptsRed zone rushing attemptsbettervalue
Other
penaltiesPenaltiesworsevalue
penaltyYardsYards penalizedworsevalue
fumblesFumblesworsevalue
fumblesLostFumbles lostworsevalue

Badminton

5 keys

Statistic keys for Badminton
KeyNameHigher isKind
Points
pointsWonPoints wonbettervalue
maxPointsInRowMax points in a rowbettervalue
matchPointsMatch pointsbettervalue
comebackToWinComeback to winbettervalue
biggestLeadBiggest leadbettervalue

Baseball

26 keys

Statistic keys for Baseball
KeyNameHigher isKind
Batting
battingRunsRunsbettervalue
battingDoublesDoublesbettervalue
battingTriplesTriplesbettervalue
battingHomeRunsHome runsbettervalue
battingStrikeOutsStrike outsworsevalue
battingBaseOnBallsBase on ballsbettervalue
battingHitsHitsbettervalue
battingAvgAVGbettervalue
battingObpOBPbettervalue
battingSlgSLGbettervalue
battingOpsOPSbettervalue
battingRbiRBIbettervalue
battingAtBatsAt batsbettervalue
battingLeftOnBaseLeft on baseworsevalue
Pitching
pitchingRunsRunsworsevalue
pitchingHomeRunsHome runsworsevalue
pitchingStrikeOutsStrike outsbettervalue
pitchingBaseOnBallsBase on ballsworsevalue
pitchingHitsHitsworsevalue
pitchingEraERAworsevalue
pitchingInningsPitchedInnings pitchedbettervalue
pitchingEarnedRunsEarned runsworsevalue
pitchingBattersFacedBatters facedbettervalue
pitchingOutsOutsbettervalue
Fielding
fieldingAssistsAssistsbettervalue
fieldingPutOutsPut outsbettervalue

Basketball

17 keys

Statistic keys for Basketball
KeyNameHigher isKind
Scoring
freeThrowsMadeFree throwsbetterratio
twoPointersMade2 pointersbetterratio
threePointersMade3 pointersbetterratio
fieldGoalsMadeField goalsbetterratio
Other
reboundsReboundsbettervalue
defensiveReboundsDefensive reboundsbettervalue
offensiveReboundsOffensive reboundsbettervalue
assistsAssistsbettervalue
turnoversTurnoversworsevalue
stealsStealsbettervalue
blocksBlocksbettervalue
foulsFoulsworsevalue
timeoutsTimeoutsbettervalue
Lead
maxPointsInRowMax points in a rowbettervalue
timeSpentInLeadTime spent in leadbettertime
leadChangesLead changesbettervalue
biggestLeadBiggest leadbettervalue

Darts

7 keys

Statistic keys for Darts
KeyNameHigher isKind
Attacking
threeDartAverageAverage 3 dartsbettervalue
thrown180Thrown 180bettervalue
thrownOver140Thrown over 140bettervalue
thrownOver100Thrown over 100bettervalue
highestCheckoutHighest checkoutbettervalue
checkoutsOver100Checkouts over 100bettervalue
checkoutsCheckouts accuracybetterratio

Football

51 keys

Statistic keys for Football
KeyNameHigher isKind
Match overview
ballPossessionBall possessionbettervalue
expectedGoalsExpected goalsbettervalue
bigChancesBig chancesbettervalue
totalShotsTotal shotsbettervalue
savesGoalkeeper savesbettervalue
cornerKicksCorner kicksbettervalue
foulsFoulsworsevalue
passesPassesbettervalue
tacklesTacklesbettervalue
freeKicksFree kicksbettervalue
yellowCardsYellow cardsworsevalue
kilometersCoveredDistance coveredbettervalue
numberOfSprintsNumber of sprintsbettervalue
redCardsRed cardsworsevalue
averageRatingAverage ratingbettervalue
Shots
shotsOnGoalShots on targetbettervalue
hitWoodworkHit woodworkworsevalue
shotsOffGoalShots off targetworsevalue
shotsBlockedBlocked shotsworsevalue
shotsInsideBoxShots inside boxbettervalue
shotsOutsideBoxShots outside boxbettervalue
expectedGoalsOnTargetExpected goals on targetbettervalue
Attack
bigChancesMissedBig chances missedworsevalue
touchesInPenaltyAreaTouches in penalty areabettervalue
fouledFinalThirdFouled in final thirdbettervalue
offsidesOffsidesworsevalue
bigChancesScoredBig chances scoredbettervalue
accurateThroughBallsThrough ballsbettervalue
Passes
accuratePassesAccurate passesbettervalue
throwInsThrow-insbettervalue
finalThirdEntriesFinal third entriesbettervalue
finalThirdPhaseStatisticFinal third phasebetterratio
accurateLongBallsLong ballsbetterratio
accurateCrossesCrossesbetterratio
Duels
duelsWonPercentageDuelsbettervalue
dispossessedDispossessedworsevalue
groundDuelsWonGround duelsbetterratio
aerialDuelsWonAerial duelsbetterratio
successfulDribblesDribblesbetterratio
Defending
tacklesWonTackles wonbetterratio
interceptionsInterceptionsbettervalue
recoveriesRecoveriesbettervalue
clearancesClearancesbettervalue
errorsLeadingToShotErrors lead to a shotworsevalue
errorsLeadingToGoalErrors lead to a goalworsevalue
Goalkeeping
diveSavesBig savesbettervalue
highClaimsHigh claimsbettervalue
punchesPunchesbettervalue
goalKicksGoal kicksbettervalue
goalsPreventedGoals preventedbettervalue
penaltySavesPenalty savesbettervalue

Handball

16 keys

Statistic keys for Handball
KeyNameHigher isKind
Goals
shootingEfficiencyShooting efficiencybetterratio
wingGoalsWing goalsbettervalue
fastBreakGoalsFastbreak goalsbetterratio
goals7m7 metersbetterratio
goals9m9m goalsbettervalue
goals6m6m goalsbettervalue
Saves
savesSavesbetterratio
Penalty
twoMinutePenalties2 min penaltyworsevalue
yellowCardsYellow cardsworsevalue
redCardsRed cardsworsevalue
Goals extra
maxGoalsInRowGoal streakbettervalue
powerPlayGoalsGoals in powerplaybettervalue
shortHandedGoalsShorthanded goalsbettervalue
Other
stealsStealsbettervalue
technicalFaultsTechnical faultsworsevalue
timeoutsTimeoutsbettervalue

Ice Hockey

32 keys

Statistic keys for Ice Hockey
KeyNameHigher isKind
Match overview
shotsOnGoalShots on goalbettervalue
penaltiesPenaltiesworsevalue
penaltyMinutesPenalty minutesworsevalue
hitsHitsbettervalue
blocksBlocked shotsbettervalue
takeawaysTakeawaysbettervalue
giveawaysGiveawaysworsevalue
powerPlayConversionPower play %betterratio
faceoffsWonFaceoffs won %betterratio
emptyNetGoalsEmpty net goalsbettervalue
savesSavesbettervalue
puckPossessionPuck possessionbettervalue
Special teams
powerPlayShotConversionPower play shot %betterratio
shortHandedShotConversionShorthanded shot %betterratio
evenStrengthShotConversionEven strength shot %betterratio
powerPlayFaceoffsWonPower play faceoffsbetterratio
shortHandedFaceoffsWonShorthanded faceoffsbetterratio
evenStrengthFaceoffsWonEven strength faceoffsbetterratio
fiveOnFourConversion5v4 conversionbetterratio
fiveOnThreeConversion5v3 conversionbetterratio
fourOnThreeConversion4v3 conversionbetterratio
Advanced
corsiPercentageCorsi %bettervalue
fenwickPercentageFenwick %bettervalue
averageShotDistanceAverage shot distancebettervalue
Shots
wristGoalsWristbetterratio
slapGoalsSlapbetterratio
backhandGoalsBackhandbetterratio
tipGoalsTipbetterratio
snapGoalsSnapbetterratio
pokeGoalsPokebetterratio
wrapAroundGoalsWrap aroundbetterratio
batGoalsBatbettervalue

MMA

46 keys

Statistic keys for MMA
KeyNameHigher isKind
General
durationSecondsStatistics time—value
Distance
distanceSecondsDistance Seconds—value
distancePercentageDistance Percent—value
Ground
groundSecondsGround Seconds—value
groundPercentageGround Percent—value
groundClinchSecondsGround Clinch Seconds—value
groundClinchPercentageGround Clinch Percent—value
groundClinchControlSecondsGround Clinch Control Secondsbettervalue
groundClinchControlPercentageGround Clinch Control Percentbettervalue
strikesGroundLandedStrikes Groundbettervalue
takedownsAttemptedTakedowns Attemptedbettervalue
takedownsSucceededTakedowns Succeededbettervalue
takedownsReceivedTakedowns Receivedworsevalue
takedownsDefendedTakedowns Defendedbettervalue
takedownsSucceededPercentageTakedown Success Ratebettervalue
takedownsDefendedPercentageTakedown Defense Ratebettervalue
transitionsSucceededTransitions Succeededbettervalue
transitionsReceivedTransitions Receivedworsevalue
submissionsAttemptedSubmissions Attemptedbettervalue
submissionsSucceededSubmissions Succeededbettervalue
submissionsReceivedSubmissions Receivedworsevalue
submissionsDefendedSubmissions Defendedbettervalue
submissionsSucceededPercentageSubmission Success Ratebettervalue
submissionsDefendedPercentageSubmission Defense Ratebettervalue
Clinch
clinchSecondsClinch Seconds—value
clinchPercentageClinch Percent—value
clinchControlSecondsClinch Control Secondsbettervalue
clinchControlPercentageClinch Control Percentbettervalue
Strikes
strikesLandedStrikesbettervalue
strikesReceivedStrikes Receivedworsevalue
strikesDistanceLandedStrikes Distancebettervalue
strikesClinchLandedStrikes Clinchbettervalue
significantStrikesLandedSignificant Strikesbettervalue
significantStrikesReceivedSignificant Strikes Receivedworsevalue
significantStrikesDistanceLandedSignificant Strikes Distancebettervalue
significantStrikesGroundLandedSignificant Strikes Groundbettervalue
significantStrikesClinchLandedSignificant Strikes Clinchbettervalue
significantStrikesDistancePercentageSignificant Strikes Distance Percentagebettervalue
significantStrikesGroundPercentageSignificant Strikes Ground Percentagebettervalue
significantStrikesHeadLandedSignificant Strikes Headbettervalue
significantStrikesBodyLandedSignificant Strikes Bodybettervalue
significantStrikesLegsLandedSignificant Strikes Legsbettervalue
significantStrikesHeadPercentageSignificant Strikes Head Percentagebettervalue
significantStrikesBodyPercentageSignificant Strikes Body Percentagebettervalue
significantStrikesLegsPercentageSignificant Strikes Legs Percentagebettervalue
knockdownsKnockdownsbettervalue

Rugby

21 keys

Statistic keys for Rugby
KeyNameHigher isKind
Scoring
triesTriesbettervalue
conversionsConversionsbettervalue
tryAssistsTry assistsbettervalue
penaltyTriesPenalty triesbettervalue
Scoring other
penaltyGoalsPenalty goalsbettervalue
dropGoalsDrop goalsbettervalue
cleanBreaksClean breaksbettervalue
carriesCarriesbettervalue
Possession
ballPossessionBall possessionbettervalue
passesPassesbettervalue
Penalty
yellowCardsYellow cardsworsevalue
redCardsRed cardsworsevalue
penaltiesConcededPenalties concededworsevalue
Other
lineoutsWonLineoutsbetterratio
scrumsWonScrumsbetterratio
tacklesTacklesbettervalue
tacklesMissedTackles missedworsevalue
turnoversTurnoversworsevalue
turnoversWonTurnovers wonbettervalue
metersRunMeters runbettervalue
offloadsOffloadsbettervalue

Table Tennis

9 keys

Statistic keys for Table Tennis
KeyNameHigher isKind
Points
pointsWonPoints wonbettervalue
maxPointsInRowMax points in a rowbettervalue
comebackToWinComeback to winbettervalue
biggestLeadBiggest leadbettervalue
servicePointsWonService points wonbetterratio
returnPointsWonReceiver points wonbetterratio
serviceErrorsService errorsworsevalue
Other
timeoutsTimeoutsbettervalue
letsNumber of letsworsevalue

Tennis

42 keys

Statistic keys for Tennis
KeyNameHigher isKind
Service
acesAcesbettervalue
doubleFaultsDouble faultsworsevalue
firstServesInFirst servebetterratio
secondServesInSecond servebetterratio
firstServePointsWonFirst serve pointsbetterratio
secondServePointsWonSecond serve pointsbetterratio
serviceGamesPlayedService games playedbettervalue
breakPointsSavedBreak points savedbetterratio
Points
pointsWonTotalbettervalue
servicePointsWonService points wonbettervalue
returnPointsWonReceiver points wonbettervalue
maxPointsInRowMax points in a rowbettervalue
Games
gamesWonTotal wonbettervalue
serviceGamesWonService games wonbettervalue
maxGamesInRowMax games in a rowbettervalue
Winners
winnersTotalbettervalue
forehandWinnersForehandbettervalue
backhandWinnersBackhandbettervalue
volleyWinnersVolleybettervalue
groundstrokeWinnersGroundstrokebettervalue
lobWinnersLobbettervalue
overheadWinnersOverheadbettervalue
dropShotWinnersDrop shotbettervalue
returnWinnersReturnbettervalue
Errors
errorsTotalworsevalue
forehandErrorsForehandworsevalue
backhandErrorsBackhandworsevalue
groundstrokeErrorsGroundstrokeworsevalue
overheadErrorsOverhead strokeworsevalue
returnErrorsReturnworsevalue
Unforced errors
unforcedErrorsTotalworsevalue
forehandUnforcedErrorsForehandworsevalue
backhandUnforcedErrorsBackhandworsevalue
volleyUnforcedErrorsVolleyworsevalue
groundstrokeUnforcedErrorsGroundstrokeworsevalue
lobUnforcedErrorsLobworsevalue
dropShotUnforcedErrorsDrop shotworsevalue
Return
firstServeReturnPointsWonFirst serve return pointsbetterratio
secondServeReturnPointsWonSecond serve return pointsbetterratio
returnGamesPlayedReturn games playedbettervalue
breakPointsConvertedBreak points convertedbettervalue
Miscellaneous
tiebreaksTiebreaksbettervalue

Volleyball

2 keys

Statistic keys for Volleyball
KeyNameHigher isKind
Service
serviceErrorsErrorsworsevalue
acesAcesbettervalue