Bet365 Sports Data Scraper - Scores, Fixtures, Stats, Odds avatar

Bet365 Sports Data Scraper - Scores, Fixtures, Stats, Odds

Pricing

from $2.99 / 1,000 results

Go to Apify Store
Bet365 Sports Data Scraper - Scores, Fixtures, Stats, Odds

Bet365 Sports Data Scraper - Scores, Fixtures, Stats, Odds

Extract scores, fixtures, player box scores and stats, lineups, xG, transfers, and 1X2 odds from Bet365. 16 actions across 9 sports and 2600+ competitions. Team and player names auto-resolved, no IDs needed. Up to 46 stat types per match, odds in 3 formats, full season history. Free to try.

Pricing

from $2.99 / 1,000 results

Rating

0.0

(0)

Developer

Zen Studio

Zen Studio

Maintained by Community

Actor stats

2

Bookmarked

185

Total users

34

Monthly active users

2 days ago

Last modified

Share

Full-season data. Up to 46 match stats. xG. Lineups. Injuries. Transfer fees.

From Zen Studio, creators of Bet365 Odds, Bet365 Player Props and Flashscore Tennis. Sports data, match analysis and betting research from the same team.

Why choose Bet365 Sports Data?

  • Build a season dataset, not just today's scoreboard. Collect full-season fixtures and results, then explore team schedules and player game histories. Choose the current season or available previous seasons, across 9 sports.
  • Go deeper into each match. Football match detail supports up to 46 stat types, including expected goals (xG), possession and detailed passing. Collect lineups, player heatmaps, missing-player reasons, match events, standings and venue details where published.
  • Add the player and transfer picture. Player profiles include market value, career stats and injury status with an expected return where available. Transfer records add fees, currencies, previous and new clubs, and linked news articles. Search teams and players by name.

Explore sports data

Preview a Premier League season

{
"action": "fixtures",
"competitionIds": "premier-league",
"season": "Last season",
"maxResults": 20
}

Open actor input to choose a competition and season. This starts with 20 fixtures. Raise maxResults to cover the available season schedule. Export JSON, CSV or Excel.

For the detailed stats and lineups, choose gameDetail and pass gameId values from the fixture output in gameIds. Choose playerProfile for player and injury details, or transfers for transfer fees. Each action collects its own dataset; fixture rows do not include all these extras.

Historical coverage and optional fields vary by sport and competition. Free Apify accounts can try 5 lifetime runs, up to 50 results each.

Zen Studio · Sports Data
Sports Data Sports Data
You are here
Bet365 Odds Bet365 Odds
Match odds & futures
Live Scores Live Scores
Scores & periods
Player Props Player Props
Lines & last 5
Flashscore Flashscore
Tennis stats & odds

Copy to your AI assistant

Help me use zen-studio/bet365-sports-data, a batch Actor on Apify. Read https://apify.com/zen-studio/bet365-sports-data.md for documentation, input schema, pricing and limits. Choose settings for my requested outcome. If you cannot retrieve the page, ask me to paste the relevant sections. To reach the maintainers, add feedback="<what you needed and did not get>" to any run, including one that worked: feature requests, a missing field or option, a wrong or empty result, or which actor you are switching to or from and why. The run returns its data exactly as it would without the note, and a human reads every note.

Key inputs: action (string, required), competitionIds (string), gameIds (array). Pricing: $2.99/1k results, item-scraped $0.00299/item.

Also available as an MCP server: add zen-studio/bet365-sports-data for natural language access.

 

Output Example

Bet365 Sports Data Scraper: Champions League gameDetail with events, lineups, statistics, and venue

 

Use Cases

  • Full season match data: all 380 Premier League games or 850 NBA games for the current season; switch to "Last season" / "2 seasons ago" for history (football leagues have up to 3 seasons).
  • Cheap recurring refresh: scores with startDateFrom/startDateTo pulls just the next two weeks of a league (~20 items vs a full 380-game season) to catch postponements, kickoff changes and results.
  • Player game logs: game-by-game stats for any player. Football: goals, assists, minutes, clean sheets. Basketball: full box scores (points, rebounds, assists, FG%, 3PT, blocks, steals).
  • Squad rankings: rank a team's players by goals, xG, assists, tackles, clean sheets, or any of 12 stat types within a competition.
  • Betting analysis: 1X2 odds with opening and current prices, head-to-head trends, and daily tips with tipster ROI and win rates.
  • Multi-sport coverage: football, basketball, tennis, hockey, American football, baseball, rugby, handball, volleyball. 2600+ competitions from Premier League to NBA to ATP.
  • Transfer tracker: latest player transfers with fees and cited news, filtered by competition.

 

