US Sportsbook Odds: DraftKings, FanDuel, BetMGM, Caesars Lines avatar

US Sportsbook Odds: DraftKings, FanDuel, BetMGM, Caesars Lines

Pricing

from $0.30 / 1,000 market records

Go to Apify Store
US Sportsbook Odds: DraftKings, FanDuel, BetMGM, Caesars Lines

US Sportsbook Odds: DraftKings, FanDuel, BetMGM, Caesars Lines

Compare the moneyline, spread and total at DraftKings, FanDuel, BetMGM, Caesars, bet365, BetRivers and Unibet for NFL, NBA, NHL, MLB, college and soccer games: one record per market per sportsbook, as relayed by Action Network, with American and decimal odds and implied probability.

Pricing

from $0.30 / 1,000 market records

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Categories

Features

Limited permissions

Share

Compare the main betting lines of the big US sportsbooks game by game: moneyline, point spread and total at DraftKings, FanDuel, BetMGM, Caesars, bet365, BetRivers and Unibet, for the NFL, NBA, NHL, MLB, college football and basketball, the main soccer leagues and UFC. Each record is one market for one game at one sportsbook, with American odds, decimal odds and the implied probability of every side, plus a blended consensus line and the opening line for reference. Built for bettors, line shoppers, model builders and odds-site developers who schedule runs and pipe the JSON into alerts, dashboards or models. No sportsbook account is needed.

These are second-hand prices. The Actor does not read the sportsbooks themselves. It collects the lines that Action Network, a sports media site, publishes for each book. Every record says so: source is actionnetwork, book is the sportsbook the price belongs to, and firstParty is false. Show them as "DraftKings (via Action Network)". A relayed price can trail the sportsbook by seconds or minutes, and a sportsbook can disappear from the relay without notice.

A relayed line can also be stale or plainly wrong. Seen on 2026-11-11 for one NBA game (Miami at Utah) at the same moment: most books at -355 to -405 on the favourite, a spread of -8.5 to -9.5 and a total of 225.5 to 227.5, while Unibet (NJ) still showed -250 and -6.5, a line that had been right about twenty minutes earlier, and BetMGM (NJ) showed a total of 0.5. Do not rank these records as "best price" without checking them first. See "What to filter" in the FAQ.

Data only, not betting or financial advice. This is an unofficial tool: it is not affiliated with or endorsed by Action Network or any sportsbook.

Use cases

  • Line shopping: the best moneyline, spread or total for a game across eight sportsbooks in one run.
  • Market view: each book next to the blended consensus line and the opening line, to see who is off the market and how far a line has moved.
  • Model inputs: American odds, decimal odds and implied probability per side, ready for no-vig and expected-value calculations.
  • Cross-source comparison: join sportsbook lines with prediction-market or exchange records on sport, league, teams and start time through the shared canonical envelope. Home and away are explicit.
  • Public betting splits: optional share of tickets and of money on each side of a market.

Quick start

  1. Open the Actor and click Start. The prefilled form collects this week's NFL games and NBA games for today and the next two days, at the default sportsbooks: about 700 records, about $0.20 (see Pricing).
  2. Read the rows in the Output tab, or export them as JSON, CSV or Excel.

Tonight's NHL totals at three sportsbooks:

{"leagues": ["nhl"], "books": ["draftkings_nj", "fanduel_nj", "betmgm_nj"], "marketFamilies": ["totals"]}

A Premier League weekend with three-way moneylines:

{"leagues": ["epl"], "dateFrom": "2026-11-21", "dateTo": "2026-11-22"}

NFL first-half lines and team totals, with betting percentages:

{"leagues": ["nfl"], "periods": ["game", "first_half"], "marketFamilies": ["moneyline", "spreads", "totals", "team_totals"], "includeBettingPercentages": true, "maxResults": 5000}

An empty input ({}, no league, book, date or maxResults) is a sample: at most 10 records of current lines from the NFL, NBA, NHL, MLB or WNBA at the default books, and the run's status message says it was a sample. Name leagues (and maxResults) for a full run.

An input that leaves leagues out but sets anything else (for example {"maxResults": 1000}) collects the default scope: the NFL's current week and NBA games for today and the next two days, at the ten default books, up to 1,000 records. When neither league has a priced game in that window (for example in July) the run stops with a message that says so and asks you to pick leagues and dates; it never widens the scope by itself.

An empty list ("leagues": [] or "books": [], or null) is refused with an error that names the field, so a pipeline that sends one is never charged for a sample or for the default scope. An empty date is the same as no date.

