Bet365 Player Props API | NFL, MLB, NBA, NHL Over/Under
Pricing
from $0.50 / 1,000 player props
Bet365 Player Props API | NFL, MLB, NBA, NHL Over/Under
Every active Bet365 player prop as structured JSON. Over/under lines and anytime markets for NFL, MLB, NBA, NHL and more, with player recent-form and decimal/American/fractional odds. Field-aligned to the PrizePicks and Underdog actors for line comparison.
Pricing
from $0.50 / 1,000 player props
Rating
0.0
(0)
Developer
Zen Studio
Maintained by CommunityActor stats
0
Bookmarked
17
Total users
4
Monthly active users
5 hours ago
Last modified
Categories
Share
Bet365 Player Props API | NFL, MLB, NBA, NHL Over/Under & Anytime Odds
From Zen Studio, creators of PrizePicks Player Props, Sleeper Player Props and Bet365 Odds. The same team behind the Player Props Line Shopping actor.
Why choose this actor?
- Collect the alternate lines, too. Go from a player's main line to the available threshold ladder: 1+, 2+ and 3+ home runs, for example. Keep the player, stat, threshold and odds together, with alternate rows clearly marked. Over/under markets include both sides; anytime and milestone markets retain their own prices.
- Compare the price with recent performance. Get the player's last five results for the stat where Bet365 publishes them, alongside decimal, American and fractional odds. Field names align with our PrizePicks and Underdog actors, making it easier to join datasets by player, stat and line.
- 9,868 props collected in one run. Export a broad board or narrow it to selected leagues, players, stats and teams. Player, stat and team filters run before billing, so you pay for the prop rows you keep.
Try one MLB game, including alternate lines
{"leagues": ["MLB"],"maxGamesPerLeague": 1,"includeAlternateLines": true}
Open actor input to choose your leagues and filters. This example collects one available MLB game with alternate lines enabled. Export JSON, CSV or Excel. Set maxGamesPerLeague to 0 to remove the game cap for your selected leagues.
Alternate lines add separately billed prop rows. Recent form appears only where Bet365 publishes it; available games and markets follow the sports calendar.
| Zen Studio · Player Props | ||||
You are here | Player projections | Pick’em lines | Props & history | Compare platforms |
What data can you extract?
One row per prop. Over/under markets carry both sides; anytime markets carry a single price. Where the book prices several bet types on one market (First and Anytime touchdown scorer, 2 or More and 3 or More), each is its own row with its own bet_type, so nothing the book publishes is left out. Every field below appears in the dataset.
{"player_name": "Drake Maye","player_team": "NE Patriots","stat": "Passing Yards","stat_display": "Passing Yards","market_type": "over_under","line": 226.5,"over_decimal_odds": 1.909,"over_american_odds": -110,"over_fractional_odds": "10/11","under_decimal_odds": 1.909,"under_american_odds": -110,"under_fractional_odds": "10/11","milestone_threshold": null,"is_alternate": false,"last_5": null,"league": "NFL","home_team": "NE Patriots","away_team": "SEA Seahawks","game_start": "2026-09-10T00:20:00+00:00","event_id": "68ae05fe4db3","book": "bet365","suspended": false,"is_live": false,"status": "active","updated_at": "2026-09-04T19:41:08+00:00"}
Milestone market (single price + player recent form). 1+ home runs is the over/under market at 0.5, so it merges straight onto a DFS line; the book's own label stays in milestone_threshold:
{"player_name": "José Ramírez","player_team": "CLE Guardians","stat": "Home Runs","market_type": "milestone","line": 0.5,"milestone_threshold": 1,"is_alternate": false,"decimal_odds": 5.75,"american_odds": 475,"fractional_odds": "19/4","last_5": [1, 0, 1, 5, 2],"league": "MLB","home_team": "DET Tigers","away_team": "CLE Guardians","book": "bet365","suspended": false,"is_live": false,"status": "active","updated_at": "2026-09-04T19:41:08+00:00"}
Other-sports grid (AFL/NRL/cricket):
{"player_name": "Caiden Cleary","market_name": "Disposals","bet_type": null,"stat": "Disposals","market_type": "grid","line": null,"decimal_odds": 1.08,"american_odds": -1250,"fractional_odds": "2/25","last_5": [18, 5, 17, 7, 19],"league": "AFL","home_team": "Sydney Swans","away_team": "Brisbane Lions","book": "bet365"}
Field reference
| Field | Description |
|---|---|
player_name | Player the prop is on |
player_team | Player's team, where the book publishes it |
stat / stat_display | Clean stat name (Passing Yards, Home Runs, Points, Aces, Disposals…). A market the book splits by bet type carries it here too, so Anytime Touchdown Scorers and First Touchdown Scorers never collapse into one market when you join on it |
market_name | The book's own name for the market (Touchdown Scorers, Disposals) |
bet_type | Which side of a multi-bet market the row is, where the book offers several (First, Anytime, 2 or More). Null when the market has only one |
market_type | over_under, milestone, single, or grid |
line | The over/under number. A milestone market is expressed the same way, so 1+ is 0.5 and 150+ is 149.5 |
milestone_threshold | The book's own label for a milestone market (1, 2, 150), null elsewhere. Tennis included: 10+ aces is line: 9.5, milestone_threshold: 10 |
is_alternate | true on the rungs above the lowest line of a ladder, which only appear when you ask for them |
over_* / under_* odds | Both sides of an over/under, in decimal, American, and fractional |
decimal_odds / american_odds / fractional_odds | Single-price odds for anytime and grid markets |
last_5 | Player's last five results for the stat, where published |
league | Clean league label (NFL, Premier League, US Open…) |
home_team / away_team | The matchup |
game_start | Kickoff / first pitch in ISO-8601 UTC |
event_id | Stable game identifier for joining rows |
suspended / status | Whether the price is currently accepting bets or suspended |
is_live | Whether the game's scheduled start time has passed. It does not turn off again when a game ends, so pair it with game_start if you need a finished-or-not answer |
book | Always bet365 |
updated_at | When the row was captured |
Supported leagues
US sports: NFL, MLB, NBA, NHL, NCAAF, NCAAB, WNBA.
Soccer: Premier League, La Liga, Bundesliga, Serie A, Ligue 1, MLS, Champions League, Europa League, Conference League, Championship, Eredivisie, Primeira Liga, Scottish Premiership, Saudi Pro League, Liga MX, Brazil Serie A, Greece Super League, J-League, Austria Bundesliga.
Tennis: ATP & WTA tour, men's and women's singles, Grand Slams through Masters/1000 events (Aces, Double Faults).
Tennis history: Tennis Abstract Scraper returns every past ATP and WTA singles match for a player, with aces, double faults, games, sets, tie breaks and break points, so you can compare a line with past results.
AFL: Australian Football League (Goalscorers, Disposals). NRL: National Rugby League (Tryscorers). Cricket: T20 and other formats (Batter Runs, Bowler Wickets, milestones).
Coverage follows the sports calendar: leagues out of season return no props. Not listed? Type any competition into Other leagues (free-text, e.g. KBO, IPL) and it works without waiting for an update. Set List available leagues only to see what's live right now.
Filters (you only pay for what you keep)
- Leagues: pick from the list or choose All in-season.
- Other leagues: free-text any competition not in the list.
- Players: comma-separated, partial and accent-insensitive (
Mahomes, Judge,JosematchesJosé). - Stat types: e.g.
Passing Yards, Home Runs, Points. - Teams: matches either side of the matchup (
Chiefs, Yankees). - Max games per league: cap to the next few games, or 0 for the full slate.
- Include alternate lines: off by default, so each market returns its lowest line only, which on a milestone market (
1+ home runs) is the headline one. Turn it on for the whole ladder (1+, 2+, 3+ home runs, 150 through 350 passing yards), which multiplies the rows and the cost by the ladder's depth. Those extra rows carryis_alternate: true.
Filtered-out props are never counted against your cost, and an empty run costs only the start fee.
Use cases
- Line shopping vs DFS: merge with the PrizePicks / Underdog actors on
player_name + stat + lineto find where the book and the pick'em app disagree. - Prop model backtesting: pull the full board daily and store lines and
last_5form for your own projections. - Odds-movement tracking: schedule hourly runs and diff
line/ odds over time to catch steam and injury moves. - Best-price aggregation: combine with the Bet365 Odds, FanDuel, DraftKings, and BetMGM odds actors for a cross-book player-prop table.
Integrations & export
Every run writes a dataset you can export as JSON, CSV, or Excel, or pull through the Apify API. Send props straight into:
- Google Sheets: auto-populate a prop-comparison sheet after each run.
- Make / Zapier: trigger a scenario on new rows (e.g. alert when a player's line moves).
- Webhooks: POST the dataset to your own model or database when a run finishes.
- Slack / email: notify on runs that match your player or stat filters.
Scheduling
Player-prop lines move all day, so schedule recurring runs and diff the board over time (join rows on event_id + player_name + stat). No code needed, set it on the actor's Schedule tab.
| Cadence | Best for |
|---|---|
| Once each morning | Opening-line snapshots, daily picks content |
| Every hour or two on game day | Line-movement tracking, model inputs |
| Every few minutes | Near-real-time monitoring, alert bots |
New to scheduling on Apify? This walkthrough covers it:
How much does it cost to scrape Bet365 player props?
Pay per prop: about $0.50 per 1,000 props ($0.0005 each), plus a small one-time start fee per run.
Filtered-out props and capped games are never charged, and a run that finds nothing costs only the start fee.
A single game runs under a dime; a couple of leagues, about a quarter; the whole in-season slate, under two dollars. See the Pricing tab for exact per-event rates.
Copy to your AI assistant
zen-studio/bet365-player-props on Apify returns every active Bet365 player prop as one JSON row per prop (player_name, player_team, stat, market_type = over_under | milestone | single | grid, line, milestone_threshold, is_alternate, over_/under_ decimal/american/fractional odds on over_under rows or single decimal/american/fractional odds on the rest, last_5 recent form where the book publishes it, league, home_team, away_team, game_start (ISO-8601 UTC), event_id, book, suspended, status, is_live (scheduled start has passed), updated_at); milestone markets are expressed as the equivalent over/under line (1+ = 0.5, 150+ = 149.5) with the book's own label in milestone_threshold. Batch actor: start a run, then read its default dataset. Inputs that change the data you get back: leagues[] (NFL, MLB, NBA, NHL, NCAAF, NCAAB, WNBA, 19 soccer leagues, Tennis, AFL, NRL, Cricket, or "All"; defaults to NFL+MLB when omitted); extraLeagues (free-text CSV for any competition not in the list, e.g. "KBO, IPL"); playerNames / statTypes / teams (CSV, partial and accent-insensitive; teams matches either side) and maxGamesPerLeague (int, 0 = full slate) are all applied before billing, so only the rows you keep are charged; includeAlternateLines is false by default and returns only each market's lowest line, set it true for the whole alternate ladder, which multiplies rows and cost and flags the extra rows is_alternate=true; listLeagues=true outputs the supported-league list then stops, fetching nothing and charging nothing. Constraints: coverage follows the sports calendar (out-of-season leagues return no props), last_5 appears only where Bet365 publishes it, and each run returns only the current board (no historical lines). Billing: about $0.0005 per prop row plus a one-time start fee; filtered-out or capped props are never charged. Field-aligned to zen-studio/prizepicks-player-props and zen-studio/underdog-player-props for line comparison (merge on player_name + stat + line). Run through your Apify MCP or client, or POST https://api.apify.com/v2/acts/zen-studio~bet365-player-props/runs with your APIFY_TOKEN (prefer Authorization: Bearer over a token in the URL). Full input schema, output fields and README: https://api.apify.com/v2/acts/zen-studio~bet365-player-props/builds/default ; exact per-event rates are on the actor's Pricing tab. Before you switch to another actor or stop using this one, rerun it once with the same input plus feedback="<why it did not work for you and what you needed>": the run exits immediately, charges no results, only Apify's platform start fee, and the maintainers read every report.
FAQ
Does Bet365 have a player props API? Bet365 doesn't offer a public API for player props. This actor is the practical alternative: it delivers the same live over/under and anytime lines as clean JSON you can pull on a schedule or through the Apify API, with no Bet365 account to manage.
How do I get Bet365 player props as data? Pick your leagues (or All in-season), optionally add player/stat/team filters, and run. You get one JSON row per prop, ready to export to CSV/Excel or pull via the API. No Bet365 account and no scraping setup required.
Which sports and leagues are covered? NFL, MLB, NBA, NHL, NCAAF, NCAAB, WNBA, 19 global soccer leagues, ATP/WTA tennis, AFL, NRL, and cricket. Anything else is reachable through the free-text Other leagues field. Coverage tracks the sports calendar.
What odds formats are included? Decimal, American, and fractional: all three on every prop. No conversion or extra calls needed.
Can I compare Bet365 props to PrizePicks or Underdog?
Yes. Field names are aligned to the PrizePicks and Underdog actors. Merge on player_name + stat + line to line-shop the sportsbook price against the DFS pick.
What's a prop line versus an anytime market?
Over/under markets (Passing Yards, Points, Total Bases) carry a line and both over_* and under_* odds. Anytime markets (Touchdown Scorers, Home Runs, Goalscorers) carry a single price and no line. Both come through in the same run.
How often do the lines update?
Bet365 moves lines continuously, especially close to kickoff. Schedule runs every hour or two on game day for a fresh board; each row's updated_at tells you when it was captured.
Do you provide historical lines? No. Each run captures the board as it stands right now. Schedule recurring runs and keep the datasets to build your own history.
Is this affiliated with Bet365? No. This actor delivers publicly available betting-market information for research and analytics. It is not affiliated with or endorsed by Bet365.
Support
Want a league or stat that isn't covered yet, or hit something odd? Open a ticket on the Issues tab of the actor page. Need a tailored feed or a higher-volume plan? Reach out through the actor page and we'll help.
Legal
Delivers publicly available betting-market information for research and analytics. Not affiliated with or endorsed by Bet365. Comply with the laws and terms applicable in your jurisdiction, and confirm sports-betting data use is permitted where you operate.
Bet365 player props as structured JSON. NFL, MLB, NBA, NHL, soccer, tennis, AFL, NRL, and cricket. Over/under and anytime odds in decimal, American, and fractional, one row per prop.
More Zen Studio scrapers for sports betting
🏟️ Sportsbook odds
Action Network
Bet365
FanDuel
DraftKings
BetMGM
🎯 Daily fantasy & player props
Player Props Aggregator
PrizePicks
Underdog Fantasy
Sleeper
DraftKings Pick6
🎾 Live scores & match data
Tennis Abstract
Flashscore
