NEW TheRundown is now available as an MCP server — connect your AI agent to real-time sports data
REST + WebSocket|v2 Stable

Sports data API
for builders who
ship fast.

Real-time odds across 22 leagues plus 9 season variants and 20+ sportsbooks and exchanges, including tennis (ATP & WTA). Kalshi, Polymarket, Novig, and ProphetX use the same schema as every book.

Sub-second on all books.Data freshness
WebSocketpush API
30 secto API key
Free tierno credit card
therundown-api — bash
$curl -s "http
20+Data Sources
550+Market Types
Sub-second on all books.Data freshness
20K/dayFree quota
22 + 9Leagues · variants
1M+Daily Requests

Every endpoint. Zero guesswork.

RESTful design. Predictable URLs. JSON everywhere. WebSocket when you need speed.
GET/sports/{id}/events/{date}

Filtered events and odds for a sport on a date. Keep delayed-plan snapshots narrow; zero-delay plans may use X-Delta-Last-ID with market deltas.

Data freshnesssub-second on all books.
Request
curl "https://therundown.io/api/v2/sports/4/events/$(date -u +%F)?market_ids=1,2,3&affiliate_ids=3,19,23&main_line=true&hide_closed=true" -H "X-TheRundown-Key: $RUNDOWN_KEY"
Response preview
{ "events": [{ "teams": [ { "name": "Celtics" }, { "name": "Lakers" } ], "markets": [{ "market_id": 1, "name": "moneyline", "participants": }] }] }

Everything you need. Nothing you don't.

One API for odds, scores, stats, and markets across major sports, sportsbooks, and supported prediction markets.
Coverage

20+ Data Sources

Published sportsbooks and prediction markets normalized into a single schema.

PinnacleHardRockBet365theScore BetFanDuelBetMGMDraftKingsUnibetBodogBovadaMatchbookBetOnlineLowVigSportsBettingIntertopsYouWagerKalshiPolymarketNovigProphetX
Depth

550+ Market Types

Moneylinecore market
Spreadcore market
Totalscore market
Player Propsparticipant markets
Team Totalsteam markets
Futuresoutrights
Live In-Playsupported books
Alternate Linesexpanded lines

Real-Time WebSocket

Sub-second on all books.
No polling. Ever.

Sub-second on all books.Data freshness
Global

22 Leagues + 9 Variants

NFL
NBA
MLB
NHL
NCAAF
NCAAB
UFC
EPL
Champions League
La Liga
WNBA
Cricket

Odds History

Up to unlimited line movement history for every event, every book.

BOS28312627112
LAL25292826108

Live Scores & Stats

Period-by-period scores, venue, broadcast, game clock.

$ DATE=$(date -u +%F)
$ URL="https://therundown.io/api/v2/sports/4/events/$DATE?market_ids=1,2,3&affiliate_ids=3,19,23&main_line=true&hide_closed=true"
$ curl --fail-with-body -sS -D response-headers.txt -o snapshot.json "$URL" \
  -H "X-TheRundown-Key: $RUNDOWN_KEY"
$ awk 'tolower($1)=="x-datapoints:" {print "Billed data points: " $2}' response-headers.txt
Billed data points: 21
$ jq . snapshot.json

{
  "meta": { "delta_last_id": "11929034100012" },
  "events": [{
    "event_id": "a1b2c3d4e5f6",
    "teams": [
      { "name": "Boston Celtics", "is_away": true },
      { "name": "Los Angeles Lakers", "is_away": false }
    ],
    "score": { "score_away": 112, "score_home": 108 },
    "markets": [
      { "market_id": 1, "name": "moneyline", "participants": [...] },
      { "market_id": 2, "name": "spread", "participants": [...] },
      { "market_id": 3, "name": "total", "participants": [...] }
    ]
  }]
}

For odds, one datapoint is one returned participant/outcome × line/value × affiliate price row. V2 event snapshot responses also add event, score, and live-state rows. X-Datapoints is authoritative for the billed total on billed responses. X-Datapoints-Breakdown is optional, is not currently emitted by /api/v2/markets/delta. Starter and other delayed plans should request narrow snapshots at an appropriate cadence; every successful snapshot bills its returned rows. Do not seed deltas from delayed-plan body metadata. On zero-delay plans only, store X-Delta-Last-ID and poll /api/v2/markets/delta.

API plans & pricing

