Sportsbook Odds Comparison: Pinnacle, FanDuel and DraftKings avatar

Sportsbook Odds Comparison: Pinnacle, FanDuel and DraftKings

Pricing

from $10.00 / 1,000 results

Go to Apify Store
Sportsbook Odds Comparison: Pinnacle, FanDuel and DraftKings

Sportsbook Odds Comparison: Pinnacle, FanDuel and DraftKings

Live comparison of Pinnacle, FanDuel and DraftKings: for every match and market see each book's price, the best price and who offers it, the average, each book's margin and whether the best prices create an arbitrage. Fetches fresh odds automatically - no manual setup.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

MrDoe

MrDoe

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 hours ago

Last modified

Categories

Share

US Sportsbook Odds Comparison: Best Price per Match - Click Start and get Pinnacle, FanDuel and DraftKings compared live - best price, average, margin and arbitrage, no setup required.

What does US Sportsbook Odds Comparison: Best Price per Match do?

US Sportsbook Odds Comparison runs this account's own Pinnacle, FanDuel and DraftKings Actors live, matches the same game across all three even when team names differ slightly, then for each market and line returns every bookmaker's price, the best price for each outcome and which bookmaker offers it, the average price, each bookmaker's margin, the combined margin of the best prices and a flag when those best prices guarantee a profit. It covers moneyline and total markets, defaulting to NBA.

Why use US Sportsbook Odds Comparison: Best Price per Match?

  • Zero setup: click Start, get a live three-book comparison back.
  • Line shopping across Pinnacle, FanDuel and DraftKings in one table.
  • Fuzzy team matching across three different data shapes.
  • Margin per bookmaker shows who charges the most.
  • Arbitrage flag when the best prices genuinely beat the market.

What makes this different

Odds comparison sites are closed and show only what they choose. This Actor runs the actual bookmaker scrapers live on every call, every time, and hands you the raw per-book comparison as structured data you can filter, store or alert on - not a locked dashboard.

How it works

US Sportsbook Odds Comparison: Best Price per Match workflow: your input, collection, output

  1. Your input — press Start with no input - it fetches fresh Pinnacle, FanDuel and DraftKings odds automatically.
  2. The Actor collects it — it matches the same game across all three books and compares each market.
  3. Your output — you get one comparison row per match and market, with every book's price.

What data can you extract?

The dataset has 10 fields per row:

FieldTypeDescription
eventobjectHome, away, sport, league and start time.
marketstringmoneyline or total.
linenumberTotal line, null for moneyline.
bookmakersnumberBookmakers pricing this market.
bestobjectBest odds and bookmaker per selection.
averageobjectAverage odds per selection.
bestPriceMarginPercentnumberCombined margin of the best prices in percent.
arbitragebooleanTrue when the best prices guarantee a profit.
booksarrayEach bookmaker's odds, margin and link.
demobooleanTrue for the built-in sample.

How to use US Sportsbook Odds Comparison: Best Price per Match

US Sportsbook Odds Comparison: Best Price per Match input form

  1. Open the Actor and go to the Input tab.
  2. Press Start - live fetch is on by default and needs no configuration. To target a different sport, set Sports to fetch live (e.g. NFL, MLB, NHL); to use your own saved odds instead, turn off Fetch live odds now and add datasets.
  3. Optionally set filters and a Max results limit.
  4. Click Start. A default run finishes in under a minute.
  5. Open the Output tab, then download the dataset or connect it to your tools.

Input Parameters

ParameterTypeRequiredDefaultDescription
fetchLiveOddsbooleanNotrueRuns this repo's own Pinnacle, FanDuel and DraftKings Actors right now and compares their fresh odds, in addition to any datasets below. Each is a separate Actor run on your account, billed and timed as its own run. Turn off to only use the datasets below.
liveBookmakersarrayNo[]Which of pinnacle, fanduel, draftkings to fetch. Leave empty for all three.
liveSportsarrayNo[]Sport/league to pass to each bookmaker Actor, e.g. NBA, NFL, MLB, NHL. Leave empty for NBA.
liveMaxMatchesPerBookintegerNo20Caps how many matches each bookmaker Actor fetches live.
oddsDataset1stringNo—Dataset from a bookmaker odds Actor run (Pinnacle, FanDuel or DraftKings). Add one per bookmaker, on top of or instead of live fetch. Leave all empty to rely on live fetch.
oddsDataset2stringNo—Another dataset of the same kind.
oddsDataset3stringNo—Another dataset of the same kind.
oddsDataset4stringNo—Another dataset of the same kind.
marketsarrayNo[]moneyline and/or total. Leave empty for both.
minBooksintegerNo2Only compare markets priced by at least this many bookmakers.
onlyArbitragebooleanNofalseReturn only markets where the best prices across books guarantee a profit.
maxStartDiffHoursnumberNo3Listings count as the same match when their start times are within this many hours.
maxResultsintegerNo5Maximum number of comparisons returned. Default is 5 for a quick test; set 0 to return everything available.