Actions

Scores & Games

ActionDescriptionRequired Input
scoresGames by competition (paginated; supports historical pulls and a startDateFrom/startDateTo date window)competitionIds
fixturesFull season fixtures with resultscompetitionIds
gameDetailComplete game data: events, lineups, per-sport stats (up to 46 for football), player box scores, venue, officialsgameIds
boxScoresOne row per player per finished game: points, rebounds and assists, passing and rushing yards, hits and strikeouts, saves, football goals, shots and cards, and more. Built for settling player propscompetitionIds or gameIds
teamGamesTeam's recent and upcoming matchescompetitorId

Players

ActionDescriptionRequired Input
playerProfilePlayer profiles with market value, career stats, injury status, photo (batch supported)athleteIds
playerGamesPlayer match history with per-game statsathleteIds (first)
squadStatsSquad ranked by one or more stat types (goals, xG, assists, cards, etc.)competitorId, competitionIds (first), statType or statTypes
teamStatsTeam player stats overview across all stat categoriescompetitorId

Discovery

ActionDescriptionRequired Input
popularTop entities for a sport. Football: athletes, teams & competitions; other sports: top competitionssportType
searchFind players, teams, and competitions by namesearchQuery
competitionsFull competition catalog (2600+)sportType
transfersRecent player transfers with fees and newscompetitionIds (first)

Betting

ActionDescriptionRequired Input
odds1X2 match odds from Bet365 (decimal, fractional, American)competitionIds
trendsBetting trends and head-to-head insights with recommendationsgameIds (first)
dailyTipDaily betting tips: recommendation, odds (3 formats), outcome, linked game, plus the tipster's win rate and ROINone

 

Example Inputs

Premier League scores (last 50 games):

{ "action": "scores", "competitionIds": "premier-league", "maxResults": 50 }

Several competitions, just the next two weeks:

{ "action": "scores", "competitionIds": "premier-league, champions-league, bundesliga", "startDateFrom": "2026-06-25", "startDateTo": "2026-07-09" }

Yesterday's NBA box scores, one row per player:

{ "action": "boxScores", "competitionIds": "nba", "startDateFrom": "2026-10-10", "startDateTo": "2026-10-10" }

Player profiles by name (batch):

{ "action": "playerProfile", "athleteIds": ["Mbappe", "Haaland", "Salah"] }

Real Madrid squad ranked by several stats at once:

{ "action": "squadStats", "competitorId": "Real Madrid", "competitionIds": "laliga", "statTypes": ["Goals", "Assists", "Expected Goals (xG)"] }

Full game detail:

{ "action": "gameDetail", "gameIds": ["4679449"] }

Top football competitions (one cheap call):

{ "action": "popular", "sportType": "Football", "entityTypes": ["competition"] }

 

Output

Every action is documented below, and the complete field set always lands in your dataset: the examples show representative shapes, not the full set.

ActionReturns (key fields)
scores / fixtures / teamGamesgameId, teams (+ logos, codes, ids), score, halftime, periodScores, status, minute, result, venue, attendance, fanVote, odds (optional), dataAvailability, webUrl
gameDetaileverything in scores plus events, lineups (formations + players), per-sport statistics (up to 46 football), venue, officials, coaches, missingPlayers, standings, headToHead, topPerformers, videos, series
playerProfilename, age, sport, nationality, country of birth, club, position, height/weight, marketValue, injuryStatus, seasonStats (per competition and team, with phase such as Regular Season), careerStats (the summary entry as published), photo
playerGamesper-game line: teams, the player's team, score, competition, season, minutes + every sport stat under its published name (hockey, American football and baseball included), didNotPlayReason
squadStatsranked players: name, team, country, plus each requested stat (Goals / xG / Assists / …)
teamStatstop players per stat category across the squad, with the competition
searchathletes / teams / competitions by name, with resolved countryName / sportName, market value, popularity
populartop athletes / teams / competitions for a sport, resolved names + season metadata
competitionscatalog: name, slug, countryName, sport, gender, season dates, popularity
transfersplayer, from/to teams, fee + currency, formation position, news articles, likes
odds1X2 odds per game (decimal / fractional / American, opening + current)
trendsper-team betting trends with recommendations + structured betLines
dailyTiptipster picks: recommendation, odds (3 formats), outcome (won or lost), linked game and competition, win rate, ROI, tips, wins, losses, voids, units

