BetRivers & Unibet Odds Scraper avatar

BetRivers & Unibet Odds Scraper

Pricing

from $10.00 / 1,000 event scrapeds

Go to Apify Store
BetRivers & Unibet Odds Scraper

BetRivers & Unibet Odds Scraper

Live and pre-match odds from BetRivers (13 US states + Ontario) and Unibet (UK, EU, Canada): moneyline, spread, total and every market incl. player props, for NFL, NBA, MLB, NHL, soccer, tennis, UFC and more. 1,000 events in under a minute.

Pricing

from $10.00 / 1,000 event scrapeds

Rating

0.0

(0)

Developer

Norm Data

Norm Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Categories

Share

Norm Data

🎲 BetRivers & Unibet Odds Scraper

Scrape live and pre-match odds from BetRivers (13 US states plus Ontario) and Unibet (UK, Sweden, Denmark, Netherlands, Belgium, Canada). Every row is one match with the moneyline, main spread and main total as flat columns. It also carries every market the book offers: player props, quarters, halves, alternate lines, corners and more. Each price comes in decimal, American and fractional odds. NFL, NCAAF, NBA, MLB, NHL, soccer, tennis, UFC, esports and 20 more sports. About 1,000 events with every market in under 10 seconds, no proxy.

Live games also get the score and the game clock, so you can track in-play line movement on a schedule.

🎯 Who uses it?

πŸ“ˆ Bettors and odds comparison sites

Compare BetRivers and Unibet prices with other books, find the best line and spot arbitrage or middles.

πŸ€– Betting model builders and quants

Feed a model with clean, structured odds for every market, including player props, and record closing lines over time.

πŸ“° Sports media and fantasy apps

Show current lines, spreads and totals next to your previews, scores and fantasy projections.

πŸ”¬ Researchers and analysts

Study how lines move between states and countries, before and during games, on the same Kambi platform.

✨ What it does

  • Two big books, 20 markets in one run: BetRivers NJ, PA, NY, IL, MI, OH, AZ, CO, IN, VA, MD, LA, WV, Ontario, and Unibet UK, SE, DK, NL, BE, CA.
  • 27 sports: American football, basketball, baseball, ice hockey, soccer, tennis, UFC/MMA, boxing, golf, esports, cricket, rugby, AFL, darts, snooker, table tennis, handball, volleyball, Formula 1, NASCAR and more.
  • League, team and player filters: "NFL", "Premier League", a whole country like "Spain", or just the games of "Chiefs", "Real Madrid" or "Sinner".
  • Live or upcoming: in-play games only, upcoming only, or both; games starting within the next N hours; only games the book streams.
  • Market filters: pick main lines, game lines (alternates and team totals included), player props, periods (halves, quarters, sets) or other markets, search markets by keyword ("Passing Yards", "Mahomes", "Corners") and hide suspended markets.
  • Headline odds as columns: home, draw and away odds (decimal and American), spread line and odds, total line and over/under odds.
  • Every market as a list: name, type, group, period, main-line flag, open or suspended, cash out and bet builder flags, closing time, and every outcome with player, line, decimal, American and fractional odds, status and last price change.
  • Live data: score, game clock, and for soccer corners and yellow and red cards, for tennis, table tennis and volleyball the score of every set and the points of the current game.
  • Event details: full team names and IDs, when pre-match betting closes, and whether the event is streamed, offers live betting, bet builder, or is on neutral ground.

πŸ† Why this scraper

  • The only BetRivers and Unibet odds actor on Apify. Other odds actors cover DraftKings, FanDuel or aggregators, not these books.
  • Every market, not just the moneyline. Player props, period lines and alternate spreads come on the same row, with no extra cost per market.
  • Fast without shortcuts. 1,000 events with every market in about 9 seconds in our tests, with no browser and no proxy.
  • State by state. US odds differ by state; pick the ones you need and compare them side by side.
  • Clean and consistent. Odds as numbers, American odds with their sign, rows sorted by start time so games in play come first.

βš–οΈ How it compares

CapabilityThis actorDraftKings oddsOdds aggregators
BetRivers oddsyes, 13 states + Ontarionosome, main lines only
Unibet oddsyes, 6 countriesnosome, main lines only
Every market incl. player propsyesyesrarely
Live score and game clockyesnono
Live corners, cards and set scoresyesnono
Filter by team, market type or market keywordyesnot statedrarely
Decimal, American and fractional oddsyesAmericanvaries
Price$0.01 per event, every market includedper requestper row or per event
Proxynone needednot statednot stated

πŸ“¦ What data you get

