FIFA World Cup 2026
Eight WC2026-relevant endpoints, tournament progression probabilities, per-match predictions, the 48 qualified nations, team form, team stats, against-the-spread records, single-match predictions, and live group standings. The 2026 edition is the first 48-team World Cup: 104 matches across the US, Canada, and Mexico, running June 11 – July 19, 2026.
All endpoints below are on the standard gateway at api.bigballsdata.com and require an API key in the Authorization: Bearer … header.
On this page
Match schedule
LiveGET /v1/wc2026/matches
The full 110-match schedule (72 group-stage plus 38 knockout). This is the canonical response contract for the endpoint. data is an envelope, { total, matches }, not a bare array; the match array is data.matches and data.total equals data.matches.length (there is no pagination, filter with ?group=A-L and ?status=upcoming|live|final). The 38 knockout rows are placeholders until the group stage resolves: home_team and away_team are always objects, never null, but their name, id, flag_url, and elo_rating are null and a feeder sub-object plus a top-level bracket describe the slot (for example "Winner Group A"). Detect a placeholder with home_team.name === null (equivalently bracket !== null), and null-guard name, flag_url, and odds before you render. The bracket.round value is one of R32, R16, QF, SF, THIRD (the third-place playoff), or FINAL, read from the authoritative FIFA stage on the match rather than inferred from the kickoff date. A cold-cache recompute can take a few seconds, so set a client timeout of at least 60 seconds.
{
"data": {
"total": 110,
"matches": [
{
"match_id": "a6eeb48c-...",
"group": "A",
"scheduled_at": "2026-06-11T19:00:00.000Z",
"venue": "Estadio Azteca, Mexico City",
"status": "final",
"home_team": { "id": "bb_team_...", "name": "Mexico", "flag_url": "https://...", "elo_rating": 1812, "score": 2 },
"away_team": { "id": "bb_team_...", "name": "South Africa", "flag_url": "https://...", "elo_rating": 1690, "score": 0 },
"odds": { "home_ml": -660, "draw": 685, "away_ml": 3015 },
"bracket": null
},
{
"match_id": "0b3f1c52-...",
"group": null,
"scheduled_at": "2026-06-28T19:00:00.000Z",
"venue": "MetLife Stadium, East Rutherford",
"status": "upcoming",
"home_team": { "id": null, "name": null, "flag_url": null, "elo_rating": null, "score": null, "feeder": { "source": "group_winner", "group": "A", "description": "Winner Group A" } },
"away_team": { "id": null, "name": null, "flag_url": null, "elo_rating": null, "score": null, "feeder": { "source": "group_runner_up", "group": "B", "description": "Runner-up Group B" } },
"odds": null,
"bracket": { "round": "R32", "home_feeder": { "source": "group_winner", "group": "A", "description": "Winner Group A" }, "away_feeder": { "source": "group_runner_up", "group": "B", "description": "Runner-up Group B" } }
}
]
},
"meta": { "cached": true, "cache_age_ms": 286318 }
}Tournament progression
LiveGET /v1/formulas/wc2026/progression
Elo Monte Carlo simulation across the bracket. Returns each nation's probability of advancing out of group, reaching R16, QF, SF, final, and winning the tournament, recomputed after every result.
{
"data": [
{
"team_id": "bb_team_brazil",
"name": "Brazil",
"group": "A",
"elo": 2087.4,
"group_advance_prob": 0.91,
"r16_prob": 0.91,
"qf_prob": 0.62,
"sf_prob": 0.34,
"final_prob": 0.17,
"win_prob": 0.09
}
/* + 47 more teams, sorted DESC by win_prob */
],
"meta": { "iterations": 10000, "cached": false, "cache_age_ms": 0 }
}Match predictions
LiveSolo+GET /v1/predictions?tournament=wc2026
Per-match Elo-based win / draw / loss probabilities for all 72 group stage matches; the full knockout bracket (Round of 32 through the Final) is now in the WC2026 schedule. Includes value-bet analysis (model probability vs. market-implied probability) when bookmaker odds are loaded.
{
"data": [
{
"match_id": "bb_match_brazil_serbia",
"prediction_type": "match_result",
"home_team": "Brazil",
"away_team": "Serbia",
"home_win_probability": 0.62,
"draw_probability": 0.21,
"away_win_probability": 0.17,
"home_elo": 2087,
"away_elo": 1882,
"kickoff_utc": "2026-06-13T19:00:00.000Z",
"group": "Group A",
"value_bet": true,
"best_side": "home_win",
"elo_prob": 0.62,
"market_prob": 0.56,
"edge": 0.06
}
],
"meta": { "model": "v1_elo_form", "total": 72 }
}48 qualified teams
LiveGET /v1/teams?tournament=wc2026
Shorthand filter that returns the 48 nations qualified for WC2026 with flag URLs. Equivalent to filtering by the FIFA World Cup 2026 league ID.
{
"data": [
{
"id": "bb_team_brazil",
"name": "Brazil",
"short_name": "BRA",
"flag_url": "https://flagcdn.com/w80/br.png",
"logo_url": "..."
}
/* + 47 more */
],
"pagination": { "total": 48, "limit": 50, "offset": 0 }
}Team form
LiveGET /v1/teams/:id/form?limit=10
Last N matches for a team, opponent, scores, competition, W/D/L. Use it to build a form string ("WWDLW") or to drive head-to-head views before each WC fixture.
{
"data": [
{
"match_id": "bb_match_xyz",
"opponent": "Argentina",
"score": { "for": 2, "against": 1 },
"competition": "Copa America",
"result": "W",
"kickoff_utc": "2026-05-15T22:00:00Z"
}
/* + 9 more */
]
}Team stats
LiveGET /v1/teams/:id/stats
Aggregate stats over the season window, goals_scored, goals_conceded, clean_sheets, wins, draws, losses, form_string (WWDLW), btts_rate, over_2_5_rate. Adds the `?tournament=wc2026` filter to scope to WC qualifiers / WC matches only.
{
"data": {
"team_id": "bb_team_brazil",
"goals_scored": 24,
"goals_conceded": 8,
"clean_sheets": 6,
"wins": 9,
"draws": 3,
"losses": 1,
"form_string": "WWDLW",
"btts_rate": 0.46,
"over_2_5_rate": 0.62
}
}Team against-the-spread record
LiveEdge+GET /v1/teams/:id/ats?season=2025
Against-the-spread record for a team, total, home/away, and favored/underdog splits. Currency for handicapping UIs and pre-match cards. Returns null fields when no closing line was available for a given fixture.
{
"data": {
"team_id": "bb_team_brazil",
"season": "2025",
"ats": {
"total": { "wins": 7, "losses": 4, "pushes": 1, "pct": 0.636 },
"home": { "wins": 4, "losses": 2, "pushes": 0, "pct": 0.667 },
"away": { "wins": 3, "losses": 2, "pushes": 1, "pct": 0.600 },
"favored": { "wins": 5, "losses": 3, "pushes": 1, "pct": 0.625 },
"underdog": { "wins": 2, "losses": 1, "pushes": 0, "pct": 0.667 }
}
}
}Single-match prediction (clean alias)
LiveSolo+GET /v1/predictions/:matchId
Single (latest) Elo-based prediction for a given match ID. Clean alias for /v1/predictions/match/:id, equivalent payload, shorter URL. Use this on the match detail page when you only need one fixture's win / draw / loss probabilities and value-bet fields.
{
"data": {
"match_id": "bb_match_brazil_serbia",
"home_team": "Brazil",
"away_team": "Serbia",
"home_win_probability": 0.62,
"draw_probability": 0.21,
"away_win_probability": 0.17,
"home_elo": 2087,
"away_elo": 1882,
"value_bet": { "side": "home", "edge": 0.04 }
}
}Group standings
LiveGET /v1/formulas/wc2026/group-standings
Live group tables during the tournament, points, goals for/against, goal difference, and head-to-head tiebreakers per FIFA rules. One row per team across the 12 groups; recomputed after every group-stage result.
{
"data": [
{
"group": "A",
"team_id": "bb_team_mexico",
"team_name": "Mexico",
"played": 2,
"wins": 2,
"draws": 0,
"losses": 0,
"goals_for": 5,
"goals_against": 1,
"goal_difference": 4,
"points": 6,
"position": 1
}
/* + 47 more rows across 12 groups */
],
"meta": { "generated_at": "..." }
}Tournament odds
LiveGET /v1/odds?tournament=wc2026
Tournament-wide odds list: the freshest snapshot per (match, sportsbook, market, participant), grouped per match. tournament is required (wc2026 today). Returns an empty matches[] until books open, then self-fills. Optional date=YYYY-MM-DD and market filters.
{
"data": {
"tournament": "wc2026",
"matches": [
{
"match_id": "bb_match_mexico_south_africa",
"kickoff": "2026-06-11T19:00:00Z",
"status": "upcoming",
"home": { "id": "...", "name": "Mexico", "abbr": "MEX" },
"away": { "id": "...", "name": "South Africa", "abbr": "RSA" },
"odds": [
{ "sportsbook": "DraftKings", "market": "moneyline", "line": { "participant": "home", "price": -165 }, "fetched_at": "..." }
]
}
],
"generated_at": "..."
},
"meta": { "cached": false, "cache_age_ms": 0, "matches": 1 }
}Golden Boot leaderboard
LiveGET /v1/wc2026/golden-boot
Tournament-wide top 20 scorers, aggregated from per-match fixture player stats across the 48 qualified nations. Ranked by DENSE_RANK on goals, so players tied on goals share the same rank; the list is then ordered by goals, then assists, then fewest minutes (the FIFA tiebreaker). Only players who have scored appear. Each leader's country is the national team's full name (for example "Argentina"), not an ISO code, so you can group by country directly in picker UIs; team_id and team_name carry the same team. player_id is null when the scorer is not yet bridged to our player records. tournament_state is pre_tournament (empty leaders[]) before June 11, then in_progress, then finished; updated_at is the freshness of the underlying stats (null before any match is scored).
{
"data": {
"tournament_state": "in_progress",
"leaders": [
{
"rank": 1,
"name": "Kylian Mbappe",
"country": "France",
"team_id": "bb_team_france",
"team_name": "France",
"player_id": "bb_player_mbappe",
"goals": 5,
"assists": 1,
"minutes": 540
},
{
"rank": 1,
"name": "Julian Alvarez",
"country": "Argentina",
"team_id": "bb_team_argentina",
"team_name": "Argentina",
"player_id": null,
"goals": 5,
"assists": 0,
"minutes": 510
},
{
"rank": 2,
"name": "Vinicius Junior",
"country": "Brazil",
"team_id": "bb_team_brazil",
"team_name": "Brazil",
"player_id": "bb_player_vinicius",
"goals": 4,
"assists": 2,
"minutes": 498
}
/* + up to 17 more, top 20 by goals */
],
"updated_at": "2026-06-27T15:30:00.000Z"
},
"meta": { "cached": false, "source": "aggregator-paid" }
}Top scorers (lighter)
LiveGET /v1/wc2026/leaders
Rank, goals, assists, and games_played per player with a flat team object. Lighter sibling of golden-boot, same explicit tournament_state but without the FIFA tiebreaker sort or squad filter.
{
"data": {
"tournament_state": "pre_tournament",
"leaders": [],
"updated_at": null
},
"meta": { "source": "aggregator-paid" }
}Group advancement
LiveGET /v1/wc2026/group/:group/advancement
Per-team probability of finishing 1st, 2nd, 3rd, or 4th in one group, from a 10,000-iteration Monte Carlo over the remaining fixtures anchored on the current standings. p_advance is direct qualification (1st + 2nd); p_third_contention is the raw P(3rd). Group letter A through L.
{
"data": {
"group": "A",
"iterations": 10000,
"matches_played": 0,
"matches_remaining": 6,
"teams": [
{
"team": { "id": "...", "name": "Mexico", "elo": 1764 },
"current": { "played": 0, "points": 0, "gd": 0 },
"p_1st": 0.41,
"p_2nd": 0.27,
"p_3rd": 0.19,
"p_4th": 0.13,
"p_advance": 0.68,
"p_third_contention": 0.19,
"p_eliminated": 0.13
}
],
"as_of": "..."
},
"meta": { "cached": false, "cache_age_ms": 0 }
}Next steps
- Quickstart , first request in under five minutes
- Full endpoint reference , every public route grouped by category
- Pricing , predictions endpoint requires Solo tier or higher