Overview
The Soccer Live Win Probability feed provides match win, draw, and loss probability data for the two contestants in a soccer fixture. It returns pre-match predictive analytics before kick-off and live predictive analytics once the match has started.
The model predicts goal rates for each team and runs more than 100,000 simulations. The model uses team quality, opponent quality, home advantage, disciplinary events, game state, match time, goals, penalty calls, xG for and against, injury time, and stoppage time.
| Model Input |
Description |
| Team quality |
Strength signal for the contestant. |
| Opponent quality |
Strength signal for the opposing contestant. |
| Home advantage |
Adjustment for home-side advantage. |
| Yellow cards |
Discipline factor that can affect expected outcome. |
| Red cards |
Discipline factor with larger match-state impact. |
| Game state |
Current match state used during live updates. |
| Time in match |
Elapsed match time used during live prediction updates. |
| Goals |
Current scoring state. |
| Penalty calls |
Awarded or missed penalty events that can materially affect probability. |
| xG for and against |
Expected goals signal for each side. |
| Injury time and stoppage time |
Remaining-time and added-time context used in live simulations. |
Competition availability: this feed is currently available for the English Premier League (EPL), but it can be rolled out to additional competitions. Confirm availability with a Stats Perform Account Manager.
Reference article: https://www.theanalyst.com/eu/2021/11/live-win-probability/
Problem Statement & Use Cases
This API solves the business problem of estimating the likelihood of match outcomes before and during a soccer match using a predictive model that reacts to live game state and key events. It supports applications that need a machine-readable probability layer on top of fixture metadata, live scores, and event data.
| Use Case |
Description |
| Pre-match prediction models |
Display or ingest home win, away win, and draw probabilities before kick-off. |
| Live probability dashboards |
Update match-outcome probabilities during the game as goals, cards, penalties, and other events occur. |
| Broadcast and editorial graphics |
Power live win-probability visuals for match centers, articles, studio analysis, or second-screen products. |
| Event impact analysis |
Measure how key events such as red cards, goals, awarded penalties, and missed penalties changed expected outcomes. |
Compliance & Guidelines
Authentication and API Security
To comply with Stats Perform API security and best-practice requirements, refer to the Stats Perform FAQs, API Overview, and Authentication Guide.
Authentication uses the OAuth method to fetch data.
Polling Frequency
Do not exceed the rate confirmed by Stats Perform. Contact a Stats Perform representative for higher rate limits or clarification.
| Match Phase |
Polling Frequency |
| Pre-match |
Once on the morning of match day, based on the scheduled fixture date. |
| Pre-match |
Once within 10 days of the fixture start date/time. |
| During a live match |
Once per minute, or every 60 seconds, during the game. |
Request Formatting Rules
All URLs are case-sensitive. URL strings must contain the correct case, operators, and required parameters, or the API returns an error.
| Rule |
Requirement |
| Query string start |
Begin the query parameter string with ? immediately after the feed name or path parameter. |
| Parameter separator |
Separate query parameters with &. |
| Multiple values: AND |
Use & for multiple values where the API treats them as AND. |
| Multiple values: OR |
Use , only if the parameter supports OR-style multiple values. |
| NOT operator |
Use ! only if the parameter supports negation. |
| Underscore-prefixed parameters |
Include the required _ prefix for parameters such as _fmt and _clbk. |
| Placeholder braces |
Remove placeholder curly braces {} from production API calls. They are documentation examples only. |
| Case sensitivity |
Preserve exact URL, parameter, and operator case. |
| Base URL reference |
The base URL format is {protocol}://{requestDomain}/{feedResource}. |
JSONP Requirements
If _fmt=jsonp is used, it must be combined with the callback parameter _clbk.
| Constraint |
Requirement |
Reason |
| JSONP callback |
Use _fmt=jsonp together with _clbk. |
JSONP requires a callback wrapper function. |
| Fixed callback value |
Use a fixed _clbk value whenever possible. |
Random callback names can reduce cacheability and violate API best-practice logic. |
| JavaScript frameworks |
Override framework-generated random callback names, including defaults from common frameworks such as jQuery. |
Some frameworks generate random JSONP function names unless explicitly configured. |
Endpoints
Base URL
https://api.statsperform.com
Feed Resource
/sdapi/v1/soccerdata/matchlivewinprobability
Get Match Live Win Probability by Fixture UUID Path Parameter
GET /sdapi/v1/soccerdata/matchlivewinprobability/{fixtureUuid}?{queryParameters}
GET https://api.statsperform.com/sdapi/v1/soccerdata/matchlivewinprobability/{fixtureUuid}?_fmt={dataFormat}
Get Match Live Win Probability by fx Query Parameter
GET /sdapi/v1/soccerdata/matchlivewinprobability?{queryParameters}
GET https://api.statsperform.com/sdapi/v1/soccerdata/matchlivewinprobability?_fmt={dataFormat}&fx={fixtureUuid}
Usage Summary
| Usage |
Feed |
| Get pre-match and live win probability data for the competing teams for a specified match. |
/sdapi/v1/soccerdata/matchlivewinprobability/{fixtureUuid}?{queryParameters} |
Get pre-match and live win probability data by passing the fixture UUID to the fx query parameter. |
/sdapi/v1/soccerdata/matchlivewinprobability?_fmt={dataFormat}&fx={fixtureUuid} |
Query Parameters
This feed uses Global query parameters and the feed-specific parameters listed below.
The /matchlivewinprobability feed must be queried by a fixture or match UUID, either as the URL path parameter {fixtureUuid} or through the fx query parameter.
Feed-Specific Query Parameter Combinations
| Query Parameter / Path Parameter |
Description |
Example Request |
{fixtureUuid} |
Get win, draw, and probability data for a match by fixture UUID as a URL path parameter. |
GET https://api.statsperform.com/sdapi/v1/soccerdata/matchlivewinprobability/{fixtureUuid}?_fmt={dataFormat} |
fx |
Get win, draw, and probability data for the specified fixture by passing the fixture or match UUID to the fx query parameter. |
GET https://api.statsperform.com/sdapi/v1/soccerdata/matchlivewinprobability?_fmt={dataFormat}&fx={fixtureUuid} |
Parameter Definitions
| Parameter |
Location |
Description |
Accepted Values / Format |
Notes |
_fmt |
Query |
Response data format. |
{dataFormat} |
Global query parameter. |
_clbk |
Query |
JSONP callback function name. |
Fixed callback function name. |
Required when _fmt=jsonp. |
fixtureUuid |
Path |
Unique fixture or match UUID used to request one match. |
String; alphanumeric UUID |
Required when using the path-parameter endpoint. |
fx |
Query |
Unique fixture or match UUID used to request the specified fixture. |
String; alphanumeric UUID |
Alternative to using {fixtureUuid} as a path parameter. |
Output Schema
The feed response fields are documented using XML element names. JSON responses contain similar fields, but some XML-only wrapper nodes are omitted or represented differently.
If no live data is available, for example when a fixture is scheduled but not yet playing or not yet played, the feed can return an empty liveData element and omit live sub-elements. The feed updates when new information is available.
`<match
LiveWinProbability>`
| Property |
Value |
| Format |
XML only |
| Nesting |
matchLiveWinProbability |
| Description |
Required root element of fields related to match win probability predictions. |
| JSON behavior |
Not present in JSON feed response; the JSON root element is matchInfo. |
| Attribute |
Required |
Description |
Values |
xmlns:soccerdata |
Yes, XML only |
Schema reference returned for XML only. |
http://www.performgroup.com/schema/soccerdata |
`<match
Info>`
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo |
| Description |
Required root element for match information. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique fixture or match ID. |
String; alphanumeric UUID |
coverageLevel |
Yes |
Coverage level, also known as Tier, that indicates the data collection level followed by analysts and therefore the data available in feeds. |
String; numeric |
opId |
No |
Unique Opta match ID. Returned only if queried by Opta legacy ID. Empty string if the ID does not exist. |
String |
ocId |
No |
Unique Opta Core match ID. Returned only if queried by Opta Core legacy ID. Empty string if the ID does not exist. |
String |
date |
Yes |
Fixture or match date in UTC. |
Date in format YYYY-MM-DDZ |
time |
No |
Fixture or match start time in UTC. May be absent or empty until confirmed, then updated. |
String in format hh:mm:ssZ |
localDate |
Yes |
Fixture or match local date. |
Date in format YYYY-MM-DD |
localTime |
No |
Fixture or match local start time. |
String in format hh:mm:ss |
week |
No |
Week in which the match takes place. |
String |
attendanceInfoId |
No |
Attendance information ID. Example: 1 means Behind Closed Doors; 2 means Limited Audience. |
String |
attendanceInfo |
No |
Additional attendance information, such as Behind Closed Doors or Limited Audience. |
String |
numberOfPeriods |
No |
Number of periods that will be played. A regular soccer match has two periods. |
Integer |
periodLength |
No |
Duration of a period. A regular soccer period is 45 minutes. |
Integer |
overtimeLength |
No |
Overtime length if the match goes beyond regular time. |
Integer |
varEnabled |
No |
Indicates whether the fixture has VAR-related data. 0 means VAR info not collected; 1 means VAR info collected; absent means unknown. |
String; 0, 1, or attribute not present |
lastUpdated |
Yes |
UTC timestamp when the fixture information or record was last updated. |
String in format YYYY-MM-DDThh:mm:ssZ |
When attendanceInfoId or attendanceInfo is returned, the attendance node and value normally found under matchDetailsExtra are suppressed.
<description>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/description |
| Description |
Optional match description, such as contestant names. |
| Value |
String |
| Attributes |
None |
<sport>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/sport |
| Description |
Required root element for sport fields. |
| XML value |
Sport name, for example Soccer. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique sport ID. |
String; alphanumeric UUID |
name |
Yes, JSON only |
Name of the sport. |
String |
<ruleset>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/ruleset |
| Description |
Required root element for ruleset fields. |
| XML value |
Ruleset name. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique ruleset ID. |
String; alphanumeric UUID |
name |
Yes, JSON only |
Name of the ruleset. |
String |
<competition>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/competition |
| Description |
Required root element for competition fields. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique competition ID. |
String; alphanumeric UUID |
ocId |
No |
Unique Opta Core competition ID. Returned only if queried by Opta Core legacy ID. Empty string if the ID does not exist. |
String |
opId |
No |
Unique Opta competition ID. Returned only if queried by Opta legacy ID. Empty string if the ID does not exist. |
String |
name |
Yes |
Competition name. |
String |
knownName |
No |
Known name of the competition. |
String |
sponsorName |
Yes |
Sponsor name of the competition. |
String |
competitionCode |
Yes |
Short three-digit competition code. |
String |
competitionFormat |
Yes |
Competition format. |
One of: Domestic league, Domestic cup, Domestic super cup, International cup, International super cup |
<country> under <competition>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/competition/country |
| Description |
Required root element for the country in which the competition is based. |
| XML value |
Country name. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique ID of the country in which the competition is based. |
String; alphanumeric UUID |
name |
Yes, JSON only |
Country name. |
String |
`<tournament
Calendar>`
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/tournamentCalendar |
| Description |
Required root element for tournament calendar fields. |
| XML value |
Tournament calendar name. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique tournament calendar ID. |
String; alphanumeric UUID |
ocId |
No |
Unique Opta Core season ID. Returned only if queried by Opta Core legacy ID. Empty string if the ID does not exist. |
String |
opId |
No |
Unique Opta season ID. Returned only if queried by Opta legacy ID. Empty string if the ID does not exist. |
String |
startDate |
Yes |
Tournament calendar start date in UTC. |
Date in format YYYY-MM-DDZ |
endDate |
Yes |
Tournament calendar end date in UTC. |
Date in format YYYY-MM-DDZ |
name |
Yes, JSON only |
Tournament calendar name. |
String |
<stage>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/stage |
| Source nesting note |
Source text also references matches/match/matchInfo/stage. |
| Description |
Required root element for stage fields. |
| XML value |
Stage name. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique stage ID. |
String; alphanumeric UUID |
ocId |
No |
Unique Opta Core stage ID. Returned only if queried by Opta Core legacy ID. Empty string if the ID does not exist. |
String |
opId |
No |
Unique Opta stage ID. Returned only if queried by Opta legacy ID. Empty string if the ID does not exist. |
String |
formatId |
Yes |
Unique stage format ID. A team can have the same format ID across seasons but a different stage ID because stage ID is linked with stage and season. |
String; alphanumeric UUID |
startDate |
Yes |
Stage start date in UTC. |
Date in format YYYY-MM-DDZ |
endDate |
Yes |
Stage end date in UTC. |
Date in format YYYY-MM-DDZ |
name |
Yes, JSON only |
Stage name. |
String |
<series>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/series |
| Description |
Optional root element for series fields. May not always be returned. |
| XML value |
Series name. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique series ID. |
String; alphanumeric UUID |
ocId |
No |
Unique Opta Core series ID. Returned only if queried by Opta Core legacy ID. Empty string if the ID does not exist. |
String |
opId |
No |
Unique Opta series ID. Returned only if queried by Opta legacy ID. Empty string if the ID does not exist. |
String |
horizontal |
No |
Display order for fixtures and standings for groups with the same vertical value. |
String |
formatId |
Yes |
Unique ID related to the competition series format. |
String; alphanumeric UUID |
name |
Yes, JSON only |
Series name. |
String |
<contestants>
| Property |
Value |
| Format |
XML only |
| Nesting |
matchLiveWinProbability/matchInfo/contestants |
| Description |
Optional root element for contestant fields. May not always be returned. |
| JSON behavior |
Not present in JSON/JSONP feed responses; individual contestant elements are returned instead. |
| Attributes |
None |
<contestant>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/contestants/contestant |
| Description |
Optional root element for a contestant. May not be returned if the match is scheduled and contestants are not yet known; the record is updated once known. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique contestant ID. |
String; alphanumeric UUID |
ocId |
No |
Unique Opta Core contestant ID. Returned only if queried by Opta Core legacy ID. Empty string if the ID does not exist. |
String |
opId |
No |
Unique Opta contestant ID. Returned only if queried by Opta legacy ID. Empty string if the ID does not exist. |
String |
name |
Yes |
Contestant name. |
String |
shortName |
No |
Short name commonly used to refer to the contestant. |
String |
officialName |
Yes |
Official contestant name. |
String |
code |
No |
Three-character contestant code, often used on TV scoreboards. |
String |
position |
Yes |
Indicates whether the contestant is home or away. |
One of: home, away |
<country> under <contestant>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/contestants/contestant/country |
| Description |
Optional root element for the contestant country. May not always be returned. |
| XML value |
Country name. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique ID of the country the contestant is from. |
String; alphanumeric UUID |
name |
Yes, JSON only |
Country name. |
String |
<venue>
| Property |
Value |
| Nesting |
matchLiveWinProbability/matchInfo/venue |
| Description |
Optional root element for venue fields. May not always be returned. |
| XML value |
Venue name. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique venue ID. |
String; alphanumeric UUID |
neutral |
No |
Indicates whether the venue is neutral. Source states yes is neutral and no is not neutral. |
One of: no, yes |
longName |
Yes |
Long or extended venue name. |
String |
shortName |
No |
Short venue name. |
String |
latitude |
No |
Venue latitude coordinate. |
String |
longitude |
No |
Venue longitude coordinate. |
String |
name |
Yes, JSON only |
Venue name. |
String |
`<live
Data>`
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData |
| Description |
Optional root element for live data fields. |
| Attributes |
None |
If no live data is available, the feed returns an empty liveData element and omits some sub-elements. The feed updates when new information is available.
`<match
Details>`
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/matchDetails |
| Description |
Optional root element for match details. Returned only if data is available. |
| Attribute |
Required |
Description |
Values |
periodId |
Yes |
Current match period. Covers regular time only. |
1 First half; 2 Second half; 3 Extra time first half; 4 Extra time second half; 5 Penalty shootout; 10 Half time; 11 End of second half before extra time; 12 Extra time half time; 13 End of extra time before penalties; 14 Full time; 16 Pre-match |
matchStatus |
Yes |
Match status. Awarded is used for matches that do not take place or when one contestant is awarded the match with an associated result. |
One of: Fixture, Playing, Played, Cancelled, Postponed, Suspended, Awarded |
matchTime |
No |
Current minute of the match. Available only for certain competitions and during the match when matchStatus="Playing". |
Integer |
winner |
No |
Match outcome. Only shown when the match is completed and matchStatus="Played". |
One of: home, away, draw |
leg |
No |
Leg of the competition in which the match is played. |
Integer |
aggregateId |
No |
Identifier used to group and link both legs of a paired soccer match. |
String; alphanumeric UUID |
previousAggregateIds |
No |
Aggregated IDs for previous rounds of the fixture, such as previousRoundAggregateId1 or previousRoundAggregateId2. |
String |
previousMatchIds |
No |
UUID of previous match. |
String; alphanumeric UUID |
advancementAggregateId |
No |
Reference to the aggregate ID indicating which aggregate winner advances to the next round or stage in a paired soccer match series. |
String; alphanumeric UUID |
matchLengthMin |
No |
Total full minutes played, including stoppage time. Only shown when matchStatus="Played". |
Integer |
matchLengthSec |
No |
Additional seconds beyond full minutes played, including stoppage time. Only shown when matchStatus="Played". |
Integer |
contestantOfTheMatchId |
No |
UUID of Team of the Match. |
String; alphanumeric UUID |
playerOfTheMatch |
No |
Player of the Match name. |
String |
playerOfTheMatchId |
No |
UUID of Player of the Match. |
String; alphanumeric UUID |
goalkeeperOfTheMatch |
No |
Goalkeeper of the Match name. |
String |
goalkeeperOfTheMatchId |
No |
UUID of Goalkeeper of the Match. |
String; alphanumeric UUID |
<periods>
| Property |
Value |
| Format |
XML only |
| Nesting |
matchLiveWinProbability/liveData/matchDetails/periods |
| Description |
Optional root element for periods in a match. May not always be returned. |
| JSON behavior |
Not present in JSON/JSONP feed responses; individual period elements are returned instead. |
| Attributes |
None |
periods and period elements are returned only if the call includes live=yes, data is available, and the match status is Playing, Played, Suspended, Cancelled, or Postponed.
<period>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/matchDetails/periods/period |
| Description |
Optional root element for a match period. Returned only if data is available and the match status is Playing, Played, Suspended, Cancelled, or Postponed. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Match period ID. Covers regular time only. |
1 First half; 2 Second half |
start |
Yes |
Period start date and time in UTC. |
String in format YYYY-MM-DDThh:mm:ssZ |
end |
Yes |
Period end date and time in UTC. |
String in format YYYY-MM-DDThh:mm:ssZ |
lengthMin |
Yes |
Total minutes in the period, including stoppage time. |
Integer |
lengthSec |
Yes |
Additional seconds beyond total minutes in the period, including stoppage time. |
Integer |
announcedInjuryTime |
Yes |
Announced injury time in seconds. |
Integer |
<suspensions>
| Property |
Value |
| Format |
XML only |
| Nesting |
matchLiveWinProbability/liveData/matchDetails/periods/period/suspensions |
| Source nesting note |
Source text also references matches/match/liveData/matchDetails/periods/period/suspensions. |
| Description |
Optional root element for suspensions in a period of a match. May not always be returned. |
| Attributes |
None |
The source note states that period and suspension elements are returned only if the call includes live data and the match status is Playing, Played, Suspended, Cancelled, or Postponed.
<suspension>
| Property |
Value |
| Format |
XML only |
| Nesting |
matchLiveWinProbability/liveData/matchDetails/periods/period/suspensions/suspension |
| Source nesting note |
Source text also references matches/match/liveData/matchDetails/periods/period/suspensions/suspension. |
| Description |
Optional root element for a suspension in a period of a match. May not always be returned. |
| Attribute |
Required |
Description |
Values |
start |
No |
Suspension period start date and time in UTC. |
String in format YYYY-MM-DDThh:mm:ssZ |
end |
No |
Suspension period end date and time in UTC. |
String in format YYYY-MM-DDThh:mm:ssZ |
announcedInjuryTime |
Yes |
Injury time in minutes. |
Integer |
reason |
No |
Reason for game suspension. |
One of: clock affecting, early end |
<scores>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/matchDetails/scores |
| Description |
Optional root element for scores. May not always be returned. |
| Attributes |
None |
Score elements are returned only if data is available and are visible only when matchStatus is Playing, Played, Suspended, Cancelled, or Postponed.
<ht>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/matchDetails/scores/ht |
| Source nesting note |
Source text also references matches/match/liveData/matchDetails/scores/ht. |
| Description |
Optional root element for first-half scores. May not always be returned. |
| Attribute |
Required |
Description |
Values |
home |
Yes, if element is present |
Half-time score of the home team. |
Integer |
away |
Yes, if element is present |
Half-time score of the away team. |
Integer |
<ft>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/matchDetails/scores/ft |
| Description |
Optional root element for full-time, second-half scores. May not always be returned. |
| Attribute |
Required |
Description |
Values |
home |
Yes |
Full-time score of the home team. |
Integer |
away |
Yes, if element is present |
Full-time score of the away team. |
Integer |
<total>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/matchDetails/scores/total |
| Description |
Optional root element for total scores. May not always be returned. |
| Attribute |
Required |
Description |
Values |
home |
Yes, if element is present |
Total score of the home team. |
Integer |
away |
Yes, if element is present |
Total score of the away team. |
Integer |
`<pre
MatchPredictions>`
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/preMatchPredictions |
| Description |
Optional root element for pre-match predictions. For Win, separate prediction sub-elements contain probability ratings for home win, away win, and draw. |
The probability values in the child prediction elements add up to 100, so each value can be interpreted as a percentage.
| Attribute |
Required |
Description |
Values |
type |
Yes, if element is present |
Type of pre-match prediction. |
String; for example Win |
<prediction> under `<pre
MatchPredictions>`
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/preMatchPredictions/prediction |
| Description |
Optional element containing a specified pre-match prediction and probability rating. |
| Attribute |
Required |
Description |
Values |
type |
Yes, if element is present |
Prediction outcome type to which the probability applies. |
One of: Home, Away, Draw |
probability |
Yes, if element is present |
Probability rating for the specified pre-match prediction type. The value should always be rounded to one decimal place. Prediction values sum to 100 and can be read as percentages. |
String; numeric |
`<live
Predictions>`
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/livePredictions |
| Description |
Optional root element for live match predictions. For Win, separate prediction sub-elements contain probability ratings for home win, away win, and draw. |
livePredictions is returned only after the match has started, for example when matchStatus is Playing or Played. These elements update throughout the match based on key events and include the match minute and second when the latest live prediction was delivered.
The probability values in the child prediction elements add up to 100, so each value can be interpreted as a percentage.
| Attribute |
Required |
Description |
Values |
type |
Yes, if element is present |
Type of prediction. |
String; for example Win |
periodId |
Yes, if element is present |
Match period ID in which the live prediction was delivered. |
One of: 1, 2, 3, 4 |
timeMin |
Yes, if element is present |
Match minute in which the live prediction was delivered. |
Integer |
timeSec |
Yes, if element is present |
Second attributed to the match minute in which the live prediction was delivered. |
Integer |
`<overall
LivePredictions>`
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/overallLivePredictions |
| Description |
Optional root element for overall live match predictions. Covers regular time only. |
overallLivePredictions updates throughout the match based on key events and includes the match minute and second when the latest live prediction was delivered.
The probability values in the child prediction elements add up to 100, so each value can be interpreted as a percentage.
| Attribute |
Required |
Description |
Values |
type |
Yes, if element is present |
Type of prediction. |
String; for example Win |
periodId |
Yes, if element is present |
Match period ID in which the live prediction was delivered. Covers regular time only. |
One of: 1, 2 |
timeMin |
Yes, if element is present |
Match minute in which the live prediction was delivered. |
Integer |
timeSec |
Yes, if element is present |
Second attributed to the match minute in which the live prediction was delivered. |
Integer |
<prediction> under `<live
Predictions>or`
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/livePredictions/prediction or matchLiveWinProbability/liveData/overallLivePredictions/prediction |
| Description |
Optional element containing an updated live match prediction and probability rating. Updated throughout the match based on key event data. |
This prediction element is returned only after the match has started, for example when matchStatus is Playing or Played.
| Attribute |
Required |
Description |
Values |
type |
Yes, if element is present |
Updated live prediction type to which the probability applies. |
One of: Home, Away, Draw |
probability |
Yes, if element is present |
Probability rating for the updated live prediction type. The value should always be rounded to one decimal place. Prediction values sum to 100 and can be read as percentages. |
String; numeric |
<events>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/events |
| Description |
Optional element containing events that occurred during the match, including key event and qualifier detail breakdowns that can significantly affect match probability. Examples include red cards, goals, awarded penalties, and missed penalties. |
| Attributes |
None |
events and its sub-elements are returned only after the match has started, for example when matchStatus is Playing or Played. The element updates throughout the match with key event data.
<event>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/events/event |
| Description |
Optional element containing an event that occurred during the match. |
| Attribute |
Required |
Description |
Values |
id |
Yes |
Unique event ID within Opta's entire database of all events in all games. |
Integer |
eventId |
Yes |
Unique event ID within this game. |
Integer |
typeId |
Yes |
Event type ID defining the type of event that occurred. May have an associated qualifierId for more detail. Cross-reference with Event Types and Qualifier Types in the MA3 guide. |
Integer |
periodId |
Yes |
Match period in which the event occurred. |
1 First half; 2 Second half; 3 Extra time first half; 4 Extra time second half; 5 Penalty shootout; 10 Half time; 11 End of second half before extra time; 12 Extra time half time; 13 End of extra time before penalties; 14 Full time; 16 Pre-match |
timeMin |
Yes, if element is present |
Match minute in which the event occurred. |
Integer |
timeSec |
Yes, if element is present |
Second attributed to the match minute in which the event occurred. |
Integer |
contestantId |
No |
Unique team ID related to the event. |
String; alphanumeric UUID |
playerId |
No |
Unique player ID related to the event. |
String; alphanumeric UUID |
playerName |
No |
Player name related to the event. |
String |
outcome |
No |
Boolean operator. Refer to Event Types and Qualifier Types in the MA3 guide. |
Integer; 0 or 1 |
x |
No |
Pitch length coordinate. 0 is always the defensive goal line and 100 is the attacking goal line. Coordinates are displayed as if both teams are playing left to right. |
Decimal; example 73.9 |
y |
No |
Pitch width coordinate. The right-hand touch line nearest the TV camera is 0; the left-hand touch line furthest away is 100. |
Decimal; example 95.1 |
timestamp |
Yes |
UK date/time when this event was initially entered into Opta's database. |
String in format YYYY-MM-DDThh:mm:ssZ |
lastModified |
Yes |
UK date/time when this event was last modified by the data team. |
String in format YYYY-MM-DDThh:mm:ssZ |
<predictions> under <event>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/events/event/predictions |
| Description |
Optional element containing updated live predictions and probability ratings recalculated based on this event and any previous events. |
| Attribute |
Required |
Description |
Values |
type |
Yes, if element is present |
Type of prediction. |
String; for example Win |
<prediction> under <event>/<predictions>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/events/event/predictions/prediction |
| Description |
Optional element containing an updated live prediction and probability rating for the specified type. |
| Attribute |
Required |
Description |
Values |
type |
Yes, if element is present |
Updated prediction type to which the probability rating applies. |
One of: Home, Away, Draw |
probability |
Yes, if element is present |
Probability rating for the specified prediction type. The value should always be rounded to one decimal place. Prediction values sum to 100 and can be read as percentages. |
String; numeric |
<qualifier>
| Property |
Value |
| Nesting |
matchLiveWinProbability/liveData/events/event/qualifier |
| Description |
Optional set of qualifications that explain and add depth to events. May not be present for some events. |
| Attribute |
Required |
Description |
Values |
id |
Yes, if element is present |
Unique qualifier ID within Opta's entire database of all events and games. Example: 1967623354. |
Integer |
qualifierId |
Yes, if element is present |
Qualifier type ID. Use with the event typeId to interpret the event. Cross-reference with Event Types and Qualifier Types in the MA3 guide. |
Integer |
value |
No |
Value associated with the qualifier ID. |
String |