Probabilities Fundamentals
Every feed in the Probabilities API serves one data model: a market whose outcomes carry percentages. This page covers that model once, so the scenario pages can focus on workflow: how markets are structured, what a probability point carries, how an event's probabilities behave from pre-match to the final result, and which feeds work at event scope versus season scope.
The Market Model
Probabilities are grouped into markets named by their outcome structure: 2way for two-outcome sports and 3way where a draw is possible, plus sport-specific markets such as soccer's to_qualify (which side advances, covering extra time and penalties, so it has no draw outcome) and cricket's home_innings_runs and away_innings_runs. Each outcome pairs a name with a probability, and a market's probabilities sum to 100; the market list with definitions is on the Probabilities FAQ. A pre-game MLB event carries one 2way market:
{
"markets": [
{
"name": "2way",
"outcomes": [
{
"name": "home_team_winner",
"probability": 51.1
},
{
"name": "away_team_winner",
"probability": 48.9
}
],
"last_updated": "2026-07-20T15:09:48+00:00"
}
]
}The outcome names are structural (home_team_winner, away_team_winner), so resolve them to team names through the payload's competitors array and its qualifier field rather than parsing the outcome name. Once an event is in play its market is listed twice, a pre-match entry and a live entry (described under From Pre-Match to the Final Point below). The seasonal feeds list both entries for every event, and seasonal outright markets use a different outcome shape, with a full competitor object per outcome; both are shown on Seasonal and Outright Probabilities.
Anatomy of a Probability Point
In the Timeline feed, each revision is a point: the market with its outcomes and a last_updated timestamp. Points calculated in play add a live flag and the score at that moment; pre-match points carry neither. One point from an in-play MLB game, with the away side up 3 to 0:
{
"name": "2way",
"outcomes": [
{
"name": "home_team_winner",
"probability": 25.5
},
{
"name": "away_team_winner",
"probability": 74.5
}
],
"live": true,
"last_updated": "2026-07-19T01:39:19+00:00",
"home_score": 0,
"away_score": 3
}The score travels with every in-play point, so a probability curve annotated with scoring comes from the one feed. Fuller game state sits in the payload's top-level sport_event_status, which in play reads status: live with a match_status naming the period, and for baseball carries the count and base situation:
{
"sport_event_status": {
"status": "live",
"match_status": "5th_inning_top",
"away_score": 0,
"balls": 0,
"bases": "0,0,0",
"home_score": 1,
"live": true,
"outs": 1,
"strikes": 0
}
}The game-state fields and the match_status values vary by sport (5th_inning_top and break_top5_bottom4 in baseball, 1st_half and halftime in soccer, 1st_quarter and first_break in basketball, 2nd_period, overtime, and aet in ice hockey, where an overtime game ends with status: ended and match_status: aet); the score and status fields are common to all.
From Pre-Match to the Final Point
An event's probabilities follow one lifecycle:
- Pre-match: Sport Event Probabilities serves the current estimate, revised as game time approaches; each revision is also recorded in the Timeline as a point without a
liveflag - In play: for events covered live,
statusreadslive,match_statusnames the period, and probabilities recalculate continuously, delivered on a 15-second delay; the market is listed twice, the pre-match figure followed by the in-play figure flaggedlive: true; a single game can produce over a thousand timeline points - Decided:
statusreadsended; the final point puts 100 on the outcome that occurred (the draw, for a drawn3waymarket), both market entries show the result within a few minutes, and the full curve, pre-match points included, stays available from the Timeline
The Sport Competitions feed's live_coverage flag marks competitions where every event is covered live. Competitions without the flag can still carry live probabilities for individual events (college competitions span divisions with different coverage), so the definitive per-event signal is the live field on sport_event_status. College football illustrates the split: games involving an FBS team carry pre-match probabilities and nearly all of those are covered live, while games between FCS teams are covered case by case. The polling workflow built on this lifecycle is on Tracking Win Probabilities.
Event Scope and Season Scope
The eight feeds split into two scopes:
| Scope | Feeds | Answers |
|---|---|---|
| Event | Sport Schedule, Sport Event Probabilities, Sport Event Probabilities Timeline | Who is likely to win this game, now and over its course |
| Season | Seasonal Probabilities, Seasonal Outright Probabilities | Event probabilities across a whole season; title, division, and playoff-reach likelihoods |
The discovery feeds (Sports, Sport Competitions, Competition Seasons) supply the IDs both scopes run on; the walk is on Probabilities API Basics. Event scope is covered by Tracking Win Probabilities, season scope by Seasonal and Outright Probabilities.
Updated 1 day ago