Start free. Scale when you're ready. No credit card required.
  1. Free
    $0/month
    No credit card required
    20,000/daydata points
    • REST API access
    • 3 sportsbooks (BetMGM, DK, FD)
    • Pre-match odds
    • Schedules & reference data
    • No player props or alt markets
    • No live in-game odds
    • No historical data
    • 5-minute data delay
    1 req/sec rate limit·5 minutes delay
  2. Starter
    $49/month
    Complete odds data access
    5,000,000/modata points
    Hard-capped by default · optional overage $0.002/pt ($2/1k)
    • All 20+ data sources
    • All periods & markets
    • Live odds access
    • Best lines
    • 7-day odds history
    • 60-second data delay
    • No WebSocket streaming
    • No +EV calculations
    2 req/sec rate limit·60 seconds delay
  3. Pro
    $149/month
    +EV tools & faster data
    25,000,000/modata points
    Hard-capped by default · optional overage $0.001/pt ($1/1k)
    • Everything in Starter
    • Value / +EV calculations
    • Opening & closing lines
    • 30-day odds history
    • 30-second data delay
    • No WebSocket streaming
    5 req/sec rate limit·30 seconds delay
  4. Most Popular
    Ultra
    $399/month
    Real-time WebSocket delivery
    100,000,000/modata points
    Hard-capped by default · optional overage $0.0005/pt ($0.50/1k)
    • Everything in Pro
    • WebSocket real-time push
    • Real-time data
    • 90-day odds history
    • Priority support
    10 req/sec rate limit·Real-time

Higher-volume plans

Super, Mega, Max, and Enterprise plans for production-scale traders, modelers, and sportsbook-grade workloads.
  1. Super
    $649/month
    Scaling production workloads
    • Everything in Ultra
    • 6-month odds history
    • Priority support
    250,000,000/mo data points · hard cap default; optional $0.0004/pt ($0.40/1k)
    15 req/sec rate limit·Real-time
  2. Mega
    $999/month
    Sportsbook-grade volume
    • Everything in Super
    • 1-year odds history
    500,000,000/mo data points · hard cap default; optional $0.0003/pt ($0.30/1k)
    20 req/sec rate limit·Real-time
  3. Max
    $2499/month
    Maximum throughput
    • Everything in Mega
    • Unlimited odds history
    • Dedicated support
    2,500,000,000/mo data points · hard cap default; optional $0.0001/pt ($0.10/1k)
    50 req/sec rate limit·Real-time
  4. Enterprise
    Contact us
    Unlimited scale & dedicated support
    • Everything in Max
    • Custom data points & rate limits
    • Dedicated support & SLA
    Custom data points
    Custom rate limit·Real-time
    Talk to Sales
$ curl therundown.io/api/v2/sports?key=YOUR_KEY

Get your API key in 30 seconds

Free tier. No credit card. 20,000 data points/day. Start building now.

Frequently Asked API Questions

General API Questions

Sign up for the Free plan — no credit card required. You get 20,000 data points per day, access to 3 sportsbooks, and pre-match odds immediately. When you need more, upgrade to Starter ($49/mo) for all 20+ data sources and live data, or Pro ($149/mo) for a 30-second data delay. See all plans.

Technical API Questions

The recommended pattern:

1. Bootstrap once with a narrow snapshot
Call GET /api/v2/sports/{sport_id}/events/{date}?market_ids=1,2,3&affiliate_ids=3,19,23&main_line=true&hide_closed=true to load open main-line moneyline, spread, and total prices.

2. On delayed plans, poll narrow snapshots
Starter and every other delayed plan should request the narrowest snapshot that fits the use case at an appropriate cadence. Every successful snapshot bills the rows it returns. Do not seed delta polling from body meta.delta_last_id on a delayed snapshot because that cursor can be ahead of visible rows.

3. On zero-delay plans, poll market deltas
Store X-Delta-Last-ID from a zero-delay snapshot (with body meta.delta_last_id only as an older zero-delay fallback) and pass it to GET /api/v2/markets/delta?last_id=…&sport_id=4&market_ids=1,2,3&affiliate_ids=3,19,23. Store the next cursor from every response. Each returned delta is one changed participant/line/book odds row; do not repeat unconditional full snapshots on a timer.

4. Or use WebSocket on Ultra+
Connect via WebSocket at wss://therundown.io/api/v2/ws/markets?key=YOUR_KEY and receive updates that are sub-second on all books. Filter by affiliate_ids to limit to specific sources.

Use market_ids and affiliate_ids on the bootstrap and delta calls. Use main_line=true and hide_closed=true on the bootstrap, then apply each delta row's is_main_line and closed_at fields in your client.