FieldDescription
eventId, urlThe book's event ID and the event page.
bookmakerBook and market, e.g. "BetRivers New Jersey" or "Unibet UK".
sport, category, leagueSport, country or sub-group, and league or tournament.
eventName, homeTeam, awayTeamMatch name and teams or players as the book shows them ("WAS Commanders").
homeTeamFullName, awayTeamFullName, homeTeamId, awayTeamIdFull names ("Washington Commanders") and the book's team or player IDs, stable across events.
startTime, bettingClosesAtStart time and when pre-match betting closes (UTC, ISO 8601).
statusupcoming or live.
score, matchClockLive only: score (sets won for tennis, table tennis and volleyball) and clock, e.g. "4th Quarter 2:00" or "67'".
liveStatsLive only: corners and yellow and red cards for soccer; the score of every set and the points of the current game for set sports.
streamed, liveBetting, betBuilder, neutralVenueWhether the book streams the event, offers in-play betting, offers bet builder, and whether it's on neutral ground.
homeOdds, drawOdds, awayOddsMoneyline in decimal odds. drawOdds only for sports with a draw.
homeOddsAmerican, drawOddsAmerican, awayOddsAmericanThe same in American odds ("-225", "+180").
spreadHome, spreadHomeOdds, spreadAwayOddsMain spread (handicap) line for the home side and its odds.
totalLine, overOdds, underOddsMain total line and over/under odds.
marketCount, marketsNumber of markets and the list (see below).
scrapedAtWhen the row was collected (UTC).

Each market in markets has marketId, name, type, group (game_lines, player_props, periods or other), period ("Full Game", "1st Half", "Quarter 1", "Set 2"...), isMainLine, status (open or suspended), cashOut, betBuilder, closesAt, and outcomes with name, participant, participantId, line, oddsDecimal, oddsAmerican, oddsFractional, status and changedAt (last price change).

The headline columns are always filled from the full market list, even when you filter the markets.

Example row (markets shortened):

{
"eventId": 1028812618,
"url": "https://nj.betrivers.com/?page=sportsbook#event/1028812618",
"bookmaker": "BetRivers New Jersey",
"sport": "American Football",
"category": null,
"league": "NFL",
"eventName": "IND Colts @ WAS Commanders",
"homeTeam": "WAS Commanders",
"awayTeam": "IND Colts",
"homeTeamFullName": "Washington Commanders",
"awayTeamFullName": "Indianapolis Colts",
"homeTeamId": 1000000334,
"awayTeamId": 1000000174,
"startTime": "2026-10-04T13:30:00Z",
"bettingClosesAt": "2026-10-04T13:30:00Z",
"status": "upcoming",
"score": null,
"matchClock": null,
"liveStats": null,
"streamed": true,
"liveBetting": true,
"betBuilder": true,
"neutralVenue": false,
"homeOdds": 2.8,
"drawOdds": null,
"awayOdds": 1.45,
"homeOddsAmerican": "+180",
"drawOddsAmerican": null,
"awayOddsAmerican": "-225",
"spreadHome": 4.5,
"spreadHomeOdds": 1.88,
"spreadAwayOdds": 1.94,
"totalLine": 47.5,
"overOdds": 1.91,
"underOdds": 1.91,
"marketCount": 21,
"markets": [
{
"marketId": 2697921688,
"name": "Total Passing Yards by the Player - Including Overtime",
"type": "Player Occurrence Line",
"group": "player_props",
"period": "Full Game incl. Overtime",
"isMainLine": false,
"status": "open",
"cashOut": true,
"betBuilder": true,
"closesAt": "2026-10-04T13:30:00Z",
"outcomes": [
{ "name": "Over", "participant": "Daniel Jones", "participantId": 1005252422, "line": 226.5, "oddsDecimal": 1.87, "oddsAmerican": "-115", "oddsFractional": "17/20", "status": "OPEN", "changedAt": "2026-10-02T23:09:09Z" },
{ "name": "Under", "participant": "Daniel Jones", "participantId": 1005252422, "line": 226.5, "oddsDecimal": 1.87, "oddsAmerican": "-115", "oddsFractional": "17/20", "status": "OPEN", "changedAt": "2026-10-02T23:09:09Z" }
]
}
],
"scrapedAt": "2026-10-03T04:29:04.340Z"
}

A live soccer match carries liveStats like { "homeCorners": 7, "awayCorners": 1, "homeYellowCards": 2, "awayYellowCards": 1, "homeRedCards": 0, "awayRedCards": 0 }, and a live tennis match { "homeSets": [2, 6, 4], "awaySets": [6, 3, 2], "gamePoints": "40-40" }.

πŸ’‘ Use cases

🏈 Every NFL market in New Jersey and Pennsylvania

{ "maxItems": 100, "bookmakers": ["betrivers-nj", "betrivers-pa"], "sports": ["american_football"], "leagues": ["NFL"] }

🎯 NFL passing yards props only

{ "maxItems": 50, "leagues": ["NFL"], "markets": ["player_props"], "marketKeywords": ["Passing Yards"] }

πŸ‘€ Every prop on one player

