Every endpoint. Zero guesswork.
/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.
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"{
"events": [{
"teams": [
{ "name": "Celtics" },
{ "name": "Lakers" }
],
"markets": [{
"market_id": 1,
"name": "moneyline",
"participants":
}]
}]
}Everything you need. Nothing you don't.
20+ Data Sources
Published sportsbooks and prediction markets normalized into a single schema.
550+ Market Types
Real-Time WebSocket
Sub-second on all books.
No polling. Ever.
22 Leagues + 9 Variants
Odds History
Up to unlimited line movement history for every event, every book.
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
- Free$0/monthNo credit card required20,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 limit5 minutes delay - Starter$49/monthComplete odds data access5,000,000/modata pointsHard-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 limit60 seconds delay - Pro$149/month+EV tools & faster data25,000,000/modata pointsHard-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 limit30 seconds delay - Most PopularUltra$399/monthReal-time WebSocket delivery100,000,000/modata pointsHard-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 limitReal-time
Higher-volume plans
- Super$649/monthScaling 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 limitReal-time - Mega$999/monthSportsbook-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 limitReal-time - Max$2499/monthMaximum 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 limitReal-time - EnterpriseContact usUnlimited scale & dedicated support
- Everything in Max
- Custom data points & rate limits
- Dedicated support & SLA
Custom data pointsCustom rate limitReal-timeTalk to Sales
$ curl therundown.io/api/v2/sports?key=YOUR_KEYGet 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
Technical API Questions
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.