World Cup 2026 Odds API: Live Betting Odds via REST
Get live and pre-match World Cup 2026 odds from Bet365, Pinnacle, Betfair Exchange, and Kambi via REST API. 1X2, Asian handicap, BTTS, totals.
If you're building a World Cup 2026 betting product — odds comparison, arbitrage tool, prediction app, fantasy game with prizes, or a Discord bot for value alerts — you need clean odds data from real bookmakers, returned in a consistent shape.
This guide covers what's available, what each bookmaker is best for, and how to actually wire odds into a working app before the June 11 kickoff.
Which bookmakers cover the 2026 World Cup
TheStatsAPI returns World Cup odds from four bookmakers with very different characteristics:
| Bookmaker | Role | Best for |
|---|---|---|
| Bet365 | Retail giant | What the average bettor sees; user-facing displays |
| Pinnacle | Sharp benchmark | Closing line value, model validation |
| Betfair Exchange | Peer-to-peer | No-vig implied probability, fair odds |
| Kambi | Operator network | Lines used by dozens of regulated sportsbooks |
Having all four in one API is the killer feature. You can compare a Bet365 retail price against Pinnacle's sharp line and Betfair's market-implied probability in a single fetch — that's the foundation for value-detection and arbitrage tools.
What markets are returned
For every World Cup fixture, the API returns:
- 1X2 (match result: home / draw / away)
- Asian Handicap (fractional and whole goal handicaps, e.g. -0.5, +1.25)
- Over / Under Goals (totals: 1.5, 2.5, 3.5, with bookmaker-specific extras)
- Both Teams to Score (BTTS) — yes / no
- Draw No Bet (stake returned on a draw)
- Total Corners (over / under corner counts)
Market depth varies by bookmaker. Pinnacle and Bet365 tend to offer the most granular Asian handicap lines; Betfair Exchange's market depth varies with liquidity.
Pre-match opening and last-seen prices
Every odds object includes both the opening price and the last-seen price before kickoff. That matters because:
- The opening price represents the bookmaker's initial assessment
- The last-seen price (effectively the closing line) reflects all the money that's moved the market
- The closing line is the most reliable predictor of true win probability and is the gold standard for model validation
For closing line value workflows, see our CLV API page — same data, more depth on the workflow.
Quick fetch: World Cup odds for a single match
curl 'https://api.thestatsapi.com/api/football/matches/{match_id}/odds' \
-H 'Authorization: Bearer YOUR_API_KEY'
{
"match_id": "mt_010249745",
"kickoff_utc": "2026-06-11T19:00:00Z",
"bookmakers": [
{
"name": "pinnacle",
"markets": [
{
"key": "1X2",
"outcomes": [
{ "name": "Mexico", "price": 2.41, "opened_at": 2.55, "updated_at": "2026-06-11T18:55:00Z" },
{ "name": "Draw", "price": 3.20, "opened_at": 3.10, "updated_at": "2026-06-11T18:55:00Z" },
{ "name": "Cameroon", "price": 3.05, "opened_at": 2.95, "updated_at": "2026-06-11T18:55:00Z" }
]
}
]
}
// ...bet365, betfair-exchange, kambi
]
}
Same JSON shape for all four bookmakers — no special-casing in your code.
Live in-play odds
During matches, swap to the live endpoint:
curl 'https://api.thestatsapi.com/api/football/matches/{match_id}/odds/live' \
-H 'Authorization: Bearer YOUR_API_KEY'
Live odds change very fast during a World Cup match. Poll every 2-5 seconds during high-leverage moments (goals, red cards, late game state); back off to 10-30 seconds during dead periods to keep within request limits.
Worked example: detect a 2-way arbitrage
A 2-way arb exists when the sum of inverse decimal odds across two outcomes is less than 1. Here's the core logic in JavaScript:
function findArbitrage(odds) {
// odds is the response from /matches/{id}/odds
const arbs = [];
const markets = ['1X2', 'BTTS', 'over_under_2.5'];
for (const market of markets) {
const outcomesByBookmaker = odds.bookmakers
.flatMap((bk) => bk.markets
.filter((m) => m.key === market)
.flatMap((m) => m.outcomes.map((o) => ({ ...o, bookmaker: bk.name }))));
// Group by outcome name, pick the highest price for each
const best = {};
for (const o of outcomesByBookmaker) {
if (!best[o.name] || o.price > best[o.name].price) {
best[o.name] = o;
}
}
const sum = Object.values(best).reduce((s, o) => s + 1 / o.price, 0);
if (sum < 1) {
arbs.push({ market, profitMargin: (1 - sum) * 100, picks: best });
}
}
return arbs;
}
True arbs are rare and small (typically 0.1-2% margin) and they vanish in seconds. If you're new to this, our free Arbitrage Calculator walks through the math step-by-step.
Closing line value workflow
CLV is the single most useful metric for evaluating a betting model. If you're consistently beating the closing line, your model is genuinely sharp.
def closing_line_value(your_price, pinnacle_closing_price):
# Both prices in decimal odds
return (your_price / pinnacle_closing_price - 1) * 100
# Example: you bet Mexico at 2.55, Pinnacle closed at 2.41
clv = closing_line_value(2.55, 2.41) # +5.8% CLV
Track CLV per bet over a season and you'll know within ~200 bets whether your model is genuinely sharp. For more on CLV theory and Pinnacle-specific notes, see our CLV API page.
Pricing
TheStatsAPI doesn't charge extra for odds — they're included on every plan ($50/month and up). That's deliberately different from providers that charge €100+/month add-ons for premium odds feeds. For a typical World Cup product polling odds every 10 seconds during live matches, the Starter plan covers the whole tournament with room to spare.
What if I only need the headline 1X2 prices
If you're building a simple "who will win" widget without arbitrage or CLV needs, you can also use football-data.org's odds endpoint on its paid tier. The data is more limited (Bet365 only, no live odds, no Asian handicap depth) but it's the cheapest production option at €29/month if odds are all you need.
Frequently Asked Questions
Which bookmakers are covered in the World Cup odds API?
Bet365, Pinnacle, Betfair Exchange, and Kambi. All four are included on every plan, returned in the same JSON shape.
Are live in-play World Cup odds included?
Yes. The /matches/{id}/odds/live endpoint returns live odds during eligible matches. Pre-match odds are always available from /matches/{id}/odds.
What odds markets are covered?
1X2, Asian handicap, over/under goals, both teams to score, draw no bet, and total corners. Market depth varies by bookmaker — Pinnacle and Bet365 typically offer the most granular handicap and totals lines.
Are opening and closing odds included?
Yes. Each outcome includes both opened_at (the opening price) and the latest price (effectively the closing line at kickoff). This is essential for closing line value workflows.
Can I use this API for an arbitrage tool?
Yes. The unified JSON shape across all four bookmakers makes arb detection straightforward. See the worked example above, or use our free Arbitrage Calculator for one-off calculations.
How often do odds update?
Pre-match odds update every few minutes depending on market activity. Live odds during matches update within seconds. Poll every 2-5 seconds during high-leverage moments, every 10-30 seconds otherwise.
Is there a free World Cup odds API?
Not really. Free tiers from football-data.org and API-Football don't include comprehensive odds. TheStatsAPI Starter at $50/month is the cheapest plan that includes all four bookmakers with no extra add-on fees.
Ready to Power Your Sports App?
Start your 7-day free trial. All endpoints included on every plan.