TheRundown developer API

Live odds API with explicit freshness and delivery

Choose TheRundown for real-time REST and WebSocket on Ultra, with odds tied to the same event as scores. Request the live markets you need, verify effective delay headers, and preserve exact line and closure identity in every update.

Free: delayed pre-match main lines from three books. No credit card. Real-time REST and WebSocket require Ultra or above.

Live markets and zero-delay delivery are separate choices

In-play access means a plan can return markets during a game. Real-time delivery means those returned prices have no configured plan delay. Starter has in-play access with a 60-second delay; Pro 30 seconds; Ultra and above real-time REST and WebSocket. Free covers delayed pre-match main lines and does not include in-play odds.

Read the effective X-Data-Delay-Seconds header, record returned timestamps, and measure your own request/observation clocks. Provider sub-second claims are not an independent end-to-end benchmark. Network conditions, source update cadence and your rendering pipeline also affect what a user sees.

PlanOdds accessDelivery
FreeFive-minute-delayed pre-match main linesREST; no in-play or stream
Starter $49/mo60-second delay; eligible in-playREST
Pro $149/mo30-second delay; commercial displayREST
Ultra $399/mo and higherReal-time; eligible live marketsREST and WebSocket

Bootstrap a narrow live-capable REST snapshot

The sample requests both prematch IDs 1/2/3 and in-play IDs 41/42/43 for one sportsbook. Use an eligible paid key. Free keys do not gain in-play access by adding these parameters. An empty date or absent market is a coverage result to handle, not proof of a transport failure.

Keep the score’s event_status alongside market data so your product can distinguish scheduled, in-progress and finished games. Exact market availability varies by book, sport and event; a live score does not guarantee a quote for each requested market.

Python
import os
from datetime import datetime, timezone
import requests

day = datetime.now(timezone.utc).date().isoformat()
response = requests.get(
    f"https://therundown.io/api/v2/sports/2/events/{day}",
    headers={"X-TheRundown-Key": os.environ["THERUNDOWN_API_KEY"]},
    params={"market_ids": "1,2,3,41,42,43", "affiliate_ids": "19",
            "main_line": "true", "hide_closed": "true"},
    timeout=20,
)
response.raise_for_status()
print("Effective delay:", response.headers.get("X-Data-Delay-Seconds"))
print("Data points:", response.headers.get("X-Datapoints"))
for event in response.json().get("events", []):
    print(event["event_id"], event.get("score", {}).get("event_status"))

This is a REST bootstrap, not a WebSocket client. Check delay and usage headers before selecting an update strategy.

Move from a snapshot to a documented update strategy

On Ultra and above, implement authentication, subscriptions, messages and reconnects from the current WebSocket guide. Ultra’s published allowance is one connection and three subscriptions; higher tiers add capacity. Connection capacity is separate from request rate and billable changed price rows.

REST delta polling is also a zero-delay feature. Use it only when the key has zero-delay entitlement, the bootstrap explicitly reports X-Data-Delay-Seconds: 0, and meta.delta_last_id is a valid positive integer. A missing header or delayed snapshot must not be treated as a valid cursor bootstrap.

On delayed plans, repeat narrow snapshots at the cadence your product needs. Every successful snapshot bills its returned rows. A WebSocket changed price-row message is a data point; streaming is included in the eligible plan’s delivery features, not unmetered data.

Preserve the exact selection through closure and reopen

A price update belongs to an event, market, participant, signed line and affiliate. Merge it into that precise record. Keep alternate spread rungs distinct and retain participant identity even when outcome names repeat across markets.

Use closed_at for the current recorded closure signal and apply a later explicit empty-string reopen as open. Do not close a price solely because updated_at is old or the game has advanced. Handle the off-board sentinel and do not highlight a closed price as an actionable best quote.

After a disconnect, restore a current snapshot or supported replay state according to the delivery contract. Validate the transition on the same sources and markets before cutover. The buyer hub explains primary vendor transport/pricing differences without claiming an unmeasured universal speed advantage.

Live odds API pricing and plan delays

Published USD monthly plans start at Free, Starter $49, Pro $149 and Ultra $399. Select the feature set first, then size your included data-point volume. Free and Starter are for internal or personal use; commercial end-user display begins on Pro. Real-time odds and WebSocket begin on Ultra. Paid plans have a fixed subscription fee with included data-point volume. Choose the sports, books and markets your application needs: unrequested price rows do not consume that volume, but using fewer points does not reduce the base fee. Measure each request with X-Datapoints; requests, event objects, credits and data points are different billing units.

Monthly planUSD/monthOdds delayIncluded volumeUse and delivery
Free$05 minutes20,000/day · 200,000/monthThree books; delayed pre-match main lines. Internal or personal use.
Starter$4960 seconds25,000,000/moAdditional books, props, alternates and delayed in-play odds. Internal or personal use.
Pro$14930 seconds125,000,000/moCommercial end-user display and a 30-second odds delay.
Ultra$399Real-time500,000,000/moReal-time REST, WebSocket, futures and supported live game data.

Annual billing has different monthly equivalents. Monthly and annual plans stop at included data points by default; optional overage and weekly billing have separate terms. Super, Mega and Max add published volume and connection capacity; Enterprise is scoped by contract. Confirm effective API and stats access in response headers.

Live odds API FAQ

Which plan has real-time odds and WebSocket?
Ultra at $399/month with monthly billing and higher tiers include real-time REST and WebSocket. Starter is delayed 60 seconds and Pro 30 seconds. Free does not include in-play odds or streaming.
Does an in-play API mean zero-delay prices?
No. A plan can include in-play markets while delaying returned prices. Confirm the key’s effective X-Data-Delay-Seconds header and delivery entitlement.
Can I use a delayed snapshot as a delta cursor bootstrap?
No. The documented delta pattern requires a zero-delay key, an explicit X-Data-Delay-Seconds: 0 response and a valid positive meta.delta_last_id. Otherwise use narrow filtered snapshots.
Is live streaming unmetered?
No. Eligible plans include streaming capability and data-point volume. Changed price-row messages consume usage; connection and subscription capacity are separate limits. The fixed subscription fee still applies.

Build and compare

Choose the API scope that matches your application. Each guide below covers a different integration need.

Product and documentation sources checked October 13, 2026. Source, sport, event and market availability varies; catalog entries do not guarantee a priced line or a populated statistic.