# Bet365 Sports Data Scraper | Scores, Players, Stats, Odds (`zen-studio/bet365-sports-data`) Actor

Extract scores, fixtures, player profiles, match stats, lineups, transfers, and betting odds from Bet365. 15 actions across 13 sports and 2600+ competitions. Team and player names auto-resolved. Squad rankings, historical scores, 1X2 odds in three formats.

- **URL**: https://apify.com/zen-studio/bet365-sports-data.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Automation, Developer tools, Integrations
- **Stats:** 5 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Bet365 Sports Data Scraper | Scores, Players, Stats, Odds

<table>
<tr>
<td colspan="4" style="padding:10px 14px;background:#4C945E;border:none;border-radius:4px 4px 0 0">
<span style="color:#FAFAF9;font-size:14px;font-weight:700;letter-spacing:0.5px">Zen Studio Sports Betting</span>
<span style="color:#E8F5E9;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Real-time odds and scores across every major sportsbook</span>
</td>
</tr>
<tr>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;background:#E8F5E9;border-right:none;border-top:none;vertical-align:top;width:25%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-l6JP3yaLczAdUaiSf-yDHq17ycGp-bet365-icon_lc6m4t.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/bet365-sports-data" style="color:#4C945E;text-decoration:none;font-weight:700;font-size:14px">Bet365 Data</a><br>
<span style="color:#4C945E;font-size:12px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:25%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-l6JP3yaLczAdUaiSf-yDHq17ycGp-bet365-icon_lc6m4t.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/bet365-real-time-odds" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Bet365 Odds</a><br>
<span style="color:#78716C;font-size:12px">39 sports, all markets</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:25%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-l6JP3yaLczAdUaiSf-yDHq17ycGp-bet365-icon_lc6m4t.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/bet365-live-scores" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Bet365 Scores</a><br>
<span style="color:#78716C;font-size:12px">13 sports, real-time</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:25%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/NWYsOG96fMDy8ycdf-actor-W8rOXiLSj8wrgF96k-PQehXxTEV5-draftkings-real-time-api-logo.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/draftkings-odds" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">DraftKings Odds</a><br>
<span style="color:#78716C;font-size:12px">Lines, props, SGP</span>
</td>
</tr>
</table>

&nbsp;

**Scores, fixtures, player profiles, match stats, lineups, transfers, betting trends, and more. 15 actions across 13 sports and 2600+ competitions.**

One actor for all sports data. Pull historical scores, full season fixtures, detailed match data with 42 stat types, player profiles with market values, squad rankings, transfers, and betting insights.

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start building with this API.

````

zen-studio/bet365-sports-data on Apify. Call: ApifyClient("TOKEN").actor("zen-studio/bet365-sports-data").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Key inputs: action (string, required), competitionIds (string), gameIds (array). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/zen-studio~bet365-sports-data/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: $2.99/1k results, item-scraped $0.00299/item. Get token: https://console.apify.com/account/integrations

````

