Soccer odds API · 9 leagues · REST + WebSocket

Soccer odds API.
Nine leagues, one schema.

Moneylines with the draw, spreads, totals, alternates, halves, goal scorers, and futures from DraftKings, FanDuel, BetMGM, Pinnacle, and the other books that price soccer, across MLS, EPL, La Liga, Bundesliga, Serie A, Ligue 1, the Champions League, J1 League, and Liga MX. Pull a REST snapshot or stream every change.

Free key · 20,000 data points a day · No credit card

GET/api/v2/sports/{sport_id}/events/{date}

RequestPython 3 · requests

import os
from datetime import datetime, timezone
import requests

key = os.environ["THERUNDOWN_API_KEY"]
api = "https://therundown.io/api/v2"
headers = {"X-TheRundown-Key": key}

# Next soccer game date across MLS (10), EPL (11), Ligue 1 (12),
# Bundesliga (13), La Liga (14), Serie A (15), the Champions
# League (16), FIFA (18), the J1 League (19), the Europa League
# (33), or Liga MX (34)
dates = requests.get(
    f"{api}/sports/dates",
    params={
        "sport_ids": "11,10,14,13,15,12,16,33,34,18,19",
        "format": "epoch",
        "exclude_canceled": "true",
    },
    headers=headers,
    timeout=30,
).json()

now = datetime.now(timezone.utc).timestamp()
upcoming = [
    (sport_id, stamp)
    for sport_id, body in dates.items()
    for stamp in body.get("dates") or []
    if stamp > now
]
sport_id, stamp = min(upcoming, key=lambda row: row[1], default=("11", now))
date = datetime.fromtimestamp(stamp, timezone.utc).date().isoformat()

# Moneyline, spread, and total from DraftKings, FanDuel, and BetMGM
odds = requests.get(
    f"{api}/sports/{sport_id}/events/{date}",
    params={"market_ids": "1,2,3", "affiliate_ids": "19,22,23", "main_line": "true"},
    headers=headers,
    timeout=30,
)
print(odds.text)

Response200 · trimmed

{
  "events": [{
    "event_id": "4f53234077de5a2b00107695a1bad24a",
    "sport_id": 10,
    "event_date": "2026-10-07T00:30:00Z",
    "markets": [{
      "market_id": 1,
      "name": "moneyline",
      "participants": [{
        "id": 1799,
        "type": "TYPE_TEAM",
        "name": "Vancouver Whitecaps FC",
        "lines": [{
          "prices": {
            "19": { "price": 130, "updated_at": "2026-10-05T15:04:57Z" },
            "22": { "price": 125, "updated_at": "2026-10-02T04:04:26Z" },
            "23": { "price": 120, "updated_at": "2026-10-02T09:47:14Z" }
          }
        }]
      }]
    }]
  }]
}

Vancouver Whitecaps FC at Chicago Fire FC, October 7, 2026, trimmed to one side of one market. The full response held 1 game for 23 data points.

Free keyRuns on a Free key: pre-match prices from DraftKings, FanDuel, and BetMGM, five minutes delayed. Between seasons, the next slate can be empty until books post lines.

Markets

Every soccer market, not just the 1X2.

From the 3-way moneyline to the next goalscorer, every market comes back in the same events, markets, participants, lines, and prices shape, keyed to one event ID, across 9 leagues.

147
Soccer market IDs
18
In-game markets
20
Player markets
8
Futures competitions
Market typePlan
  • Game linesMoneyline (3-way, with the draw), spread, and total
    1 · 2 · 3Free
  • Alternate linesAlternate spreads, totals, and player lines
    omit main_lineStarter
  • Halves1st and 2nd half moneyline, spread, and total; half team totals; both teams to score; draw no bet; and halftime/fulltime
    4 · 5 · 6 · 28 · 95 · 354 · 831 · 1148Starter
  • Game propsWinning margin, correct score, double chance, draw no bet, odd/even, and more
    9 · 25 · 27 · 330 · 331 · 383 · 1103 · 1417Starter
  • Player propsShots, shots on target, and assists, full match and 1st half
    39 · 406 · 407 · 411 · 412 · 414 · 421 · 422Starter
  • ScorersFirst, last, and anytime goalscorer; 2+ and 3+ goals; to score or assist; anytime assist; to score from outside the box
    404 · 405 · 408 · 410 · 527 · 555 · 562 · 1100Starter
  • Team totalsTeam goals and team corners
    94 · 1418Starter
  • In-gameLive moneyline, spread, total, half variants, team totals, and player assists while the match is live
    41–43 · 45 · 46 · 84 · 91 · 96 · 1024–1031 · 1049 · 1391Starter
  • FuturesOutright winner for MLS, EPL, Ligue 1, Bundesliga, La Liga, Serie A, the Champions League, and the J1 League
    /sports/{id}/futuresUltra