{ "maxItems": 5, "leagues": ["NFL"], "marketKeywords": ["Mahomes"] }

πŸ”΄ Live NBA and NHL lines you can bet right now

{ "maxItems": 200, "bookmakers": ["betrivers-ny"], "sports": ["basketball", "ice_hockey"], "eventStatus": "live", "hideSuspended": true }

⚽ Real Madrid and Barcelona games, main odds, on Unibet UK

{ "maxItems": 20, "bookmakers": ["unibet-uk"], "teams": ["Real Madrid", "Barcelona"], "markets": ["main"] }

⏱️ Everything starting in the next 3 hours, all sports

{ "maxItems": 1000, "bookmakers": ["betrivers-nj"], "startsWithinHours": 3 }

πŸ—ΊοΈ Compare one state against another

{ "maxItems": 500, "bookmakers": ["betrivers-nj", "betrivers-mi", "betrivers-on"], "sports": ["baseball"], "markets": ["main"] }

βš™οΈ How the input is organised

SectionWhat it's for
Maximum eventsAlways first, caps the whole run. Empty means no limit.
SportsbookWhich BetRivers states and Unibet countries to read. Several books share the limit fairly.
What to scrapeSports, leagues or countries, teams or players, live or upcoming, how soon the games start, streamed only.
MarketsMarket types (main lines, game lines, player props, periods, other), market keywords, hide suspended markets. Empty means every market.

πŸ’° Pricing

Pay-per-event: a one-time $0.003 when the run starts, plus a price per event saved to your dataset, with every market included. The price depends on your Apify plan tier:

Your Apify planPrice per event
Free$0.014
Bronze$0.0125
Silver$0.011
Gold / Platinum / Diamond$0.01

Approximate total cost (includes the $0.003 start fee):

Events collectedFreeBronzeSilverGold+
100$1.40$1.25$1.10$1.00
1,000$14.00$12.50$11.00$10.00
10,000$140.00$125.00$110.00$100.00

New Apify accounts start with $5 in free credit. On the Free plan a run saves up to 10 events.

πŸš€ Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the BetRivers & Unibet Odds Scraper.
  3. Pick the books and sports (or keep the prefilled NFL in New Jersey), set Maximum events, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python, and schedule it with Apify's built-in Scheduler to track line movement.

πŸ€– Use with AI agents (MCP)

Give an AI agent live access to BetRivers and Unibet odds through the Model Context Protocol:

claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/betrivers-unibet-odds-scraper"

Then prompt it in plain language to run the scraper and read back the results.

πŸ”§ Troubleshooting

A league was skipped. Use the name the book shows ("NFL", "NBA", "Premier League") or country plus league ("England Premier League"). A league with no games right now is skipped with a warning.

totalLine or spreadHome is empty. The book has no main total or spread open for that event, which is common for live games near the end, futures-style sports and some tennis matches. The other markets are still in markets.

Fewer events than expected. Events that close between the listing and the odds request, or that have none of the markets you filtered for, are skipped and the next events take their place, so you only pay for rows with data. Fewer rows means fewer events had those markets: player props, for example, open only a few days before a game. Outrights (season winners, golf tournaments) are not included; only matches are.

The log says the sportsbook refused the server's IP address. The sportsbook blocks some cloud server IP addresses. When that happens before anything is saved, the run restarts on another Apify server by itself (up to 4 times) and carries on, at no extra cost to you. If every try is refused, the run stops with a clear message: run it again a bit later.

A team filter found nothing. Teams match on whole words of the name the book uses: "Chiefs" or "Kansas City Chiefs" work, "Chief" doesn't.

Odds differ between states. That's real: each state and country has its own trading. Use it to compare.

❓ FAQ

QuestionAnswer
Do I need a BetRivers or Unibet account?No. Only public odds are read.
Does it need a proxy?No, not even for US states.
Is there a limit on results?No. Leave Maximum events empty to get every match on the books you pick.
How fresh are the odds?Read live on every run. Schedule it every few minutes to track movement.
Are player props included?Yes. Leave Market types empty for everything, or pick Player props to get only them.
Can I get only one player's props?Yes. Put the player's name in Market keywords, e.g. "Mahomes".
Does a filter make it cheaper?You pay per event saved, not per market, so filters keep your rows small but cost the same per event.
Are other Kambi books included?Not yet. Write to us if you need one.
Can I place bets with it?No. It only reads odds.

πŸ›‘οΈ Limits & responsible use

This Actor reads only public odds that BetRivers and Unibet show to any visitor. It never signs in and never places bets. Odds change quickly; always check the book before acting on a price. Use the data in line with the books' terms and the gambling laws where you are. Please gamble responsibly.

πŸ“§ Contact

Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com

πŸ§ͺ Local development

bun install
bun run typecheck
bun test/qa.mjs
apify run

Local results are stored in storage/datasets/default.