Also available as an [MCP server](https://mcp.apify.com/) — add `zen-studio/bet365-sports-data` for natural language access.

&nbsp;

### Output Example

<table align="center" style="border:none;border-collapse:collapse;background:transparent;width:100%">
<tr>
<td align="center" style="border:none;padding:0">
<img src="https://iili.io/BBI6tun.gif" width="840" alt="Bet365 Sports Data Scraper — Champions League gameDetail with events, lineups, statistics, and venue"/>
</td>
</tr>
</table>

&nbsp;

### Use Cases

**Full season match data** — Pull all 380 Premier League games or 850 NBA games for the current season. Switch to "Last season" or "2 seasons ago" for historical data (football leagues have up to 3 seasons).

**Player game logs** — Game-by-game stats for any player. Football: goals, assists, minutes, clean sheets. Basketball: full box scores with 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** — Match odds (1X2) with opening and current prices, head-to-head trends, and daily tip agent track records with ROI and win rates.

**Multi-sport coverage** — 13 sports including 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, filtered by competition.

&nbsp;

### Actions

#### Scores & Games

| Action | Description | Required Input |
|--------|-------------|----------------|
| `scores` | Games by competition (paginated, supports historical pulls) | `competitionIds` |
| `fixtures` | Full season fixtures with results | `competitionIds` |
| `gameDetail` | Complete game data: events, lineups, 42 stat types, venue, officials | `gameIds` |
| `teamGames` | Team's recent and upcoming matches | `competitorId` |

#### Players

| Action | Description | Required Input |
|--------|-------------|----------------|
| `playerProfile` | Player profiles with market value, career stats, photo (batch supported) | `athleteIds` |
| `playerGames` | Player match history with per-game stats | `athleteIds` (first) |
| `squadStats` | Squad ranked by any stat type (goals, xG, assists, cards, etc.) | `competitorId`, `competitionIds` (first), `statType` |
| `teamStats` | Team player stats overview across all stat categories | `competitorId` |

#### Discovery

| Action | Description | Required Input |
|--------|-------------|----------------|
| `popular` | Popular athletes, teams, and competitions | `sportType` |
| `search` | Find players, teams, and competitions by name | `searchQuery` |
| `competitions` | Full competition catalog (2600+) | `sportType` |
| `transfers` | Recent player transfers with fees | `competitionIds` (first) |

#### Betting

| Action | Description | Required Input |
|--------|-------------|----------------|
| `odds` | 1X2 match odds from Bet365 (decimal, fractional, American) | `competitionIds` |
| `trends` | Betting trends and head-to-head insights with recommendations | `gameIds` (first) |
| `dailyTip` | Daily tip agent track records (win rate, ROI, units) | None |

&nbsp;

### Example Inputs

**Premier League scores (last 50 games):**
```json
{
  "action": "scores",
  "competitionIds": "premier-league",
  "maxResults": 50
}
````

**Multiple competitions at once:**

```json
{
  "action": "scores",
  "competitionIds": "premier-league, champions-league, bundesliga",
  "maxResults": 30
}
```

**Player profiles by name:**

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

**Real Madrid squad goal scorers in LaLiga:**

```json
{
  "action": "squadStats",
  "competitorId": "Real Madrid",
  "competitionIds": "laliga",
  "statType": "Goals"
}
```

**Player match history:**

```json
{
  "action": "playerGames",
  "athleteIds": ["Raphinha"],
  "maxResults": 20
}
```

**Betting trends for a game:**

```json
{
  "action": "trends",
  "gameIds": ["4679449"]
}
```

**Popular basketball players and teams:**

```json
{
  "action": "popular",
  "sportType": "Basketball"
}
```

 

### Output Examples

#### Scores (`scores`, `fixtures`, `teamGames`)

```json
{
  "gameId": 4452851,
  "sportType": "Football",
  "competition": "Premier League",
  "competitionId": 7,
  "season": 131,
  "round": 30,
  "roundName": "Round",
  "startTime": "2026-03-14T15:00:00Z",
  "status": "finished",
  "minute": 100,
  "progress": 100.0,
  "homeTeam": "Sunderland",
  "homeTeamId": 117,
  "homeTeamCode": "SUN",
  "homeTeamLogo": "https://cdn.example.com/.../Competitors/117",
  "awayTeam": "Brighton",
  "awayTeamId": 38,
  "awayTeamCode": "BHA",
  "awayTeamLogo": "https://cdn.example.com/.../Competitors/38",
  "homeScore": 0,
  "awayScore": 1,
  "homeHalftimeScore": 0,
  "awayHalftimeScore": 0,
  "result": "away",
  "attendance": 45497,
  "televised": false,
  "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
  }
}
```

#### Game Detail (`gameDetail`)

```json
{
  "gameId": 4679449,
  "competition": "UEFA Champions League",
  "homeTeam": "FC Barcelona",
  "awayTeam": "Newcastle United",
  "homeScore": 7,
  "awayScore": 2,
  "homeHalftimeScore": 3,
  "awayHalftimeScore": 2,
  "status": "finished",
  "result": "home",
  "attendance": 56662,
  "leg": 2,
  "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"] },
    { "type": "Goal", "subType": "Open Play", "minute": 15.0, "minuteDisplay": "15'", "player": "Anthony Elanga", "team": "away", "assistPlayers": ["Lewis Hall"] }
    // ... and 11 more events
  ],
  "lineups": {
    "home": {
      "formation": "4-2-3-1",
      "players": [
        { "name": "Joan García", "jerseyNumber": 13, "position": 1, "isStarter": false, "age": 24, "rating": 6.1 }
        // ... 23 players per team
      ]
    },
    "away": { "formation": "4-3-3", "players": [ /* ... */ ] }
  },
  "statistics": {
    "corners": { "home": "1", "away": "3", "homePct": 0.25, "awayPct": 0.75 },
    "shots": { "home": "18", "away": "8", "homePct": 0.69, "awayPct": 0.31 },
    "shotsOnTarget": { "home": "13", "away": "5" },
    "possession": { "home": "2", "away": "2" }
    // ... 42 stat types total
  },
  "venue": { "name": "Spotify Camp Nou", "capacity": 105000, "location": { "lat": 2.12, "lng": 41.38 } },
  "officials": [{ "name": "Francois Letexier", "role": "Referee" }],
  "coaches": [{ "name": "Hans-Dieter Flick", "team": "home" }, { "name": "Eddie Howe", "team": "away" }],
  "fanVote": { "home": 172862, "draw": 16238, "away": 43109 },
  "connectedGame": { "gameId": 4679448, "startTime": "2026-03-10T20:00:00Z", "homeTeam": "Newcastle Utd", "awayTeam": "Barcelona", "homeScore": 1, "awayScore": 1 },
  "qualifies": "home",
  "missingPlayers": [
    { "name": "Jules Koundé", "athleteId": 55138, "team": "home", "jerseyNumber": 23 }
    // ... more injured/suspended players
  ]
}
```

#### Player Profile (`playerProfile`)

```json
{
  "athleteId": 39789,
  "name": "Raphinha",
  "birthdate": "1996-12-14T00:00:00Z",
  "age": 29,
  "nationality": "Brazil",
  "club": "FC Barcelona",
  "clubId": 132,
  "position": "Attacker",
  "formationPosition": "Left Forward",
  "height": "1.76",
  "weight": "62 kg",
  "marketValue": 85000000,
  "marketValueCurrency": "EUR",
  "status": "Active",
  "photo": "https://cdn.example.com/.../Athletes/39789",
  "seasonStats": [
    {
      "competition": "LaLiga",
      "competitionId": 11,
      "Goals": "11",
      "Assists": "3",
      "Yellow Cards": "3",
      "Appearances": "19",
      "Lineups": "16",
      "Time Played": "1210",
      "Minutes Per Goal": "110"
    }
    // ... more competitions
  ],
  "popularityRank": 175
}
```

#### Search (`search`)

```json
[
  {
    "type": "athlete",
    "id": 76962,
    "name": "Florian Wirtz",
    "shortName": "Wirtz",
    "club": "Liverpool",
    "position": "Midfielder",
    "age": 22,
    "nationality": "Germany",
    "sport": 1
  },
  {
    "type": "team",
    "id": 132,
    "name": "FC Barcelona",
    "code": "BAR",
    "sport": 1,
    "mainCompetition": 11
  },
  {
    "type": "competition",
    "id": 7,
    "name": "Premier League",
    "slug": "premier-league",
    "sport": 1,
    "currentSeason": "2025/2026"
  }
]
```

#### Squad Stats (`squadStats`)

```json
[
  { "position": 1, "athleteId": 39820, "name": "Kylian Mbappe", "teamId": 131, "Goals": "23", "photo": "https://cdn.example.com/.../Athletes/39820" },
  { "position": 2, "athleteId": 48298, "name": "Vinicius Júnior", "teamId": 131, "Goals": "9" },
  { "position": 3, "athleteId": 73000, "name": "Jude Bellingham", "teamId": 131, "Goals": "4" }
  // ... full squad
]
```

#### Transfers (`transfers`)

```json
{
  "transferId": 354519,
  "playerName": "Raúl Jiménez",
  "athleteId": 23,
  "position": 4,
  "origin": "Fulham",
  "originId": 120,
  "target": "Everton",
  "targetId": 107,
  "time": "2026-03-21T19:38:00Z",
  "price": "Terms Agreed",
  "priceValue": 0,
  "status": "Rumor",
  "photo": "https://cdn.example.com/.../Athletes/23"
}
```

#### Odds (`odds`)

```json
{
  "gameId": 4452851,
  "competition": "Premier League",
  "startTime": "2026-03-14T15:00:00Z",
  "status": "finished",
  "homeTeam": "Sunderland",
  "homeTeamCode": "SUN",
  "awayTeam": "Brighton",
  "awayTeamCode": "BHA",
  "homeScore": 0,
  "awayScore": 1,
  "bookmaker": "Bet365",
  "settled": true,
  "homeWinOdds": 3.5,
  "homeWinFractional": "5/2",
  "homeWinAmerican": "+250",
  "homeWinOpeningOdds": 3.3,
  "drawOdds": 3.6,
  "awayWinOdds": 2.05,
  "awayWinWon": true
}
```

#### Betting Trends (`trends`)

```json
{
  "category": "Team Trends",
  "text": "Barcelona won - 5/6 Last Matches",
  "cause": "Barcelona won",
  "trendText": "5/6 Last Matches",
  "recommendation": "Barcelona to win",
  "gameId": 4679449,
  "homeTeam": "Barcelona",
  "awayTeam": "Newcastle Utd"
}
```

 

### Quick Reference

#### Competition Slugs

Use these in `competitionIds`. Comma-separate for multiple.

| Slug | Competition |
|------|-------------|
| `premier-league` | Premier League |
| `laliga` | LaLiga |
| `bundesliga` | Bundesliga |
| `serie-a` | Serie A |
| `ligue-1` | Ligue 1 |
| `champions-league` | UEFA Champions League |
| `europa-league` | UEFA Europa League |
| `fa-cup` | FA Cup |
| `copa-del-rey` | Copa del Rey |
| `nba` | NBA |
| `nfl` | NFL |
| `nhl` | NHL |

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

#### Teams and Players

Type names directly, no IDs needed:

- **Teams**: `"Real Madrid"`, `"Arsenal"`, `"Inter Miami"` — auto-resolved via search (football teams prioritized)
- **Players**: `"Mbappe"`, `"Haaland"`, `"Salah"` — auto-resolved to the best match
- Numeric IDs also accepted for backwards compatibility

 

### Input Reference

| Field | Type | Used By | Description |
|-------|------|---------|-------------|
| `action` | enum | All | Which action to run (required) |
| `competitionIds` | string | scores, fixtures, odds (all), squadStats, transfers (first) | Competition slugs, comma-separated. E.g. `premier-league, champions-league` |
| `season` | enum | fixtures | Current season, Last season, or 2 seasons ago |
| `gameIds` | string\[] | gameDetail (all), trends (first) | Game IDs (from `scores` or `fixtures` output) |
| `competitorId` | string | teamGames, squadStats, teamStats | Team name or ID. E.g. `Real Madrid` or `131` |
| `athleteIds` | string\[] | playerProfile (all), playerGames (first) | Player names or IDs. E.g. `["Mbappe", "Haaland"]` |
| `statType` | enum | squadStats | Goals, Assists, Expected Goals (xG), Rating, etc. |
| `searchQuery` | string | search | Search by name (teams, competitions) |
| `sportType` | enum | popular, competitions | Football, Basketball, Tennis, etc. |
| `maxResults` | int | All | Max items to return (default: 500) |
| `includeOdds` | bool | scores, teamGames | Add Bet365 1X2 odds |
| `language` | enum | All | English, Deutsch, Español, Français, etc. |

 

***

### Pricing

Pay per dataset item. No subscriptions.

**$2.99 per 1,000 results.**

#### Examples

| Use Case | Items | Cost |
|----------|-------|------|
| Full EPL season fixtures | 380 | $1.14 |
| 3 player profiles | 3 | $0.01 |
| 50 historical EPL scores | 50 | $0.15 |
| Squad goals ranking (LaLiga team) | ~20 | $0.06 |

***

 

### FAQ

**Do I need to know any IDs?**
No. Competitions use slugs (`premier-league`, `champions-league`). Teams and players accept names directly (`Real Madrid`, `Mbappe`), which are auto-resolved to IDs. Sports and stats are dropdown menus. Only game IDs (from `scores` output) are numeric, since games don't have names.

**Can I pull historical data?**
Yes. The `scores` action paginates backwards through history. Set `maxResults: 5000` to pull multiple seasons. The `fixtures` action returns the full current season in one call.

**Why are odds empty?**
Bet365 odds are included automatically when using the `odds` action or `includeOdds=true` on scores.

**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).

 

### Support

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

***

*15 actions. 13 sports. 2600+ competitions. Scores, players, stats, transfers, odds, trends.*

# Actor input Schema

## `action` (type: `string`):

What data to retrieve. Each action uses different fields below.<br><br><b>Scores & Games:</b> scores, fixtures, gameDetail, teamGames<br><b>Players:</b> playerProfile, playerGames, squadStats, teamStats<br><b>Discovery:</b> popular, search, competitions, transfers<br><b>Betting:</b> odds, trends, dailyTip

## `competitionIds` (type: `string`):

Competition slugs or IDs, comma-separated.<br><br><b>Used by:</b> scores, fixtures, odds (all values), squadStats, transfers (first value).<br><br><b>Examples:</b><br>• <code>premier-league</code><br>• <code>champions-league, bundesliga</code><br>• <code>nba</code>, <code>laliga</code><br><br>Run the <b>competitions</b> action to browse all 2600+ available slugs.

## `season` (type: `string`):

Which season to pull data for.<br><br><b>Used by:</b> fixtures, scores.<br><br>Football leagues typically have 3 seasons of data. Other sports may only have the current season.

## `gameIds` (type: `array`):

One or more numeric game IDs.<br><br><b>Used by:</b> gameDetail (all values), trends (first value).<br><br>Get game IDs from the <code>gameId</code> field in <b>scores</b> or <b>fixtures</b> output.

## `competitorId` (type: `string`):

Team name or numeric ID. Names are auto-resolved (football teams prioritized).<br><br><b>Used by:</b> teamGames, squadStats, teamStats.<br><br><b>Examples:</b> <code>Real Madrid</code>, <code>Barcelona</code>, <code>Liverpool</code>

## `athleteIds` (type: `array`):

Player names or numeric IDs. Names are auto-resolved to the best match.<br><br><b>Used by:</b> playerProfile (all values), playerGames (first value).<br><br><b>Examples:</b> <code>Mbappe</code>, <code>Haaland</code>, <code>39789</code>

## `statType` (type: `string`):

Stat to rank players by.<br><br><b>Used by:</b> squadStats.

## `searchQuery` (type: `string`):

Search for players, teams, and competitions by name.<br><br><b>Used by:</b> search.<br><br><b>Examples:</b> <code>Mbappe</code>, <code>Barcelona</code>, <code>Premier League</code>

## `sportType` (type: `string`):

Sport filter.<br><br><b>Used by:</b> popular, competitions.

## `maxResults` (type: `integer`):

Maximum items to return. Controls pagination depth for scores and caps output for all actions.

## `includeOdds` (type: `boolean`):

Add 1X2 odds (home/draw/away) with opening and current prices.<br><br><b>Used by:</b> scores, teamGames.

## `language` (type: `string`):

Language for team names, competition names, and labels.

## Actor input object example

```json
{
  "action": "scores",
  "competitionIds": "premier-league",
  "season": "Current season",
  "competitorId": "Real Madrid",
  "statType": "Goals",
  "searchQuery": "Barcelona",
  "sportType": "Football",
  "maxResults": 500,
  "includeOdds": false,
  "language": "English"
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "action": "scores",
    "competitionIds": "premier-league",
    "competitorId": "Real Madrid",
    "statType": "Goals",
    "searchQuery": "Barcelona",
    "sportType": "Football",
    "maxResults": 500,
    "language": "English"
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/bet365-sports-data").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "action": "scores",
    "competitionIds": "premier-league",
    "competitorId": "Real Madrid",
    "statType": "Goals",
    "searchQuery": "Barcelona",
    "sportType": "Football",
    "maxResults": 500,
    "language": "English",
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/bet365-sports-data").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "action": "scores",
  "competitionIds": "premier-league",
  "competitorId": "Real Madrid",
  "statType": "Goals",
  "searchQuery": "Barcelona",
  "sportType": "Football",
  "maxResults": 500,
  "language": "English"
}' |
apify call zen-studio/bet365-sports-data --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=zen-studio/bet365-sports-data",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bet365 Sports Data Scraper | Scores, Players, Stats, Odds",
        "description": "Extract scores, fixtures, player profiles, match stats, lineups, transfers, and betting odds from Bet365. 15 actions across 13 sports and 2600+ competitions. Team and player names auto-resolved. Squad rankings, historical scores, 1X2 odds in three formats.",
        "version": "0.0",
        "x-build-id": "dCgT3OMw9ja1T44na"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~bet365-sports-data/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-bet365-sports-data",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/zen-studio~bet365-sports-data/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-bet365-sports-data",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/zen-studio~bet365-sports-data/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-bet365-sports-data",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "action"
                ],
                "properties": {
                    "action": {
                        "title": "Action",
                        "enum": [
                            "scores",
                            "fixtures",
                            "gameDetail",
                            "teamGames",
                            "playerProfile",
                            "playerGames",
                            "squadStats",
                            "teamStats",
                            "popular",
                            "search",
                            "competitions",
                            "transfers",
                            "odds",
                            "trends",
                            "dailyTip"
                        ],
                        "type": "string",
                        "description": "What data to retrieve. Each action uses different fields below.<br><br><b>Scores &amp; Games:</b> scores, fixtures, gameDetail, teamGames<br><b>Players:</b> playerProfile, playerGames, squadStats, teamStats<br><b>Discovery:</b> popular, search, competitions, transfers<br><b>Betting:</b> odds, trends, dailyTip",
                        "default": "scores"
                    },
                    "competitionIds": {
                        "title": "Competitions",
                        "type": "string",
                        "description": "Competition slugs or IDs, comma-separated.<br><br><b>Used by:</b> scores, fixtures, odds (all values), squadStats, transfers (first value).<br><br><b>Examples:</b><br>• <code>premier-league</code><br>• <code>champions-league, bundesliga</code><br>• <code>nba</code>, <code>laliga</code><br><br>Run the <b>competitions</b> action to browse all 2600+ available slugs."
                    },
                    "season": {
                        "title": "Season",
                        "enum": [
                            "Current season",
                            "Last season",
                            "2 seasons ago"
                        ],
                        "type": "string",
                        "description": "Which season to pull data for.<br><br><b>Used by:</b> fixtures, scores.<br><br>Football leagues typically have 3 seasons of data. Other sports may only have the current season.",
                        "default": "Current season"
                    },
                    "gameIds": {
                        "title": "Game IDs",
                        "type": "array",
                        "description": "One or more numeric game IDs.<br><br><b>Used by:</b> gameDetail (all values), trends (first value).<br><br>Get game IDs from the <code>gameId</code> field in <b>scores</b> or <b>fixtures</b> output.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "competitorId": {
                        "title": "Team",
                        "type": "string",
                        "description": "Team name or numeric ID. Names are auto-resolved (football teams prioritized).<br><br><b>Used by:</b> teamGames, squadStats, teamStats.<br><br><b>Examples:</b> <code>Real Madrid</code>, <code>Barcelona</code>, <code>Liverpool</code>"
                    },
                    "athleteIds": {
                        "title": "Players",
                        "type": "array",
                        "description": "Player names or numeric IDs. Names are auto-resolved to the best match.<br><br><b>Used by:</b> playerProfile (all values), playerGames (first value).<br><br><b>Examples:</b> <code>Mbappe</code>, <code>Haaland</code>, <code>39789</code>",
                        "items": {
                            "type": "string"
                        }
                    },
                    "statType": {
                        "title": "Stat Type",
                        "enum": [
                            "Goals",
                            "Assists",
                            "Yellow Cards",
                            "Red Cards",
                            "Clean Sheets",
                            "Rating",
                            "Expected Goals (xG)",
                            "Expected Assists (xA)",
                            "Tackles Won",
                            "Appearances",
                            "Penalties Scored",
                            "Penalties Saved"
                        ],
                        "type": "string",
                        "description": "Stat to rank players by.<br><br><b>Used by:</b> squadStats.",
                        "default": "Goals"
                    },
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search for players, teams, and competitions by name.<br><br><b>Used by:</b> search.<br><br><b>Examples:</b> <code>Mbappe</code>, <code>Barcelona</code>, <code>Premier League</code>"
                    },
                    "sportType": {
                        "title": "Sport",
                        "enum": [
                            "Football",
                            "Basketball",
                            "Tennis",
                            "Hockey",
                            "Handball",
                            "American Football",
                            "Baseball",
                            "Volleyball",
                            "Rugby"
                        ],
                        "type": "string",
                        "description": "Sport filter.<br><br><b>Used by:</b> popular, competitions.",
                        "default": "Football"
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum items to return. Controls pagination depth for scores and caps output for all actions.",
                        "default": 500
                    },
                    "includeOdds": {
                        "title": "Include Bet365 odds",
                        "type": "boolean",
                        "description": "Add 1X2 odds (home/draw/away) with opening and current prices.<br><br><b>Used by:</b> scores, teamGames.",
                        "default": false
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "English",
                            "Deutsch",
                            "Español",
                            "Français",
                            "Italiano",
                            "Português",
                            "Português (Brasil)",
                            "Русский",
                            "العربية",
                            "Türkçe",
                            "Nederlands",
                            "Polski",
                            "日本語",
                            "中文(简体)"
                        ],
                        "type": "string",
                        "description": "Language for team names, competition names, and labels.",
                        "default": "English"
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
