Home/Live Odds API

Live Sports Odds API

Last updated 2026-10-30

Betting Data API returns live and pre-match odds for upcoming and in-play games through one REST endpoint, GET /odds/. Prices for the top US leagues (NFL, NBA, MLB, NHL) refresh as often as every 30 seconds, and each bookmaker price carries its own updated_at timestamp so you can tell exactly how fresh it is.

How live odds work

Send GET /odds/?sport_key=... with your key in the x-api-key header. The response lists every upcoming and in-play game for that league with each sportsbook's current prices. Finished games drop off the live response; use historical odds for anything that has already been played.

curl -H "x-api-key: YOUR_API_KEY" \
  "https://api.bettingdataapi.com/odds/?sport_key=basketball_nba&markets=h2h,spreads,totals"

Delivery is REST polling: call the endpoint on your own schedule. There is no streaming socket and no standalone live-scores endpoint.

Refresh intervals

League groupTypical refresh
NFL, NBA, MLB, NHLabout every 30 seconds
MLS, EPL, La Liga, Bundesliga, Serie A, Ligue 1, tennis, UFC60 to 120 seconds
Thinner-coverage leagues (for example Eredivisie, EFL Championship)about every 300 seconds
Player props (Business plan)about every 5 minutes

Poll no faster than the refresh interval of the league you care about. Faster polling returns the same prices and uses quota. Every response includes X-RateLimit-Remaining so you can pace yourself; see rate limits.

Filters that keep responses small

ParameterWhat it does
marketsAny of h2h, spreads, totals (all three by default).
regionsAny of us, uk, eu, au.
bookmakersComma-separated bookmaker keys such as draftkings, fanduel, pinnacle. An unknown key returns 400 naming it.
event_idOne game only.
commenceTimeFrom / commenceTimeToOnly games starting inside a window (ISO 8601 UTC), for example today's slate.
oddsFormatamerican (default) or decimal.

Best available line per outcome

GET /best-lines/?sport_key=... returns the single best price for each outcome across the books you can access, which is the shortest path to a line-shopping or odds-comparison feature.

What each plan includes

PlanLive odds coverageDaily requests
Free ($0)NFL, NBA, MLB moneylines from US books25
Professional ($29/mo)All sports in the catalog, h2h, spreads and totals, major US sportsbooks667 (20,000 per month)
Business ($99/mo)Adds Pinnacle and international books, player props, alternate and period markets, historical archive6,667 (200,000 per month)

Quotas reset at 00:00 UTC. There are no overage charges; at the limit you receive a 429. See pricing.

Frequently asked questions

Does the live odds endpoint include in-play games?

Yes. GET /odds/ returns upcoming and in-play games. Finished games roll off the live response and are available from /historical/odds on the Business plan.

How often are live odds updated?

About every 30 seconds for NFL, NBA, MLB and NHL, 60 to 120 seconds for major soccer, tennis and UFC, and about every 300 seconds for thinner leagues. Each bookmaker price includes an updated_at timestamp.

Is there a websocket or streaming option?

No. Live odds are delivered over REST. Poll at or slower than the refresh interval for the league you need.

Try it with a free key

25 requests per day, NFL, NBA and MLB moneylines, no credit card.

Get a free API key