Input

NameTypeDefaultWhat it does
leaguesarrayNFL and NBA (a 10-record sample for an empty input)Leagues to collect: nfl, ncaaf, nba, wnba, ncaab, ncaaw, mlb, nhl, epl, laliga, seriea, bundesliga, ligue_1, ucl, uel, mls, soccer, ufc.
booksarraythe ten default booksSportsbook keys from the table under "Which sportsbooks", or a numeric book id from the source's catalogue. At most 40 per run.
marketFamiliesarray["moneyline", "spreads", "totals"]Any of moneyline, spreads, totals, team_totals.
periodsarray["game"]Any of game, first_half, first_period, second_period, third_period, fourth_period.
dateFrom / dateTostringtoday to today + 2Game days as YYYY-MM-DD (US Eastern calendar days). With only dateFrom, that single day. At most 14 days.
includeBettingPercentagesbooleanfalseAdd the share of tickets and of money on each side, where published.
maxResultsinteger1000 (10 for an empty input)Maximum dataset records per run (1–20,000).
requestDelaySecsnumber1Seconds between requests (0.5–10).

Notes on the inputs:

  • soccer collects every soccer competition listed for the day. Games from a competition without a league key of its own get league: null.
  • The NFL and college football are listed by week, not by day: only the current week is available. With no dates set you get the whole week; with dates set you get the games of the week that fall inside them.
  • first_period to fourth_period are quarters in football and basketball and periods in hockey. A period that does not apply to a league is skipped for that league and noted in the run summary.
  • A misspelt input field, an unknown league or book, or a window over the limits stops the run with an error that names the problem. A numeric book id that the source does not list also stops the run before any odds are read.

Output

One record is one market for one game at one book.

  • Identity: recordKey (actionnetwork:<book>:<market id>), source, collectedAt, sourceUrl.
  • What it is: sport, league, book, bookKind, family (moneyline, moneyline_3way, spreads, totals or team_totals), period, eventStatus (scheduled, in_progress, final, postponed, canceled, delayed or unknown).
  • quote: the price itself, in the flat shape all our sportsbook-odds Actors share:
    • source, book, bookName and firstParty (always false here);
    • league, sport, eventNativeId, startTime (UTC), home, away;
    • family, period, includesOvertime, line and subject;
    • selections: one entry per side with role (home, away, draw, over, under), name, line, american, decimal and impliedProbability;
    • limits (never published here, so null), sourceUpdatedAt, collectedAt and url.
  • canonical: the same market as the shared sports envelope our other sports Actors use, for joining across sources. Detail without a field of its own is under canonical.extensions.actionnetwork: the book id, brand and state, whether the market is an in-play one, the source's market and outcome ids, rotation numbers and, when asked for, bettingPercentages.

How to read the lines:

  • quote.line of a spread is the home team's line: -2.5 means the home team gives 2.5 points. Each side also carries its own signed line. For totals both sides carry the total. Moneylines have no line.
  • Soccer moneylines are three-way (moneyline_3way) with a draw side.
  • A team total names its team in quote.subject.
  • impliedProbability is 1 / decimal of that single price. It includes the sportsbook's margin, so the sides of a market add up to more than 1.
  • A side that is not priced is kept with american, decimal and impliedProbability all null. It is never dropped and never given a zero.
  • includesOvertime is always null: the relay does not say whether a line settles including overtime or on regulation time. US sportsbooks normally settle hockey moneylines including overtime and soccer lines on 90 minutes, but that is not stated per price here, so check before comparing with a regulation-time line from another source.
  • sourceUpdatedAt is always null: the relay does not say when a sportsbook last changed a price. collectedAt is when the run read it.
  • Once a game starts, a book's in-play line replaces its pre-game line (eventStatus: "in_progress"). The opening line stays as it was.
  • UFC fighters are not home or away; the record uses the order the source lists them in and says so in the extension.

The run summary (OUTPUT in the key-value store) reports records per league, market and book, books that returned nothing, sides without a price, requests made, warnings and the status succeeded, succeeded_empty, succeeded_partial or failed.

Output example

Selected fields of a real record collected 2026-11-11 (full records also carry sourceUrl and canonical):