Market IDs served on MLS, EPL, Ligue 1, Bundesliga, La Liga, Serie A, the Champions League, J1 League, and Liga MX slates from August 21 to October 11, 2026 (GET /api/v2/sports/{id}/markets/{date}). FIFA (18) and the Europa League (33) had no scheduled dates as of October 5, 2026. GET /api/v2/markets lists every definition.

Books

All 25 books. One schema.

20 sportsbooks, 3 prediction markets, and 2 exchanges in one response shape. Pick yours with affiliate_ids.

25
Books
20
Sportsbooks
3
Prediction markets
2
Exchanges
Books in the API25

Sportsbooks · 20

  • DraftKingsFree19
  • FanDuelFree23
  • BetMGMFree22
  • Pinnacle3
  • Circa Sports32
  • BookMaker7
  • BetCRIS9
  • Bovada2
  • theScore Bet24
  • Unibet21
  • HardRock28
  • Bet10533
  • Heritage Sports34
  • BetOnline6
  • SportsBetting4
  • LowVig11
  • Bodog12
  • Intertops14
  • Matchbook16
  • YouWager18

Prediction markets · 3

  • Kalshi25
  • Polymarket26
  • Polymarket US31

Exchanges · 2

  • ProphetX29
  • Novig30

Live from GET /api/v2/affiliates. DraftKings, FanDuel, BetMGM, Pinnacle, Bovada, BetOnline, BookMaker, Circa Sports, Kalshi, Polymarket, and Novig were among the books pricing soccer main lines on October 7, 2026. Coverage varies by league, game, and market.

Free vs paid

Start free. Pay when you go live.

Free · $0

Pre-match moneyline, spread, and total from DraftKings, FanDuel, and BetMGM, five minutes delayed.

Paid · from $49/mo

Every book, alternates, periods, props, live in-game odds, and history from $49 a month. Futures and WebSocket on Ultra.

Free$0/mo5-minute delay · 20,000/day · 200,000/monthPre-match game lines from DraftKings, FanDuel, and BetMGM.
Starter$49/mo60-second delay · 25,000,000/moEvery book, alternates, periods, props, and live odds. 7-day history. Internal use.
Pro$149/mo30-second delay · 125,000,000/moOpening and closing lines, 30-day history, and commercial display.
Ultra$399/moReal-time · 500,000,000/moWebSocket streaming, futures, and 90-day history.

Compare every plan →

Questions

Before you build.

Plans, markets, books, and IDs for the Soccer odds API.

Is there a free soccer odds API?
Yes. A free TheRundown key returns pre-match soccer moneylines, spreads, and totals from DraftKings, FanDuel, and BetMGM, five minutes delayed, up to 20,000 data points a day and 200,000 a month. No credit card.
Which soccer markets does the API cover?
Moneylines with the draw, spreads, and totals; alternate lines; 1st and 2nd half markets; team goals and team corners; shots and assists; goalscorer markets, from first to last; game props like winning margin and correct score; 18 in-game markets; and futures for MLS, EPL, Ligue 1, Bundesliga, La Liga, Serie A, the Champions League, and the J1 League. Free covers pre-match game lines. The rest starts on Starter ($49 a month), and futures on Ultra.
Which sportsbooks does the soccer odds API cover?
DraftKings, FanDuel, BetMGM, Pinnacle, Bovada, BetOnline, and BookMaker, plus Kalshi, Polymarket, Polymarket US, and Novig, all priced soccer main lines on October 7, 2026. Paid plans include every book in the API. Free includes three. Coverage varies by league and game.
What are the soccer sport IDs?
10 for MLS, 11 for the Premier League, 12 for Ligue 1, 13 for the Bundesliga, 14 for La Liga, 15 for Serie A, 16 for the Champions League, 18 for FIFA, 19 for the J1 League, 33 for the Europa League, and 34 for Liga MX. GET /api/v2/sports returns every sport ID.
Can I show soccer odds in my app?
Starter covers internal and personal use. Showing odds to users of a commercial product starts on Pro ($149 a month).