Match data (scores, fixtures, teamGames)

{
"gameId": 4452851,
"sportType": "Football",
"competition": "Premier League",
"competitionId": 7,
"season": 131,
"startTime": "2026-03-14T15:00:00Z",
"status": "finished",
"homeTeam": "Sunderland",
"homeTeamId": 117,
"homeTeamCode": "SUN",
"homeTeamLogo": "https://cdn.example.com/.../Competitors/117",
"awayTeam": "Brighton",
"awayTeamCode": "BHA",
"homeScore": 0,
"awayScore": 1,
"homeHalftimeScore": 0,
"awayHalftimeScore": 0,
"result": "away",
"attendance": 45497,
"venue": { "id": 9007, "name": "Stadium of Light" },
"dataAvailability": { "lineups": true, "statistics": true, "standings": true, "odds": true },
"fanVote": { "home": 3603, "draw": 1629, "away": 3021 },
"odds": {
"bookmaker": "Bet365", "settled": true,
"homeWinOdds": 3.5, "homeWinFractional": "5/2", "homeWinAmerican": "+250", "homeWinOpeningOdds": 3.3,
"drawOdds": 3.6, "awayWinOdds": 2.05, "awayWinWon": true
}
}

Add "includeOdds": true to attach the odds block to every game. The standalone odds action returns the same odds block per game.

Per-period scores: every sport

Each match row carries periodScores (per-set / per-quarter / per-period, with the winner). homeHalftimeScore/awayHalftimeScore are football-only; individual sports also include homeRanking/awayRanking and recent form.

// Tennis (sets, with a set-2 tie-break)
"periodScores": [
{ "name": "Set 1", "shortName": "S1", "home": 3, "away": 6, "winner": "away" },
{ "name": "Set 2", "shortName": "S2", "home": 7, "away": 6, "winner": "home", "tieBreak": { "home": 7, "away": 2 } },
{ "name": "Set 3", "shortName": "S3", "home": 5, "away": 7, "winner": "away" }
]
// Basketball (quarters): Q1 23-22, Q2 31-39, Q3 25-26, Q4 22-28

Player box scores (boxScores)

One row per player per finished game. Basketball, ice hockey, baseball and American football carry the full box score; a stat from a named table is prefixed with it (Passing / Passing Yards, and Batting / Strikeouts next to Pitching / Strikeouts). Football rows carry the player's match stats: minutes, goals, assists, shots and shots on target, passes, tackles, duels, expected goals, yellow and red cards, and more. A count the player did not record (shots on target, tackles) is left out: read it as 0. A player listed with empty stats did not play, and that row is free.

{
"gameId": 4814039,
"competition": "NBA",
"homeTeam": "Chicago Bulls",
"awayTeam": "Phoenix Suns",
"teamName": "Chicago Bulls",
"player": "Caleb Wilson",
"athleteId": 225955,
"group": "Starters",
"stats": {"Minutes": "29:06", "Points": 15, "Rebounds": 4, "Assists": 2, "Field Goals": "6/16", "3 Pointers": "0/4", "Plus/Minus": -3}
}

A football row, from the same action on the Premier League:

{
"gameId": 4742051,
"competition": "Premier League",
"homeTeam": "Arsenal",
"awayTeam": "Leeds United",
"teamName": "Arsenal",
"player": "Riccardo Calafiori",
"athleteId": 79301,
"group": "Starters",
"stats": {"Minutes": 81, "Goals": 1, "Assists": 0, "Total Shots": 2, "Shots On Target": 1, "Passes Completed": "20/24 (83%)", "Expected Goals": 0.55, "Yellow Cards": 0, "Red Cards": 0}
}

gameDetail carries the same numbers per game under boxScore, table by table, with team totals.

Game detail (gameDetail)

