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
C
E
F
P
- Partnership
- PenaltyHistory
- PenaltyKick
- Person
- Pitch
- PitchActor
- PitchFielder
- PitchRunner
- PitchSpot
- PlayByPlay
- PlayByPlayEntry
- Player
- PlayerAction
- PlayerActions
- PlayerAttributes
- PlayerCareerSeason
- PlayerFixture
- PlayerLeagueSeasons
- PlayerMatch
- PlayerOfTheSeason
- PlayerOfTheSeasonCandidate
- PlayerOfTheSeasonWinner
- PlayerRating
- PlayerRef
- PlayerStatistics
- PlayerStatisticsRow
- PlayerStatRanking
- Point
- Points
- PointSet
- PositionHistoryPoint
- PregameForm
R
S
- Scorecard
- ScorecardBatter
- ScorecardBowler
- ScorecardInnings
- ScoreSide
- ScoreSidePatch
- SearchFixture
- SearchResult
- Season
- SeasonDay
- SeasonHeatmap
- SeasonHeatPoint
- SeasonInfo
- SeriesRef
- SeriesStandingsRow
- Shot
- SourceWinProbability
- SourceWinProbabilityPoint
- SportFixtureCount
- SquadPlayer
- StandingsGroup
- StandingsRow
- StatGroup
- Statistics
- StatItem
- StatSide
- Status
- Streak
- Streaks
- Surface
T
- TeamDetail
- TeamForm
- TeamLineup
- TeamOfTheWeek
- TeamOfTheWeekPeriod
- TeamOfTheWeekPlayer
- TeamRaceDriver
- TeamRaceResult
- TeamRanking
- TeamRef
- TeamSeasonStatistics
- TeamTransfers
- TennisGame
- TennisPoint
- TennisYearStatistics
- Timeouts
- TopPerformance
- TopPerformancesCategory
- TopPlayerEntry
- TopPlayersCategory
- TopTeamEntry
- TopTeamsCategory
- Transfer
- TransferFeed
- Trophy
- TrophySeason
- TyreStint
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.methodnoContest). 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. Useservinginstead. 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
mmasport 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). Comparewinner, 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
confirmedon /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
confirmedon /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,periodandfinishgive 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
typeis 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
penaltiesinstead — 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 useovertime; baseball extra innings run fromperiod10upwards (overtimeonly if the source reports extra-innings runs as one total). When the source’s breakdown is complete the values sum tocurrent; 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 (seecurrent). 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 tocurrent, 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
playedSecondswas 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
CricketToss
2 fields
Cricket: outcome of the coin toss.
winnerSide | null- Toss winner; null if the team the source names matches neither participant.
decisionTossDecision | null- The choice the toss winner made.
Appears inFixturePlayerFixture
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
penaltiesinstead — 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
countryfor 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
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.
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;
positionkeeps 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;
positionkeeps 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
fromis 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 (
toNamethen 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
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.
Money
2 fields
A monetary value.
amountnumber- The value, expressed in units of
currency. currencystring- Currency as an ISO 4217 code, such as "EUR".
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
TeamLineup
3 fields
The lineup of a single side.
formationstring | null- Tactical formation, such as "4-2-3-1" (football).
playersLineupPlayer[]- —
missingMissingPlayer[]- —
Appears inLineups
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
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
valuecounts (aerialDuelsWon,fieldGoalsMade,accurateCrosses,firstServesIn,powerPlayConversion) and never end in…Percentage; that suffix is reserved for keys whosevalueis already a 0–100 share (duelsWonPercentage,corsiPercentage). Note thatblockscounts attempts this side blocked, whileshotsBlockedcounts 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.
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.
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
BestPlayers
3 fields
Top performers for each team.
playerOfTheMatchBestPlayer | null- The player of the match, in sports that award one.
homeBestPlayer[]- —
awayBestPlayer[]- —
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
valuemeasures. 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
AveragePositions
2 fields
Mean on-pitch positions of every player on both sides (football, covered leagues).
homeAveragePosition[]- —
awayAveragePosition[]- —
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/dartsthat 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
winnermatches 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
InningsBalls
3 fields
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;
scoredthen 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
RaceCareer
2 fields
Racing: the career history of a driver or constructor (GET /v2/teams/{id}/race-career).
totalsRaceCareerTotals | null- Aggregated career figures; null if the source has none.
seasonsRaceCareerSeason[]- One entry per season, most recent first.
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.
GrandSlamResults
2 fields
Results of a tennis player at a single Grand Slam, as returned by GET /v2/teams/{id}/grand-slams.
leagueLeagueRef | null- The Grand Slam tournament, represented as a league.
yearsGrandSlamYear[]- One entry per year, oldest first, going back as far as the source’s records.
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
seasonparameter 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
EsportsCharacter
2 fields
A champion / hero / agent that was picked or banned.
namestring- Character name ("Viktor").
slugstring | null- Slug for use in URLs.
Appears inEsportsGameSideEsportsGamePlayer
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
stateis 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).
overallbooleantruewhen the table includes all of the season’s teams (a league table);falsefor 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 | nullorderof 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).
finishedbooleantrueonce the tie is settled — a participant has been marked as winner, or our data source reports it finished.inProgressbooleantruewhile 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
fromBlockin 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.
winnerbooleantrueif 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
ordervalue 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
teamresults (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
fixtureresults (since 2026-11-04) with the key facts of the match; null otherwise. venuesince 2026-11-04Venue | null- Populated only for
venueresults (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’smostConceded/leastConceded, which rank goalkeepers by goals conceded with the most / fewest first. statisticstring- The
statisticskey this leaderboard is built on; each entry’svalueholds 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, notvalue, 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 | nulltrueif 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:
…PerMatchis the total divided by matches,…Per90is per 90 minutes,average…is a season mean,…Percentageruns 0–100,<key>Againstholds 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.
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.
topProspectbooleantrueif 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
statisticskey this leaderboard is built on; each entry’svalueholds 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, notvalue, 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:
…PerMatchis the total divided by matches,…Per90is per 90 minutes,average…is a season mean,…Percentageruns 0–100,<key>Againstholds 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:
…PerMatchis the total divided by matches,…Per90is per 90 minutes,average…is a season mean,…Percentageruns 0–100,<key>Againstholds 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).
codeis 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:
…PerMatchis the total divided by matches,…Per90is per 90 minutes,average…is a season mean,…Percentageruns 0–100,<key>Againstholds 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.methodnoContest). 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; useservinginstead. 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
mmasport 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). Comparewinner, 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-09booleantrueif 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 | nulltrueonce our data source has published lineups for the fixture, whether predicted or official (confirmedon /v2/fixtures/{id}/lineups tells you which);falseif 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 | nulltrueonce official lineups have been released (confirmedon /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.
onBenchbooleantrueif 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
RankingTypeInfo
5 fields
An entry in GET /v2/rankings describing one ranking table; use its type with GET /v2/rankings/{type}.
typeRankingTypeSlug- Identifier of an available ranking table; GET /v2/rankings lists them all with names.
namestring- Human-readable name, such as "ATP singles ranking".
sportstring- Slug of the sport, matching /v2/sports.
genderTeamGender | null- Whether the ranking is for men or women; null for rankings of countries.
entryRankingEntry- What each row of the ranking represents.
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
categoryparameter 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
codeto GET /v2/leagues ascountry.
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, …;
…Percentageruns 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
lapsif 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 | nulltrueif 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
truefor 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 | nulltrueif 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 withtype=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).
standingsbooleantrueif the league table (attack / defence ratings) could be used;falsemeans league or global averages stood in.formbooleantrueif a pre-match form guide could be used.allCompetitionsboolean | null- Model v2 only:
trueif 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:
trueif 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
currentit 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
currentit 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
playerbelongs 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
countryfor 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 | nulltrueif 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
countwhen 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
periodparameter 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
sportvalue 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.
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
seasonparameter 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:
…PerMatchis the total divided by matches,…Per90is per 90 minutes,average…is a season mean,…Percentageruns 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.
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 | nulltrueif 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
otherleaves unnamed. endsAtBatbooleantrueif 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.
hitbooleantrueif the pitch resulted in a base hit.buntbooleantrueif the batter bunted.wildPitchbooleantrueif it was a wild pitch.passedBallbooleantrueif it was a passed ball.doublePlaybooleantrueif a double play resulted.triplePlaybooleantrueif a triple play resulted.overturnedbooleantrueif 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.
outbooleantrueif 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
BattedBall
2 fields
Details of a ball hit into play.
trajectoryBattedBallTrajectory | null- Flight path of the ball.
hardnessBattedBallHardness | null- Strength of contact off the bat.
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.
mainbooleantrueif 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 whenperiodsis 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
dateis today (UTC). sportsSportFixtureCount[]- When
sportis omitted: each sport we cover that has fixtures today, ordered by fixture count, highest first. Empty whensportis given. categoriesCategoryFixtureCount[]- With
sportset: every category (country, region, tour) that has fixtures on the day, sorted by fixture count, highest first, then by name. Empty whensportis 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 | nulltruefor a pass or cross that set up a shot. Null for other action types.longBallboolean | nulltruewhen 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).
pitStopbooleantrueif the competitor pitted at the end of this lap (the new tyres appear from the next lap).retiredbooleantrueif the competitor retired during this lap, making it their final one (positionis 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:periodunless the market covers the whole match,:lineif there is a line, and:livefor in-play markets ("result", "result:half1", "totalGoals:2.5", "asianHandicap:-1.25", "winner:live"). Forothermarkets the label is added ("other:corners-1x2"), and further markets sharing a key get#2,#3. The:livesuffix 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 WebSocketoddsframes. 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 (checkname). 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.
livebooleantruefor in-play prices — once the match has started and the bookmaker is trading it live.suspendedbooleantruewhile 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
fractionalis 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,
trueif 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
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
fixtureframe); 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
lastSeqreplay.
WsSnapshot
5 fields
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
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
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
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
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
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
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
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
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
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 firststartentries, discard everything after them and appendentries. 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
startis beyond the end of your list, you are out of sync — reload GET /v2/fixtures/{id}/play-by-play. entriesPlayByPlayEntry[]- Entries from position
startonwards, oldest first, in the form GET /v2/fixtures/{id}/play-by-play returns them.
WsMomentum
7 fields
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
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
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
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
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
Acknowledges that you have left a channel.
type"unsubscribed"- —
channelstring- —
tsinteger- Server timestamp in Unix milliseconds.
WsPing
2 fields
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
The server’s answer to a { "type": "ping" } you sent.
type"pong"- —
tsinteger- Server timestamp in Unix milliseconds.
WsError
5 fields
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
B
P
S
T
Side
2 values
One of the two sides in a fixture.
homeThe side listed as home in the fixture.awayThe side listed as away in the fixture.
Appears inFixtureCricketTossFixturePatchIncidentBuildUpStepFormFixtureShotTennisGame+18 more
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 withwinner: "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 carrieswinner: "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;nameholds 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 inpositionCode.
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,descriptiongives 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.
valuevalueholds the displayed number (for "57%" it is 57, for "2.04" it is 2.04) andtotalis null.ratiovaluesuccessful attempts out oftotal("33/53 (62%)" gives 33 and 53). A display that shows only a percentage, such as "42%", is still expressed as value / total.timevalueis a number of seconds andtotalthe 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, …;detailgives the kind. Points are not listed for set sports (volleyball, table tennis, badminton); the end of each set appears as aperiodrow 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.periodnames the period just finished, andtextholds 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’speriods.injuryTimeAnnouncement of added time:addedMinuteextra minutes followingminute.varDecisionThe outcome of a video review, described bydetail;confirmedmeans the original call was upheld.inGamePenaltyA penalty kick taken during play that did not result in a goal (detailmissed). A converted penalty is recorded as agoalwith detailpenalty.shootoutPenaltyA single kick in a penalty shoot-out.shootoutSequenceis its position in the overall order (1, 2, 3, …, counting both sides) andshootoutRoundis 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, withdurationSecondsandreason.
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;sideis 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;reasontells 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 (asmissed, 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;endPositionmarks where it was received.crossA cross;endPositionmarks where it arrived.throwInA throw-in;endPositionmarks where it landed. Available since 2026-10-25.freeKickA free kick that fed into the move;endPositionmarks where it arrived. Available since 2026-11-09.carryThe player ran with the ball (ball-movement in the source), without anendPosition. 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;shootoutSequencegives the overall kick order andshootoutRoundthe 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
FormResult
3 values
A single result within a form guide.
winA win.drawA draw.lossA loss.
Appears inTeamFormFormFixtureStandingsRow
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:countof them in a row ("5").ofLastcountout of the most recentoutOfmatches ("7/8").averageA mean across recent matches, held inaverage("83" points per game);countandoutOfare 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 benonefor 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; seedismissal.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);anglestill 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;descriptionkeeps 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;dismissalgives 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
TeamGender
3 values
Tells whether a team or competitor is men’s, women’s or mixed.
maleMen’s team, or a male competitor.femaleWomen’s team, or a female competitor.mixedMixed team, as in mixed doubles.
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; seepersonfor details.pairA doubles pair of two players (badminton, beach volleyball, table tennis, tennis).
Appears inTeamDetail
Handedness
3 values
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 (seefeeandfreeTransfer).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 casefromis null.releasedLet go after the contract was terminated.waivedUS leagues: placed on waivers or released by the team;tois null.claimedPicked up off waivers by a different team.tradedUS leagues: dealt to another team in a trade.draftSelected in a draft;draftgives 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}.fixtureholds 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.venueholds 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 byround/roundName.weekRoughly one calendar week (from/to), used by competitions that have no rounds (NBA).monthOne calendar month, bounded byfrom/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 nooveralltype.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 whenperiodends; only regular time counts, not extra time or shoot-outs.winnerWho wins the match orperiod, 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 underline.totalCardsTotal cards in the match, over or underline; the bookmaker’s own rules decide how a second yellow counts.totalCornersNumber of corner kicks, over or underline.totalThe total in the sport’s own scoring unit, over or underline— 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 startslinegoals 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:lineis 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 (drawwhen 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.namecarries 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 thanline.underThe final total is lower thanline.noneNeither side — for example when nobody scores in a first-to-score market.otherAn unclassified choice;namecarries 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, fromstarttoend.tackleA tackle; successful is true when it was won.interceptionA pass cut out by the player.ballRecoveryPossession regained from a loose ball.clearanceA clearance;endshows 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;textgives the minutes.scoreChangeThe score moved, through a goal or basketball points (scoreTypeidentifies which);homeScore/awayScoreshow 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.playeris the defender who gave it away andsideis that defender’s side, so the corner went to the opposing team.freeKickWonFootball: a free kick earned;playeris the one who was fouled.freeKickLostFootball: a foul committed;playeris 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, withplayerIn/playerOut.startDelayFootball: play halted, for example for an injury or a delay.endDelayFootball: play restarted following a delay.foulBasketball: a foul;playercommitted it anddrawnBydrew it.freeThrowMissedBasketball: a free throw that did not go in.reboundBasketball: a rebound;texttells whether it was offensive or defensive.possessionChangeBasketball: a turnover; if it came from a steal,stolenBynames the player who took the ball.jumpBallBasketball: a jump-ball situation.lineupChangeBasketball: a side changed its five on the floor;textlists the names.timeoutA timeout was called.stoppageBasketball: a clock stoppage (out of bounds, …).reviewA video review;textgives the outcome (a VAR decision, in football).penaltyAwardedFootball: a penalty kick given;playeris the one fouled andsideis that player’s side.penaltyConcededFootball: a penalty kick given away;playeris the one responsible andsideis that player’s side.penaltyScoredFootball: a penalty kick converted during play. Because the source provides no score on this entry,homeScore/awayScoreare 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;textgives the kind.otherAny other kind of entry — a value the source introduced later;texthas 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). Herepointsholds the Universal Tennis Rating value itself (e.g. 16.45) rather than ranking points.utr-womenTennis: UTR rating (women). Herepointsholds 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;teamis populated.competitorOne competitor in an individual sport — a tennis player or fighter — modelled as a team object with kindindividual;teamis filled.countryA country ranked on the results of its clubs;countryandleague(its top league) are populated andteamis 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.
fixturesHead-to-head matches between two sides, served by /v2/fixtures, /v2/livescores, /v2/leagues/… .racesEvents in which a whole field competes (motorsport, cycling), served by /v2/races, /v2/series/… . Fixture endpoints return nothing for these sports.
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;positionis 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; checkrunners.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;pitchNameholds 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 (seerunners).otherAny outcome missing from this list;outcomeCodeholds 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;messagenames 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.periodvalue; its score is kept in ScoreSide.penalties, not under aperiodskey.
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.
- 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
GgoalkeeperDdefenderMmidfielderFforward
Futsal
4 codes
GgoalkeeperDdefenderMmidfielderFforward
Minifootball
4 codes
GgoalkeeperDdefenderMmidfielderFforward
Basketball
7 codes
GguardFforwardCcenterGFguardForwardFGguardForwardFCforwardCenterCFforwardCenter
Ice Hockey
7 codes
GgoalieDdefensemanCcenterLleftWingRrightWingFforwardWleftWing
Handball
8 codes
GgoalkeeperLWleftWingRWrightWingLBleftBackRBrightBackCBcentreBackPpivotBcentreBack
American Football
27 codes
QBquarterbackRBrunningBackFBrunningBackWRwideReceiverTEtightEndOLoffensiveLinemanToffensiveTackleOToffensiveTackleGoffensiveGuardOGoffensiveGuardCcenterDTdefensiveTackleDEdefensiveEndDLdefensiveLinemanNTdefensiveTackleLBlinebackerILBlinebackerOLBlinebackerCBcornerbackSAFsafetySsafetyFSsafetySSsafetyDBdefensiveBackKkickerPpunterLSlongSnapper
Baseball
14 codes
PpitcherSPstartingPitcherRPreliefPitcherCcatcher1BfirstBase2BsecondBase3BthirdBaseSSshortstopLFleftFieldCFcenterFieldRFrightFieldIFinfielderOFoutfielderDHdesignatedHitter
Cricket
4 codes
BMbatterBbowlerARallRounderWKwicketKeeper
Rugby
2 codes
FforwardBback
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
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Offense | |||
| touchdowns | Touchdowns | better | value |
| fieldGoalsMade | Field goals | better | ratio |
| totalYards | Total yards | better | value |
| turnovers | Turnovers | worse | value |
| redZoneConversion | Red zone efficiency | better | ratio |
| timeOfPossession | Time of Possession | better | time |
| firstDowns | First downs | better | value |
| penaltyFirstDowns | First downs by penalty | better | value |
| thirdDownConversion | Third down efficiency | better | ratio |
| punts | Punts | worse | value |
| puntingYardsPerPunt | Average yards per punt | better | value |
| yardsPerPlay | Average yards per play | better | value |
| Passing | |||
| passingFirstDowns | First downs by passing | better | value |
| passingNetYards | Net yards passing | better | value |
| passingYards | Gross yards passing | better | value |
| passingTouchdowns | Passing touchdowns | better | value |
| passingInterceptions | Interceptions thrown | worse | value |
| passingYardsPerAttempt | Average passing yards per attempt | better | value |
| passingRedZoneAttempts | Red zone passing attempts | better | value |
| Rushing | |||
| rushingAttempts | Rushing attempts | better | value |
| rushingYards | Rushing yards | better | value |
| rushingYardsPerAttempt | Average rushing yards per attempt | better | value |
| rushingFirstDowns | First downs by rushing | better | value |
| rushingRedZoneAttempts | Red zone rushing attempts | better | value |
| Other | |||
| penalties | Penalties | worse | value |
| penaltyYards | Yards penalized | worse | value |
| fumbles | Fumbles | worse | value |
| fumblesLost | Fumbles lost | worse | value |
Badminton
5 keys
Baseball
26 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Batting | |||
| battingRuns | Runs | better | value |
| battingDoubles | Doubles | better | value |
| battingTriples | Triples | better | value |
| battingHomeRuns | Home runs | better | value |
| battingStrikeOuts | Strike outs | worse | value |
| battingBaseOnBalls | Base on balls | better | value |
| battingHits | Hits | better | value |
| battingAvg | AVG | better | value |
| battingObp | OBP | better | value |
| battingSlg | SLG | better | value |
| battingOps | OPS | better | value |
| battingRbi | RBI | better | value |
| battingAtBats | At bats | better | value |
| battingLeftOnBase | Left on base | worse | value |
| Pitching | |||
| pitchingRuns | Runs | worse | value |
| pitchingHomeRuns | Home runs | worse | value |
| pitchingStrikeOuts | Strike outs | better | value |
| pitchingBaseOnBalls | Base on balls | worse | value |
| pitchingHits | Hits | worse | value |
| pitchingEra | ERA | worse | value |
| pitchingInningsPitched | Innings pitched | better | value |
| pitchingEarnedRuns | Earned runs | worse | value |
| pitchingBattersFaced | Batters faced | better | value |
| pitchingOuts | Outs | better | value |
| Fielding | |||
| fieldingAssists | Assists | better | value |
| fieldingPutOuts | Put outs | better | value |
Basketball
17 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Scoring | |||
| freeThrowsMade | Free throws | better | ratio |
| twoPointersMade | 2 pointers | better | ratio |
| threePointersMade | 3 pointers | better | ratio |
| fieldGoalsMade | Field goals | better | ratio |
| Other | |||
| rebounds | Rebounds | better | value |
| defensiveRebounds | Defensive rebounds | better | value |
| offensiveRebounds | Offensive rebounds | better | value |
| assists | Assists | better | value |
| turnovers | Turnovers | worse | value |
| steals | Steals | better | value |
| blocks | Blocks | better | value |
| fouls | Fouls | worse | value |
| timeouts | Timeouts | better | value |
| Lead | |||
| maxPointsInRow | Max points in a row | better | value |
| timeSpentInLead | Time spent in lead | better | time |
| leadChanges | Lead changes | better | value |
| biggestLead | Biggest lead | better | value |
Darts
7 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Attacking | |||
| threeDartAverage | Average 3 darts | better | value |
| thrown180 | Thrown 180 | better | value |
| thrownOver140 | Thrown over 140 | better | value |
| thrownOver100 | Thrown over 100 | better | value |
| highestCheckout | Highest checkout | better | value |
| checkoutsOver100 | Checkouts over 100 | better | value |
| checkouts | Checkouts accuracy | better | ratio |
Football
51 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Match overview | |||
| ballPossession | Ball possession | better | value |
| expectedGoals | Expected goals | better | value |
| bigChances | Big chances | better | value |
| totalShots | Total shots | better | value |
| saves | Goalkeeper saves | better | value |
| cornerKicks | Corner kicks | better | value |
| fouls | Fouls | worse | value |
| passes | Passes | better | value |
| tackles | Tackles | better | value |
| freeKicks | Free kicks | better | value |
| yellowCards | Yellow cards | worse | value |
| kilometersCovered | Distance covered | better | value |
| numberOfSprints | Number of sprints | better | value |
| redCards | Red cards | worse | value |
| averageRating | Average rating | better | value |
| Shots | |||
| shotsOnGoal | Shots on target | better | value |
| hitWoodwork | Hit woodwork | worse | value |
| shotsOffGoal | Shots off target | worse | value |
| shotsBlocked | Blocked shots | worse | value |
| shotsInsideBox | Shots inside box | better | value |
| shotsOutsideBox | Shots outside box | better | value |
| expectedGoalsOnTarget | Expected goals on target | better | value |
| Attack | |||
| bigChancesMissed | Big chances missed | worse | value |
| touchesInPenaltyArea | Touches in penalty area | better | value |
| fouledFinalThird | Fouled in final third | better | value |
| offsides | Offsides | worse | value |
| bigChancesScored | Big chances scored | better | value |
| accurateThroughBalls | Through balls | better | value |
| Passes | |||
| accuratePasses | Accurate passes | better | value |
| throwIns | Throw-ins | better | value |
| finalThirdEntries | Final third entries | better | value |
| finalThirdPhaseStatistic | Final third phase | better | ratio |
| accurateLongBalls | Long balls | better | ratio |
| accurateCrosses | Crosses | better | ratio |
| Duels | |||
| duelsWonPercentage | Duels | better | value |
| dispossessed | Dispossessed | worse | value |
| groundDuelsWon | Ground duels | better | ratio |
| aerialDuelsWon | Aerial duels | better | ratio |
| successfulDribbles | Dribbles | better | ratio |
| Defending | |||
| tacklesWon | Tackles won | better | ratio |
| interceptions | Interceptions | better | value |
| recoveries | Recoveries | better | value |
| clearances | Clearances | better | value |
| errorsLeadingToShot | Errors lead to a shot | worse | value |
| errorsLeadingToGoal | Errors lead to a goal | worse | value |
| Goalkeeping | |||
| diveSaves | Big saves | better | value |
| highClaims | High claims | better | value |
| punches | Punches | better | value |
| goalKicks | Goal kicks | better | value |
| goalsPrevented | Goals prevented | better | value |
| penaltySaves | Penalty saves | better | value |
Handball
16 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Goals | |||
| shootingEfficiency | Shooting efficiency | better | ratio |
| wingGoals | Wing goals | better | value |
| fastBreakGoals | Fastbreak goals | better | ratio |
| goals7m | 7 meters | better | ratio |
| goals9m | 9m goals | better | value |
| goals6m | 6m goals | better | value |
| Saves | |||
| saves | Saves | better | ratio |
| Penalty | |||
| twoMinutePenalties | 2 min penalty | worse | value |
| yellowCards | Yellow cards | worse | value |
| redCards | Red cards | worse | value |
| Goals extra | |||
| maxGoalsInRow | Goal streak | better | value |
| powerPlayGoals | Goals in powerplay | better | value |
| shortHandedGoals | Shorthanded goals | better | value |
| Other | |||
| steals | Steals | better | value |
| technicalFaults | Technical faults | worse | value |
| timeouts | Timeouts | better | value |
Ice Hockey
32 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Match overview | |||
| shotsOnGoal | Shots on goal | better | value |
| penalties | Penalties | worse | value |
| penaltyMinutes | Penalty minutes | worse | value |
| hits | Hits | better | value |
| blocks | Blocked shots | better | value |
| takeaways | Takeaways | better | value |
| giveaways | Giveaways | worse | value |
| powerPlayConversion | Power play % | better | ratio |
| faceoffsWon | Faceoffs won % | better | ratio |
| emptyNetGoals | Empty net goals | better | value |
| saves | Saves | better | value |
| puckPossession | Puck possession | better | value |
| Special teams | |||
| powerPlayShotConversion | Power play shot % | better | ratio |
| shortHandedShotConversion | Shorthanded shot % | better | ratio |
| evenStrengthShotConversion | Even strength shot % | better | ratio |
| powerPlayFaceoffsWon | Power play faceoffs | better | ratio |
| shortHandedFaceoffsWon | Shorthanded faceoffs | better | ratio |
| evenStrengthFaceoffsWon | Even strength faceoffs | better | ratio |
| fiveOnFourConversion | 5v4 conversion | better | ratio |
| fiveOnThreeConversion | 5v3 conversion | better | ratio |
| fourOnThreeConversion | 4v3 conversion | better | ratio |
| Advanced | |||
| corsiPercentage | Corsi % | better | value |
| fenwickPercentage | Fenwick % | better | value |
| averageShotDistance | Average shot distance | better | value |
| Shots | |||
| wristGoals | Wrist | better | ratio |
| slapGoals | Slap | better | ratio |
| backhandGoals | Backhand | better | ratio |
| tipGoals | Tip | better | ratio |
| snapGoals | Snap | better | ratio |
| pokeGoals | Poke | better | ratio |
| wrapAroundGoals | Wrap around | better | ratio |
| batGoals | Bat | better | value |
MMA
46 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| General | |||
| durationSeconds | Statistics time | — | value |
| Distance | |||
| distanceSeconds | Distance Seconds | — | value |
| distancePercentage | Distance Percent | — | value |
| Ground | |||
| groundSeconds | Ground Seconds | — | value |
| groundPercentage | Ground Percent | — | value |
| groundClinchSeconds | Ground Clinch Seconds | — | value |
| groundClinchPercentage | Ground Clinch Percent | — | value |
| groundClinchControlSeconds | Ground Clinch Control Seconds | better | value |
| groundClinchControlPercentage | Ground Clinch Control Percent | better | value |
| strikesGroundLanded | Strikes Ground | better | value |
| takedownsAttempted | Takedowns Attempted | better | value |
| takedownsSucceeded | Takedowns Succeeded | better | value |
| takedownsReceived | Takedowns Received | worse | value |
| takedownsDefended | Takedowns Defended | better | value |
| takedownsSucceededPercentage | Takedown Success Rate | better | value |
| takedownsDefendedPercentage | Takedown Defense Rate | better | value |
| transitionsSucceeded | Transitions Succeeded | better | value |
| transitionsReceived | Transitions Received | worse | value |
| submissionsAttempted | Submissions Attempted | better | value |
| submissionsSucceeded | Submissions Succeeded | better | value |
| submissionsReceived | Submissions Received | worse | value |
| submissionsDefended | Submissions Defended | better | value |
| submissionsSucceededPercentage | Submission Success Rate | better | value |
| submissionsDefendedPercentage | Submission Defense Rate | better | value |
| Clinch | |||
| clinchSeconds | Clinch Seconds | — | value |
| clinchPercentage | Clinch Percent | — | value |
| clinchControlSeconds | Clinch Control Seconds | better | value |
| clinchControlPercentage | Clinch Control Percent | better | value |
| Strikes | |||
| strikesLanded | Strikes | better | value |
| strikesReceived | Strikes Received | worse | value |
| strikesDistanceLanded | Strikes Distance | better | value |
| strikesClinchLanded | Strikes Clinch | better | value |
| significantStrikesLanded | Significant Strikes | better | value |
| significantStrikesReceived | Significant Strikes Received | worse | value |
| significantStrikesDistanceLanded | Significant Strikes Distance | better | value |
| significantStrikesGroundLanded | Significant Strikes Ground | better | value |
| significantStrikesClinchLanded | Significant Strikes Clinch | better | value |
| significantStrikesDistancePercentage | Significant Strikes Distance Percentage | better | value |
| significantStrikesGroundPercentage | Significant Strikes Ground Percentage | better | value |
| significantStrikesHeadLanded | Significant Strikes Head | better | value |
| significantStrikesBodyLanded | Significant Strikes Body | better | value |
| significantStrikesLegsLanded | Significant Strikes Legs | better | value |
| significantStrikesHeadPercentage | Significant Strikes Head Percentage | better | value |
| significantStrikesBodyPercentage | Significant Strikes Body Percentage | better | value |
| significantStrikesLegsPercentage | Significant Strikes Legs Percentage | better | value |
| knockdowns | Knockdowns | better | value |
Rugby
21 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Scoring | |||
| tries | Tries | better | value |
| conversions | Conversions | better | value |
| tryAssists | Try assists | better | value |
| penaltyTries | Penalty tries | better | value |
| Scoring other | |||
| penaltyGoals | Penalty goals | better | value |
| dropGoals | Drop goals | better | value |
| cleanBreaks | Clean breaks | better | value |
| carries | Carries | better | value |
| Possession | |||
| ballPossession | Ball possession | better | value |
| passes | Passes | better | value |
| Penalty | |||
| yellowCards | Yellow cards | worse | value |
| redCards | Red cards | worse | value |
| penaltiesConceded | Penalties conceded | worse | value |
| Other | |||
| lineoutsWon | Lineouts | better | ratio |
| scrumsWon | Scrums | better | ratio |
| tackles | Tackles | better | value |
| tacklesMissed | Tackles missed | worse | value |
| turnovers | Turnovers | worse | value |
| turnoversWon | Turnovers won | better | value |
| metersRun | Meters run | better | value |
| offloads | Offloads | better | value |
Table Tennis
9 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Points | |||
| pointsWon | Points won | better | value |
| maxPointsInRow | Max points in a row | better | value |
| comebackToWin | Comeback to win | better | value |
| biggestLead | Biggest lead | better | value |
| servicePointsWon | Service points won | better | ratio |
| returnPointsWon | Receiver points won | better | ratio |
| serviceErrors | Service errors | worse | value |
| Other | |||
| timeouts | Timeouts | better | value |
| lets | Number of lets | worse | value |
Tennis
42 keys
| Key | Name | Higher is | Kind |
|---|---|---|---|
| Service | |||
| aces | Aces | better | value |
| doubleFaults | Double faults | worse | value |
| firstServesIn | First serve | better | ratio |
| secondServesIn | Second serve | better | ratio |
| firstServePointsWon | First serve points | better | ratio |
| secondServePointsWon | Second serve points | better | ratio |
| serviceGamesPlayed | Service games played | better | value |
| breakPointsSaved | Break points saved | better | ratio |
| Points | |||
| pointsWon | Total | better | value |
| servicePointsWon | Service points won | better | value |
| returnPointsWon | Receiver points won | better | value |
| maxPointsInRow | Max points in a row | better | value |
| Games | |||
| gamesWon | Total won | better | value |
| serviceGamesWon | Service games won | better | value |
| maxGamesInRow | Max games in a row | better | value |
| Winners | |||
| winners | Total | better | value |
| forehandWinners | Forehand | better | value |
| backhandWinners | Backhand | better | value |
| volleyWinners | Volley | better | value |
| groundstrokeWinners | Groundstroke | better | value |
| lobWinners | Lob | better | value |
| overheadWinners | Overhead | better | value |
| dropShotWinners | Drop shot | better | value |
| returnWinners | Return | better | value |
| Errors | |||
| errors | Total | worse | value |
| forehandErrors | Forehand | worse | value |
| backhandErrors | Backhand | worse | value |
| groundstrokeErrors | Groundstroke | worse | value |
| overheadErrors | Overhead stroke | worse | value |
| returnErrors | Return | worse | value |
| Unforced errors | |||
| unforcedErrors | Total | worse | value |
| forehandUnforcedErrors | Forehand | worse | value |
| backhandUnforcedErrors | Backhand | worse | value |
| volleyUnforcedErrors | Volley | worse | value |
| groundstrokeUnforcedErrors | Groundstroke | worse | value |
| lobUnforcedErrors | Lob | worse | value |
| dropShotUnforcedErrors | Drop shot | worse | value |
| Return | |||
| firstServeReturnPointsWon | First serve return points | better | ratio |
| secondServeReturnPointsWon | Second serve return points | better | ratio |
| returnGamesPlayed | Return games played | better | value |
| breakPointsConverted | Break points converted | better | value |
| Miscellaneous | |||
| tiebreaks | Tiebreaks | better | value |