Output Data

US Sportsbook Odds Comparison: Best Price per Match dataset table

best gives the highest price and bookmaker for each selection; average is the mean price. bestPriceMarginPercent is the combined margin of the best prices: below zero means an arbitrage, flagged in arbitrage. books lists every bookmaker's price and margin.

US Sportsbook Odds Comparison: Best Price per Match field map of one record

A real dataset item:

{
"event": {
"home": "Atlanta Hawks",
"away": "Cleveland Cavaliers",
"sport": "Basketball",
"league": "NBA",
"startTime": "2026-10-30T00:10:00.000Z"
},
"market": "moneyline",
"line": null,
"bookmakers": 3,
"best": {
"home": {
"bookmaker": "FanDuel",
"odds": 1.926
},
"away": {
"bookmaker": "Pinnacle",
"odds": 1.98
}
},
"average": {
"home": 1.912,
"away": 1.935
},
"bestPriceMarginPercent": 2.43,
"arbitrage": false,
"books": [
{
"bookmaker": "FanDuel",
"odds": {
"home": 1.926,
"away": 1.926
},
"marginPercent": 3.84,
"url": "https://sportsbook.fanduel.com/basketball/cleveland-cavaliers-atlanta-hawks-36245923"
},
{
"bookmaker": "DraftKings",
"odds": {
"home": 1.9,
"away": 1.9
},
"marginPercent": 5.26,
"url": "https://sportsbook.draftkings.com/event/cle-cavaliers-atl-hawks/34910285"
},
{
"bookmaker": "Pinnacle",
"odds": {
"home": 1.909,
"away": 1.98
},
"marginPercent": 2.89,
"url": "https://www.pinnacle.com/en/basketball/nba/atlanta-hawks-vs-cleveland-cavaliers/1639313823/"
}
],
"demo": false
}

Usage Examples

Default live NBA comparison

{
"maxResults": 0
}

Live NFL comparison

{
"liveSports": [
"NFL"
],
"maxResults": 0
}

Arbitrage only

{
"onlyArbitrage": true,
"maxResults": 0
}

Tips for Best Results

  • Default is 5 results for a fast test. Set the max to 0 to return everything available.

Known Limitations

  • Comparison is only as fresh as the moment the live fetch runs; prices move within minutes.
  • Only moneyline and total markets are compared.
  • Pinnacle and FanDuel filter by sport, not league; sports outside the built-in NBA preset may need a higher 'Max matches per bookmaker' to find overlap, which adds a modest extra cost.
  • Team matching is fuzzy; unusual name differences can leave a match unpaired.
  • Each live-fetch run also triggers three separate, separately-billed sub-Actor runs on your own account.

Integrations

Run it from the Apify API, on a schedule, or from a webhook. Send results straight to Google Sheets, Make, Zapier, Slack or your own database with Apify's built-in integrations.

Export Formats

Download the dataset as JSON, CSV, Excel, XML, HTML table or RSS from the Output tab or the API.

Frequently Asked Questions

Does it need an account or API key?

No. Live fetch needs no account or API key for any of the three books.

Am I charged for failed results?

No. You are only charged for results that are written to the dataset.

Do I need an account or login?

No. Live fetch needs no account or API key for any of the three books.

Am I charged for failed runs or empty results?

You are only charged for results that are actually written to the dataset.

Can I run it on a schedule?

Yes. Create a Task with your input and add a schedule in Apify Console. With monitor mode on, each scheduled run returns only what changed since the previous one.

Support

Questions or a missing field? Open an issue from the Issues tab on this Actor's page and it will be looked at.

You are responsible for how you use these results, including compliance with bookmaker terms and the gambling laws that apply to you. This Actor is analysis only and does not place bets. Gambling is age-restricted; if you or someone you know has a problem, seek support such as BeGambleAware or 1-800-GAMBLER.