{"recordKey":"actionnetwork:draftkings_nj:21805773","source":"actionnetwork","collectedAt":"2026-11-11T00:24:08Z","sport":"american_football","league":"nfl","eventStatus":"scheduled","book":"draftkings_nj","bookKind":"sportsbook","family":"spreads","period":"game","quote":{"quoteVersion":"1.1","source":"actionnetwork","book":"draftkings_nj","bookName":"DraftKings (NJ)","firstParty":false,"league":"nfl","sport":"american_football","eventNativeId":"290970","startTime":"2026-11-13T01:15:00Z","home":"New York Giants","away":"Washington Commanders","family":"spreads","period":"game","includesOvertime":null,"line":-2.5,"subject":null,"selections":[{"role":"home","name":"New York Giants","line":-2.5,"american":-110,"decimal":1.9091,"impliedProbability":0.5238},{"role":"away","name":"Washington Commanders","line":2.5,"american":-110,"decimal":1.9091,"impliedProbability":0.5238}],"limits":{"maxStake":null,"currency":null},"sourceUpdatedAt":null,"collectedAt":"2026-11-11T00:24:08Z","url":"https://www.actionnetwork.com/nfl/odds"}}

Which sportsbooks

The default set, used when books is left out. Each returned moneyline, spread and total for NFL, NBA and NHL games on 2026-11-10.

KeyNameKindNote
draftkings_njDraftKings (NJ)Sportsbook
fanduel_njFanDuel (NJ)Sportsbook
betmgm_njBetMGM (NJ)Sportsbook
caesars_njCaesars (NJ)Sportsbook
bet365_njbet365 (NJ)Sportsbook
betrivers_njBetRivers (NJ)Sportsbook
betrivers_nyBetRivers (NY)SportsbookSame prices as betrivers_nj on every game checked
unibet_njUnibet (NJ)Sportsbook
consensusConsensus (Action Network blended line, not a sportsbook)Not a sportsbook: blended line
openOpening line (recorded by Action Network, not a sportsbook)Not a sportsbook: opening line

More keys you can ask for. Each returned prices on 2026-11-10.

KeyNameKindNote
fanatics_njFanatics (NJ)Sportsbook
fanatics_nyFanatics (NY)SportsbookSame prices as fanatics_nj on every game checked
fanatics_paFanatics (PA)SportsbookSame prices as fanatics_nj on every game checked
thescore_njtheScore Bet (NJ)Sportsbook
thescore_patheScore Bet (PA)SportsbookSame prices as thescore_nj on every game checked
thescore_ontheScore Bet (ON)SportsbookSame prices as thescore_nj on every game checked
hardrock_njHard Rock Bet (NJ)SportsbookNFL and NHL only when checked; no NBA
hardrock_flHard Rock Bet (FL)SportsbookSame prices as hardrock_nj on every game checked. NFL and NHL only when checked; no NBA
bally_bet_njBally Bet (NJ)Sportsbook
bally_bet_nyBally Bet (NY)SportsbookSame prices as bally_bet_nj on every game checked
betrivers_paBetRivers (PA)Sportsbook
unibet_paUnibet (PA)Sportsbook
parx_paParx (PA)Sportsbook
draftkings_nyDraftKings (NY)SportsbookSame prices as draftkings_nj on every game checked
draftkings_paDraftKings (PA)SportsbookSame prices as draftkings_nj on every game checked
draftkings_coDraftKings (CO)SportsbookSame prices as draftkings_nj on every game checked
draftkings_ilDraftKings (IL)SportsbookSame prices as draftkings_nj on every game checked
fanduel_nyFanDuel (NY)SportsbookSame prices as fanduel_nj on every game checked
fanduel_paFanDuel (PA)SportsbookSame prices as fanduel_nj on every game checked
fanduel_coFanDuel (CO)SportsbookSame prices as fanduel_nj on every game checked
betmgm_nyBetMGM (NY)SportsbookSame prices as betmgm_nj on every game checked
betmgm_paBetMGM (PA)SportsbookSame prices as betmgm_nj on every game checked
betmgm_nvBetMGM (NV)SportsbookSame prices as betmgm_nj on every game checked
caesars_nyCaesars (NY)SportsbookSame prices as caesars_nj on every game checked
caesars_paCaesars (PA)SportsbookSame prices as caesars_nj on every game checked
caesars_nvCaesars (NV)SportsbookSame prices as caesars_nj on every game checked
bet365_pabet365 (PA)Sportsbook
bet365_cobet365 (CO)SportsbookSame prices as bet365_pa on every game checked
kalshiKalshi (prediction market, not a sportsbook)Not a sportsbook: prediction market
polymarketPolymarket (prediction market, not a sportsbook)Not a sportsbook: prediction market
polymarket_usPolymarket US (prediction market, not a sportsbook)Not a sportsbook: prediction marketSame prices as polymarket on every game checked

