GUIDE

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.

6 min read

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:

BookmakerRoleBest for
Bet365Retail giantWhat the average bettor sees; user-facing displays
PinnacleSharp benchmarkClosing line value, model validation
Betfair ExchangePeer-to-peerNo-vig implied probability, fair odds
KambiOperator networkLines 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.

Start building today

Ready to Power Your Sports App?

Start your 7-day free trial. All endpoints included on every plan.

Cancel anytime
7-day free trial
Setup in 5 minutes