BetRivers & Unibet Odds Scraper
Pricing
from $10.00 / 1,000 event scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share

π² 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
| Capability | This actor | DraftKings odds | Odds aggregators |
|---|---|---|---|
| BetRivers odds | yes, 13 states + Ontario | no | some, main lines only |
| Unibet odds | yes, 6 countries | no | some, main lines only |
| Every market incl. player props | yes | yes | rarely |
| Live score and game clock | yes | no | no |
| Live corners, cards and set scores | yes | no | no |
| Filter by team, market type or market keyword | yes | not stated | rarely |
| Decimal, American and fractional odds | yes | American | varies |
| Price | $0.01 per event, every market included | per request | per row or per event |
| Proxy | none needed | not stated | not stated |
π¦ What data you get
| Field | Description |
|---|---|
eventId, url | The book's event ID and the event page. |
bookmaker | Book and market, e.g. "BetRivers New Jersey" or "Unibet UK". |
sport, category, league | Sport, country or sub-group, and league or tournament. |
eventName, homeTeam, awayTeam | Match name and teams or players as the book shows them ("WAS Commanders"). |
homeTeamFullName, awayTeamFullName, homeTeamId, awayTeamId | Full names ("Washington Commanders") and the book's team or player IDs, stable across events. |
startTime, bettingClosesAt | Start time and when pre-match betting closes (UTC, ISO 8601). |
status | upcoming or live. |
score, matchClock | Live only: score (sets won for tennis, table tennis and volleyball) and clock, e.g. "4th Quarter 2:00" or "67'". |
liveStats | Live 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, neutralVenue | Whether the book streams the event, offers in-play betting, offers bet builder, and whether it's on neutral ground. |
homeOdds, drawOdds, awayOdds | Moneyline in decimal odds. drawOdds only for sports with a draw. |
homeOddsAmerican, drawOddsAmerican, awayOddsAmerican | The same in American odds ("-225", "+180"). |
spreadHome, spreadHomeOdds, spreadAwayOdds | Main spread (handicap) line for the home side and its odds. |
totalLine, overOdds, underOdds | Main total line and over/under odds. |
marketCount, markets | Number of markets and the list (see below). |
scrapedAt | When 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
| Section | What it's for |
|---|---|
| Maximum events | Always first, caps the whole run. Empty means no limit. |
| Sportsbook | Which BetRivers states and Unibet countries to read. Several books share the limit fairly. |
| What to scrape | Sports, leagues or countries, teams or players, live or upcoming, how soon the games start, streamed only. |
| Markets | Market 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 plan | Price 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 collected | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|
| 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
- Create a free Apify account with $5 in credit.
- Open the BetRivers & Unibet Odds Scraper.
- Pick the books and sports (or keep the prefilled NFL in New Jersey), set Maximum events, then click Start.
- 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
| Question | Answer |
|---|---|
| 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 installbun run typecheckbun test/qa.mjsapify run
Local results are stored in storage/datasets/default.