{
"gameId": 4679449,
"competition": "UEFA Champions League",
"homeTeam": "FC Barcelona",
"awayTeam": "Newcastle United",
"homeScore": 7, "awayScore": 2,
"status": "finished", "result": "home",
"aggregateScore": [8.0, 3.0],
"events": [
{ "type": "Goal", "subType": "Open Play", "minute": 6.0, "minuteDisplay": "6'", "player": "Raphinha", "team": "home", "assistPlayers": ["Fermín López"] }
// ... every goal and card
],
"lineups": {
"home": { "formation": "4-2-3-1", "players": [ { "name": "Joan García", "jerseyNumber": 13, "position": 1, "isStarter": false, "age": 24, "rating": 6.1 } /* 23 per team */ ] },
"away": { "formation": "4-3-3", "players": [ /* ... */ ] }
},
"statistics": {
"possession": { "home": "64%", "away": "36%", "homePct": 0.64, "awayPct": 0.36 },
"totalShots": { "home": "22", "away": "7" },
"expectedGoals": { "home": "4.85", "away": "1.40" },
"expectedAssists": { "home": "3.90", "away": "1.10" },
"bigChancesCreated": { "home": "9", "away": "2" },
"passesCompleted": { "home": "612", "away": "320" }
// ... up to 46 football stat types
},
"venue": { "id": 122, "name": "Spotify Camp Nou", "country": "Spain", "capacity": 105000, "surface": "grass", "location": { "lat": 2.12, "lng": 41.38 } },
"officials": [{ "name": "Francois Letexier", "role": "Referee" }],
"coaches": [{ "name": "Hans-Dieter Flick", "team": "home" }],
"missingPlayers": [{ "name": "Jules Koundé", "team": "home", "reason": "Thigh injury" }],
"standings": [ /* full table: position, played, won/draw/lost, GF/GA, points */ ]
}

statistics keys are labeled per sport. Football is shown above; basketball returns shooting splits, rebounds, fast-break and points-in-the-paint; tennis returns serve/return splits and winners / unforced errors by shot type; ice hockey, volleyball and rugby are labeled too. Any stat without a name is returned as stat<N>, so nothing is dropped.

Player profile (playerProfile)

{
"athleteId": 39789,
"name": "Raphinha",
"age": 29,
"nationality": "Brazil",
"club": "FC Barcelona",
"position": "Attacker",
"marketValue": 85000000,
"marketValueCurrency": "EUR",
"nationalTeamId": 2379,
"injuryStatus": { "injuryType": "Hamstring Injury", "expectedReturn": "Early July 2026" },
"seasonStats": [
{ "competition": "LaLiga", "competitionId": 11, "Goals": "11", "Assists": "3", "Appearances": "19", "Time Played": "1210" }
// ... more competitions (club + national team kept separately)
],
"careerStats": { "Goals": "120", "Assists": "75" },
"popularityRank": 175
}

Transfers (transfers)

{
"transferId": 354519,
"playerName": "Raúl Jiménez",
"formationPosition": "Centre Forward",
"playerCountry": "Mexico",
"origin": "Fulham",
"target": "Everton",
"time": "2026-03-21T19:38:00Z",
"price": "Terms Agreed",
"priceValue": 0,
"priceCurrency": "GBP",
"likes": 10857,
"dislikes": 4543,
"articles": [
{ "source": "Fabrizio Romano", "url": "https://x.com/FabrizioRomano/status/...", "publishTime": "2026-06-09T09:19:00Z" }
],
"status": "Rumor"
}
{
"category": "Team Trends",
"competitors": ["Barcelona"],
"text": "Barcelona won - 5/6 Last Matches",
"recommendation": "Barcelona to win",
"recommendations": ["Barcelona to win"],
"betLines": [{ "recommendation": "Barcelona to win", "lineTypeId": 1, "param": null, "optionNum": 1, "competitorId": 104 }],
"gameId": 4679449, "homeTeam": "Barcelona", "awayTeam": "Newcastle Utd"
}

 

Quick Reference

Competition Slugs

Use these in competitionIds. Comma-separate for multiple.

SlugCompetitionSlugCompetition
premier-leaguePremier Leaguechampions-leagueUEFA Champions League
laligaLaLigaeuropa-leagueUEFA Europa League
bundesligaBundesligafa-cupFA Cup
serie-aSerie Acopa-del-reyCopa del Rey
ligue-1Ligue 1nbaNBA
nflNFLnhlNHL

70+ slugs built in. Run the competitions action to discover all 2600+.

Teams and Players

Type names directly, no IDs needed:

  • Teams: "Real Madrid", "Arsenal", "Inter Miami": auto-resolved (football teams prioritized)
  • Players: "Mbappe", "Haaland", "Salah": auto-resolved to the best match
  • Numeric IDs also accepted

 

