Live Odds API

Continuously updated odds, consensus line-movement history, and live scores — keyed to canonical events so a moving line and the score stay in sync.

Overview

The MoneyLine live odds API keeps prices current across every tracked sportsbook, DFS platform, and exchange, with a snapshot cadence that tightens as game time approaches. You call one endpoint, get the latest moneyline, spread, total, and player-prop lines back in a single normalized JSON shape, and read consensus line-movement history to see how each market opened and moved.

Rather than streaming push, the feed is snapshot data built for polling. Far from kickoff, prices are refreshed roughly every 24 hours; as a game nears, the cadence tightens until it lands at about every 20 minutes inside three hours of the start time. That makes it straightforward to poll /v1/odds on your own interval and stay in step with the market without managing websocket connections.

Odds-history snapshots are consensus rows per market: each row carries the cross-book average, the best available price, and the no-vig fair price at that moment, along with the contributing book count. Game lines and player props are both tracked, and history is written more frequently the closer a game gets, so the line-movement chart fills in detail exactly when the market is most active.

Because odds, events, and scores all key to the same canonical eventId, a moving line and the live score stay in sync. The same call can power a live odds screen, a line-movement chart, or a steam-detection alert, and a free tier covers both personal and commercial use with every endpoint included.

Get started

  1. 1

    Create a free API key

    Sign up and grab a key from the dashboard — no credit card for the free tier — then pass it as x-api-key on every request.

  2. 2

    Poll /v1/odds for current lines

    Call /v1/odds with a league filter to pull the latest moneyline, spread, total, and player-prop prices, then re-poll as game time nears.

  3. 3

    Track line movement

    Use the canonical eventId to call odds-history and read the per-market consensus — avg, best, and fair price — snapshot over snapshot.

Key features

Tightening cadence

Snapshots roughly every 24h far out, tightening to about every 20 min inside three hours of game time.

Line-movement history

Opening-to-current consensus per market with avg price, best price, and no-vig fair odds.

Live scores

Scores and status keyed to the same canonical events as the odds, so price and score never drift apart.

All source types

Sportsbook, DFS, and exchange prices tracked together, filterable by sourceType in one query param.

Poll-friendly REST

A simple REST/HTTPS contract you can poll on any interval — no websocket plumbing to keep odds current.

Free tier, every endpoint

Start free for personal and commercial use; paid plans add throughput, not features.

Supported leagues

NFLNBAMLBNHLNCAAFNCAAB

Supported sportsbooks

DraftKingsFanDuelBetMGMCaesarsESPN BETFanaticsHard Rock BetBetRiversPinnaclebet365 (US)BovadaBetOnline.ag

Example request

GET /v1/events/:eventId/odds-history — line movement

Request

curl -H "x-api-key: $ML_API_KEY" \
  "https://mlapi.bet/v1/events/nba-ev-311286/odds-history?market=moneyline"

Response

{
  "success": true,
  "data": {
    "eventId": "nba-ev-311286",
    "count": 14,
    "snapshots": [
      {
        "snapshotAt": "2026-04-08T19:00:00.000Z",
        "markets": [
          {
            "marketType": "moneyline",
            "outcome": "Boston Celtics",
            "avgPrice": -175,
            "bestPrice": -165,
            "bestBook": "draftkings",
            "fairOdds": -172,
            "bookCount": 12
          }
        ]
      }
    ]
  },
  "meta": { "event": "nba-ev-311286" }
}

Update cadence

Time to gameSnapshot cadence
More than 7 days outRoughly every 24 hours
1–7 days outAbout every 12 hours
3–24 hours outAbout every 60 minutes
Inside ~3 hoursDown to about every 20 minutes

Use cases

Live odds screens

Display current prices and best lines that refresh as the market moves toward game time.

Line-movement charts

Plot opening-to-current consensus for any market on any event from the odds-history snapshots.

Steam/alerting

Detect sharp moves by comparing consecutive consensus snapshots per market.

Score-aware odds

Pair current prices with live scores on the same canonical event for in-game and pre-game screens.

Model pipelines

Poll a stable JSON contract on your own interval to feed line-movement features into a model.

Latency & performance

FAQ

What is a live odds API?

A live odds API delivers continually refreshed sportsbook betting lines as structured JSON, with a snapshot cadence that tightens as game time approaches so your app stays in step with the market.

How real-time is "live"?

It is snapshot data refreshed roughly every 24 hours far from kickoff, tightening to about every 20 minutes within three hours of game time — not a real-time push stream.

Do you offer websockets?

No — the API is REST/HTTPS, so you poll the odds and odds-history endpoints on your preferred interval. The tightening snapshot cadence keeps the data current without streaming.

How do I track line movement?

Call odds-history with a canonical eventId and read the per-market consensus snapshots — each carries the avg, best, and no-vig fair price plus the contributing book count.

Are player props tracked over time too?

Yes. Both game lines and player props are written to history, with snapshots growing more frequent the closer a game gets.

Is DFS included in consensus?

Consensus covers sportsbooks and exchanges; DFS is excluded from consensus because its prices are indicative, not tradeable.

Do live scores come from the same feed?

Scores and status key to the same canonical events as the odds, so a moving line and the current score stay in sync on one eventId.

Related

Pricing

Free

$0/mo

1K credits/mo

Starter

$29/mo

150K credits/mo

Pro

$149/mo

1.5M credits/mo

Business

$299/mo

5M credits/mo

Enterprise

Custom

Unlimited credits/mo

View full pricing →

Start building in minutes

Free tier to start, one API key, normalized responses across every league and sportsbook.