Most per-state keys of one brand carry the same prices: on 2026-11-10 the New York, Pennsylvania, Colorado, Illinois and Nevada keys of DraftKings, FanDuel, BetMGM, Caesars, Fanatics and theScore Bet matched the New Jersey prices on all 27 games checked. Asking for several states of one brand mostly adds duplicates. Circa, Pinnacle, Bovada, BetOnline, Westgate, Borgata and PointsBet returned no prices when checked.

Pricing

Pay per result: $0.0003 per dataset record (one market for one game at one book), which is $0.30 per 1,000 records, plus $0.00005 per run start.

Worked sizes, measured 2026-11-10, at that price:

RunRecordsCost
Empty input (sample)at most 10about $0.003
Default scope (NFL week and NBA, ten books, three markets; the prefilled form)681about $0.20
NFL, NBA and NHL, same books and markets1,130about $0.34
One game at one book, default markets3about $0.001

Use leagues, books, marketFamilies, the date window and maxResults to keep runs small. A run that matches nothing pays only the run start. A run's maximum charge, if you set one, stops the dataset at the last record it covers, and the run summary says so.

Scheduling and monitoring

  • Line movement: schedule a league-scoped run (for example every ten minutes on game days) and key your history on recordKey plus collectedAt. Compare against the open book for the move since opening.
  • Best price alerts: schedule a run for today's games and compare selections across book for the same eventNativeId, family and line.
  • Closing lines: run once after the games finish; finished games keep the last line shown for them.
  • Records are a fresh snapshot each run; nothing is remembered between runs. De-duplicate on recordKey.

FAQ

Are these the sportsbooks' own prices? They are the sportsbooks' prices as relayed by Action Network, not read from the sportsbooks. Expect them to match closely before a game and to trail during fast moves. Check the sportsbook before acting on a price.

What to filter before comparing books? At least this:

  • drop a total that is impossible for the sport (a basketball total under 100, a football total under 20, a hockey total outside 3 to 10);
  • drop a market whose two prices cannot belong together: implied probabilities that sum to less than 1, or to much more than about 1.25;
  • when three or more books price the same game, drop a book whose spread is more than 1.5 points (0.5 in hockey, soccer and baseball) from the median, whose total is more than about 3% from it, or whose moneyline, with the margin removed, is more than 4 percentage points from it;
  • leave out consensus and open (they are not sportsbooks), and count betrivers_ny and betrivers_nj as one book.

A record that fails these is usually a line the relay did not update, not a price you can bet. The Actor does not apply these checks for you: it returns every price the relay shows, as shown, so filter the records yourself before ranking books.

How fresh is a price? The run reads the relay at run time. The relay does not publish when each price last changed, so freshness cannot be shown per price; collectedAt is the only timestamp.

What are consensus and open? Not sportsbooks. consensus is a blended line across books and open is the recorded opening line. Leave them out of books if you only want real sportsbooks, or filter on bookKind.

Why does a book have no record for a game? The relay had no line for it: lines are posted a day or two ahead for the NBA and NHL and about a week ahead for the NFL, and smaller books skip some games and markets. The run summary lists books that returned nothing.

Are New Jersey prices valid in my state? Usually the same, not always. The per-state keys of the big brands matched New Jersey on every game checked.

Can I get player props, alternate lines or futures? No. This Actor collects main lines only.

Export formats? JSON, CSV, Excel, XML or RSS from the dataset, or read it through the Apify API in your own pipeline.

Limits

  • Second-hand prices from an unofficial source that can lag a sportsbook, drop a sportsbook, change or become unavailable without notice. Check a run's status and warnings before relying on it.
  • Main lines only: moneyline, spread, total and optional team totals. No player props, alternate lines, futures or historical line series; build history by scheduling runs.
  • No time of last price change, no stake limits, and no statement of whether a hockey or soccer line includes overtime.
  • The NFL and college football are available for the current week only. Second-half lines and baseball innings are not collected.
  • Not supported: Liga MX, Brasileirao, Eredivisie, tennis, golf and motor racing.
  • Team names are the source's spellings and are not matched to other sources.
  • Sportsbook availability and prices differ by US state. You are responsible for using the data in line with the terms of the sites it comes from and the laws that apply to you.

For support, contact Apify support and include the Actor run ID.