Input Reference

FieldTypeUsed ByDescription
actionenumAllWhich action to run (required)
competitionIdsstringscores, fixtures, odds (all), squadStats, transfers (first)Competition slugs, comma-separated. E.g. premier-league, champions-league
seasonenumfixturesCurrent season, Last season, or 2 seasons ago
startDateFromstringscoresOnly games on/after this date (YYYY-MM-DD). Cheap date-window refresh instead of a full season.
startDateTostringscoresOnly games on/before this date (YYYY-MM-DD). Up to a 30-day range; set just one bound for a 14-day window.
gameIdsstring[]gameDetail (all), trends (first)Game IDs (from scores or fixtures output)
competitorIdstringteamGames, squadStats, teamStatsTeam name or ID. E.g. Real Madrid or 131
athleteIdsstring[]playerProfile (all), playerGames (first)Player names or IDs. E.g. ["Mbappe", "Haaland"]
statTypeenumsquadStatsGoals, Assists, Expected Goals (xG), Rating, etc.
statTypesstring[]squadStatsSeveral stats at once (e.g. Goals, Assists, xG), all returned per player in one run. Overrides statType.
searchQuerystringsearchSearch by name (teams, competitions)
sportTypeenumpopular, competitionsFootball, Basketball, Tennis, etc.
entityTypesarraypopularLimit to athlete, team, competition. Empty = all. E.g. ["competition"] for top leagues.
maxResultsintAllMax items to return (default: 500)
includeOddsboolscores, teamGamesAdd Bet365 1X2 odds
languageenumAllEnglish, Deutsch, Español, Français, etc.

 


Pricing

Pay per dataset item. No subscriptions. $2.99 per 1,000 results. Free to try: the first 5 runs are free (up to 50 results each). In boxScores, rows for players who did not play are free.

Use CaseItemsCost
Full EPL season fixtures380$1.14
3 player profiles3$0.01
50 historical EPL scores50$0.15
Squad goals ranking (LaLiga team)~20$0.06
Popular competitions (Basketball, Tennis, etc.)20$0.06
One NBA night's box scores (4 games)146 rows, 124 who played$0.37

Billing is per result, so the rich extra fields (per-sport stats, resolved names, venues, trends) don't add to your cost.


 

FAQ

Do I need to know any IDs? No. Competitions use slugs (premier-league), teams and players accept names (Real Madrid, Mbappe), and sports/stats are dropdowns. Country, team and source come back as resolved names too. Only game IDs (from scores output) are numeric, since games have no names.

Can I pull historical data? Yes. scores paginates backwards through history (set maxResults: 5000 for multiple seasons), and fixtures returns the full current season in one call. Use startDateFrom/startDateTo for a cheap date window.

What's the difference between this and the Live Scores actor? This actor is for batch pulls: historical data, player profiles, transfers, full seasons. The Live Scores actor is a real-time Standby API for polling live games every 30-60 seconds.

What sports are covered? Football (813 competitions), Basketball (215), Tennis (1105), Hockey (47), Handball (38), American Football (15), Baseball (24), Volleyball (323), Rugby (35).

 

More Zen Studio scrapers for sports betting

🏟️ Sportsbook odds

🎯 Daily fantasy & player props

  • Player Props Aggregator
    • Player Props Line Shopping (zen-studio/player-props-aggregator)
  • PrizePicks
    • PrizePicks Player Props Scraper (zen-studio/prizepicks-player-props)
  • Underdog Fantasy
    • Underdog Fantasy Player Props API (zen-studio/underdog-player-props)
  • Sleeper
    • Sleeper Player Props (zen-studio/sleeper-player-props)
  • DraftKings Pick6
    • DraftKings Pick6 Player Props (zen-studio/draftkings-pick6-player-props)
  • Bet365
    • Bet365 Player Props API (zen-studio/bet365-player-props)

🎾 Live scores & match data

  • Tennis Abstract scraper icon Tennis Abstract
    • Tennis Abstract Scraper (zen-studio/tennis-abstract-scraper)
  • Flashscore
    • Flashscore Tennis Scraper & API (zen-studio/flashscore-tennis-api)
  • SofaScore scraper icon SofaScore

Support

Bug reports, feature requests, or questions? Open an issue in the Issues tab.


16 actions. 9 sports. 2600+ competitions. Scores, players, stats, transfers, odds, trends.