# Bet365 Real-Time Odds REST API | Live & Pre-Match Betting Odds (`zen-studio/bet365-real-time-odds`) Actor

Bet365 betting odds in real time via REST API. Pre-match and live odds for 39 sports. Full Time Result, Asian Handicap, Over/Under, Player Props, Outrights. Decimal, fractional, American formats. Instant responses via Standby mode.

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

## Pricing

from $2.99 / 1,000 requests

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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 Real-Time Odds REST API | Live & Pre-Match Betting Odds

**Real-time Bet365 odds via REST API. Pre-match and live odds for 39 sports. Full Time Result, Asian Handicap, Over/Under, Player Props, Outrights. Day Pass for real-time data.**

11 endpoints. $0.003 per request or $6.99/day unlimited. JSON in, JSON out.

### How It Works

<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/B2VTZWN.png" width="840" alt="Bet365 — live odds across 39 sports"/>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:8px 0">
<img src="https://iili.io/qVhQ8N9.png" width="72" alt=""/>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:0">
<a href="https://console.apify.com/actors/l6JP3yaLczAdUaiSf/standby"><img src="https://iili.io/B2Vu9Js.png" width="840" alt="Step 1 — Pick your endpoint"/></a>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:8px 0">
<img src="https://iili.io/qVhQvA7.png" width="72" alt=""/>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:0">
<a href="https://console.apify.com/actors/l6JP3yaLczAdUaiSf/standby"><img src="https://iili.io/B2VuKsS.png" width="840" alt="Step 2 — Call the API"/></a>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:8px 0">
<img src="https://iili.io/qVhQ8N9.png" width="72" alt=""/>
</td>
</tr>
<tr>
<td align="center" style="border:none;padding:0">
<img src="https://iili.io/B2VuB19.png" width="840" alt="Step 3 — Real odds, structured JSON, instant response"/>
</td>
</tr>
</table>

&nbsp;

#### Copy to your AI assistant

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

````

Bet365 Odds API. Base: https://zen-studio--bet365-real-time-odds.apify.actor Auth: ?token=APIFY\_TOKEN (get at https://console.apify.com/account/integrations). Endpoints: GET /sports (all sports with slugs), GET /competitions?sport=X (competitions for a sport), GET /competition/{id}?sport=X (match odds for a competition, id=slug like nba or england-premier-league), GET /match/{id}?tab=X (full match detail with all markets and player props, tabs: popular/asian/goals/half/corners/specials), GET /search?q=X (search matches/teams), GET /inplay (in-play schedule), GET /outrights?sport=X (futures catalog), GET /outright/{id} (outright odds), POST /day-pass (activate $6.99/24h unlimited pass with real-time data), GET /day-pass (check pass status). All odds endpoints accept odds\_format=decimal|fractional|american. With Day Pass active: all endpoints free, /inplay and /match/{id} serve ~1ms real-time data. Competition slugs: nba ncaab nhl mlb afl england-premier-league england-championship scotland-premiership euroleague.

````

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

&nbsp;

<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 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-real-time-odds" style="color:#4C945E;text-decoration:none;font-weight:700;font-size:14px">Bet365 Odds</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-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>
<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-TjShOnNguT17e9hfQ-ntCswWAqze-betmgm-real-time-api-logo-padded.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/betmgm-odds" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">BetMGM Odds</a><br>
<span style="color:#78716C;font-size:12px">18 states, 22 sports</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-4AmgQeem8dEgMEiRF-VGffbe665M-prizepicks-scraper-logo.jpeg" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/zen-studio/prizepicks-player-props" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">PrizePicks Props</a><br>
<span style="color:#78716C;font-size:12px">Projections and lines</span>
</td>
</tr>
</table>

&nbsp;

### Key Features

- **Full market depth** -- match result, Asian handicap, over/under, both teams to score, correct score, player props, corners, specials, and more
- **39 sports** -- soccer, basketball, tennis, ice hockey, American football, baseball, cricket, darts, esports, MMA, and 29 more
- **Three odds formats** -- decimal (default), fractional, American on every endpoint
- **Human-readable slugs** -- use `england-premier-league` or `nba` instead of opaque IDs
- **Outrights** -- league winner, top scorer, relegation, and other futures markets
- **Day Pass** -- $6.99 for 24h of real-time data. `/inplay` and `/match/{id}` with ~1ms latency, 60+ markets per match, no per-request charges

&nbsp;

### Endpoints

#### Discovery (free)

| Endpoint | Method | Description |
|----------|--------|-------------|
| `/health` | GET | Health check and connection status |
| `/sports` | GET | All 49 sports with slugs |
| `/competitions` | GET | All competitions for a sport with slugs |

#### Odds (per request or included in Day Pass)

| Endpoint | Method | Per call | Description |
|----------|--------|----------|-------------|
| `/competition/{id}` | GET | $0.003 | All matches in a competition with 1X2/spread/total odds |
| `/match/{id}` | GET | $0.005 | Full match detail: all markets, player props, selections |
| `/search` | GET | $0.002 | Search matches, competitions, teams |
| `/inplay` | GET | $0.002 | Full in-play schedule across all sports |
| `/outrights` | GET | $0.002 | Futures catalog (league winner, top scorer, relegation) |
| `/outright/{id}` | GET | $0.003 | Specific outright market odds |

#### Day Pass

| Endpoint | Method | Description |
|----------|--------|-------------|
| `POST /day-pass` | POST | Activate 24h Day Pass ($6.99). All endpoints become free for 24 hours. `/inplay` and `/match/{id}` serve real-time data (~1ms). |
| `GET /day-pass` | GET | Check Day Pass status (active/expired/none, remaining hours) |

&nbsp;

### Quick Start

#### 1. List sports

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/sports?token=YOUR_APIFY_TOKEN"
````

#### 2. Get soccer competitions

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/competitions?sport=soccer&token=YOUR_APIFY_TOKEN"
```

#### 3. Get Premier League match odds

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/competition/england-premier-league?sport=soccer&token=YOUR_APIFY_TOKEN"
```

#### 4. Get full match detail with all markets

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/match/e282e4f7ddd8?token=YOUR_APIFY_TOKEN"
```

#### 5. Get Asian handicap markets only

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/match/e282e4f7ddd8?tab=asian&token=YOUR_APIFY_TOKEN"
```

#### 6. Search for a team

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/search?q=lakers&token=YOUR_APIFY_TOKEN"
```

#### 7. Get in-play schedule

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/inplay?token=YOUR_APIFY_TOKEN"
```

#### 8. Get outright markets for soccer

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/outrights?sport=soccer&token=YOUR_APIFY_TOKEN"
```

#### 9. Get outright odds

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/outright/6d09504757e3?token=YOUR_APIFY_TOKEN"
```

 

### Parameters

#### `/sports`

No parameters. Returns all 49 sports.

#### `/competitions`

| Param | Type | Default | Description |
|-------|------|---------|-------------|
| `sport` | string | soccer | Sport slug: `soccer`, `basketball`, `tennis`, `ice-hockey`, `american-football`, `baseball`, etc. |

#### `/competition/{id}`

| Param | Type | Default | Description |
|-------|------|---------|-------------|
| `sport` | string | *required* | Sport slug |
| `odds_format` | string | decimal | `decimal`, `fractional`, or `american` |

The `{id}` can be a human-readable slug (e.g., `england-premier-league`, `nba`) or an opaque ID returned by `/competitions`. 56 competitions have hardcoded slugs.

#### `/match/{id}`

| Param | Type | Default | Description |
|-------|------|---------|-------------|
| `tab` | string | all | Market tab: `popular`, `asian`, `goals`, `half`, `corners`, `specials`. Omit for all markets. |
| `odds_format` | string | decimal | `decimal`, `fractional`, or `american` |

#### `/search`

| Param | Type | Default | Description |
|-------|------|---------|-------------|
| `q` | string | *required* | Search query. Matches against team names, competition names, player names. |
| `odds_format` | string | decimal | `decimal`, `fractional`, or `american` |

#### `/inplay`

| Param | Type | Default | Description |
|-------|------|---------|-------------|
| `odds_format` | string | decimal | `decimal`, `fractional`, or `american` |

#### `/outrights`

| Param | Type | Default | Description |
|-------|------|---------|-------------|
| `sport` | string | *required* | Sport slug |

#### `/outright/{id}`

| Param | Type | Default | Description |
|-------|------|---------|-------------|
| `odds_format` | string | decimal | `decimal`, `fractional`, or `american` |

 

### Competition Slugs

Use human-readable slugs instead of opaque IDs. Pass them as `{id}` on `/competition/{id}`.

| Slug | Competition |
|------|-------------|
| `england-premier-league` | England Premier League |
| `spain-la-liga` | Spain La Liga |
| `germany-bundesliga` | Germany Bundesliga |
| `italy-serie-a` | Italy Serie A |
| `france-ligue-1` | France Ligue 1 |
| `champions-league` | UEFA Champions League |
| `europa-league` | UEFA Europa League |
| `nba` | NBA |
| `nfl` | NFL |
| `nhl` | NHL |
| `mlb` | MLB |
| `atp-wimbledon` | ATP Wimbledon |

56 slugs built in. Use `/competitions` to discover all available competitions with their slugs and IDs.

Opaque IDs also work: the ID returned by `/competitions` can be passed directly to `/competition/{id}`.

 

### Response Format

#### Success

Every endpoint returns a `success` field.

```json
{
  "success": true,
  "count": 12,
  "...": "endpoint-specific data"
}
```

#### Error

```json
{
  "success": false,
  "error": "Unknown competition: xyz. Use /competitions to discover available IDs."
}
```

| Status | Error | Meaning |
|--------|-------|---------|
| 400 | Unknown competition | Slug or ID not recognized |
| 400 | Unknown sport | Sport slug not valid |
| 400 | Missing required parameter | Required query param missing |
| 404 | Match not found | Match ID doesn't exist |
| 404 | Outright not found | Outright ID doesn't exist |
| 500 | Internal error | Unexpected server error |

 

### Output Examples

#### `/sports`

```json
{
  "success": true,
  "count": 49,
  "sports": [
    {"name": "Soccer", "sport_id": "800b8bd9a54a", "slug": "soccer"},
    {"name": "Basketball", "sport_id": "3fece606a9a4", "slug": "basketball"},
    {"name": "Tennis", "sport_id": "abc123def456", "slug": "tennis"}
  ]
}
```

#### `/competition/england-premier-league?sport=soccer`

```json
{
  "success": true,
  "competition": "England Premier League",
  "league_code": "FA Barclaycard",
  "market": "market_40",
  "matches": [
    {
      "match_id": "e282e4f7ddd8",
      "home": "Arsenal",
      "away": "Bournemouth",
      "kickoff": "2026-04-11T12:30:00+00:00",
      "odds": {
        "1": {"odds": 1.444, "odds_fractional": "4/9", "suspended": false},
        "X": {"odds": 4.1, "odds_fractional": "31/10", "suspended": false},
        "2": {"odds": 7.5, "odds_fractional": "13/2", "suspended": false}
      }
    }
  ]
}
```

#### `/match/{id}`

```json
{
  "success": true,
  "match_id": "e282e4f7ddd8",
  "home": "Arsenal",
  "away": "Bournemouth",
  "competition": "FA Barclaycard",
  "kickoff": "2026-04-11T12:30:00+00:00",
  "status": "pre_match",
  "markets": [
    {
      "name": "Full Time Result",
      "selections": [
        {"name": "Arsenal", "odds": 1.444, "odds_fractional": "4/9"},
        {"name": "Draw", "odds": 4.1, "odds_fractional": "31/10"},
        {"name": "Bournemouth", "odds": 7.5, "odds_fractional": "13/2"}
      ]
    },
    {
      "name": "Player to Score or Assist",
      "selections": [
        {"name": "Bukayo Saka", "last_5": "0,1,0,0,1"},
        {"name": "Gabriel Jesus", "last_5": "0,0,1,0,0"}
      ]
    }
  ]
}
```

The `/match/{id}` endpoint returns every available market for the match. Use the `tab` parameter to filter by category:

| Tab | Markets included |
|-----|-----------------|
| `popular` | Full Time Result, Both Teams to Score, Over/Under 2.5, Double Chance |
| `asian` | Asian Handicap, Asian Total, Asian Corners |
| `goals` | Over/Under, Correct Score, Half Time/Full Time, Goals Odd/Even |
| `half` | Half Time Result, Half Time Over/Under, Half Time Correct Score |
| `corners` | Total Corners, Match Corners, Team Corners, Corner Handicap |
| `specials` | Player props, cards, substitutions, booking points |

#### `/search?q=lakers`

```json
{
  "success": true,
  "query": "lakers",
  "count": 32,
  "results": [
    {
      "match_id": "eba4aecae217",
      "home": "WAS Wizards",
      "away": "LA Lakers",
      "sport": "Basketball",
      "competition": "NBA",
      "odds": [
        {"name": "1", "odds": 1.909, "line": "+16.0", "bet_summary": "WAS Wizards +16.0"},
        {"name": "2", "odds": 1.909, "line": "-16.0", "bet_summary": "LA Lakers -16.0"}
      ]
    }
  ]
}
```

#### `/outrights?sport=soccer`

```json
{
  "success": true,
  "sport": "Soccer",
  "competitions": [
    {
      "name": "England Premier League 2025/26",
      "country": "United Kingdom",
      "markets": [
        {"name": "To Win Outright", "outright_id": "6d09504757e3"},
        {"name": "Top Goalscorer", "outright_id": "88277a57c3f7"},
        {"name": "To be Relegated", "outright_id": "3dc17a054c17"}
      ]
    }
  ]
}
```

#### `/outright/{id}`

```json
{
  "success": true,
  "competition": "England Premier League 2025/26",
  "market": "Win Only",
  "selections": [
    {"name": "Arsenal", "odds": 1.1, "odds_fractional": "1/10"},
    {"name": "Man City", "odds": 7.0, "odds_fractional": "6/1"},
    {"name": "Man Utd", "odds": 501.0, "odds_fractional": "500/1"}
  ]
}
```

 

### Supported Sports

39 sports available. The most popular:

| Sport | Slug | Competitions |
|-------|------|-------------|
| Soccer | `soccer` | 500+ |
| Basketball | `basketball` | 150+ |
| Tennis | `tennis` | 200+ |
| Ice Hockey | `ice-hockey` | 80+ |
| American Football | `american-football` | 20+ |
| Baseball | `baseball` | 30+ |
| Cricket | `cricket` | 50+ |
| Darts | `darts` | 15+ |
| Esports | `esports` | 40+ |
| MMA | `mma` | 10+ |

Use `/sports` for the full list of all 49 sports with their slugs.

 

***

### Pricing

Two options: pay per request, or activate a Day Pass for unlimited access.

| Plan | Cost | Best for |
|------|------|----------|
| **Per request** | $0.003/call | Occasional lookups, monitoring a few markets |
| **Day Pass** | $6.99/24h | Heavy polling, real-time live odds, arbitrage bots |

With a Day Pass active, **all endpoints are free** for 24 hours. Plus, `/inplay` and `/match/{id}` serve real-time data with faster response times.

**Break-even point:** ~2,330 requests/day. If you poll more than that, the Day Pass saves money.

#### Activate a Day Pass

```bash
curl -X POST "https://zen-studio--bet365-real-time-odds.apify.actor/day-pass?token=YOUR_APIFY_TOKEN"
```

```json
{
  "status": "activated",
  "expires_at": "2026-04-02T09:30:00+00:00",
  "remaining_hours": 24.0,
  "message": "Day pass activated. All endpoints now serve real-time data for 24 hours."
}
```

Check status anytime:

```bash
curl "https://zen-studio--bet365-real-time-odds.apify.actor/day-pass?token=YOUR_APIFY_TOKEN"
```

#### What the Day Pass unlocks

| Feature | Per request | Day Pass |
|---------|------------|----------|
| Response time | Standard | Faster |
| `/inplay` data | Snapshot at request time | Real-time |
| `/match/{id}` markets | Up to 50+ markets | 60+ markets with live updates |
| Per-request charges | $0.003/call | None for 24h |
| Data freshness | Point-in-time | <500ms from bet365 |

When the Day Pass expires, you seamlessly fall back to per-request pricing. No interruption, no config change needed.

***

 

### Use Cases

#### Odds Comparison

Pull competition odds from `/competition/{id}` across multiple leagues. Compare with other bookmakers for value bets and arbitrage opportunities.

#### Pre-Match Analysis

Fetch full market depth via `/match/{id}` before kickoff. Access Asian handicaps, over/under lines, correct score, player props, and 50+ other markets per match.

#### In-Play Monitoring

Poll `/inplay` for live events. Track which games are currently in play across all 39 sports. Combine with `/match/{id}` for live market prices.

#### Outright Tracking

Monitor futures markets via `/outrights` and `/outright/{id}`. Track league winner odds, top scorer markets, relegation prices throughout the season.

#### Real-Time Arbitrage

Activate a Day Pass and poll `/inplay` every few seconds. The real-time data updates within 500ms of bet365, giving you near-instant odds movements. Compare with other bookmakers for live arbitrage windows.

#### Automated Alerts

Set up a cron job that polls specific competitions and notifies when odds cross a threshold. Cost: under $1/month for hourly monitoring of 5 leagues.

 

### FAQ

**What is Standby mode?**
The actor runs as an always-on HTTP server. No queue, no cold start. Apify keeps it warm and routes requests directly. You get sub-second response times. See the Standby tab on the actor page for the hostname.

**How much does Standby mode cost to keep running?**
You don't pay anything while it's idle. The actor sleeps automatically after a period of no requests and wakes up on the next call (cold start takes 2-3 seconds). You only pay compute for hours it's actually running. At 256 MB, that's roughly $0.10/hour. If you make a few requests per day, you'll barely notice it on your bill.

**What odds formats are supported?**
Decimal (default), fractional, and American. Pass `odds_format=fractional` or `odds_format=american` on any odds endpoint. Decimal is always included regardless of the format you choose.

**How do I find competition IDs?**
Start with `/sports` to get sport slugs. Then `/competitions?sport=soccer` to get competition slugs and IDs. 56 competitions have human-readable slugs like `england-premier-league` or `nba`. All others use opaque IDs.

**What markets are available on `/match/{id}`?**
Every market Bet365 offers for that match. This typically includes: Full Time Result, Double Chance, Both Teams to Score, Over/Under, Asian Handicap, Correct Score, Half Time/Full Time, Player Props (goals, assists, cards, shots), Corners, Specials, and more. Use the `tab` parameter to filter by category.

**Can I get historical odds?**
No. This actor returns current live odds only. Odds change continuously and are not stored historically.

**How often should I poll for odds updates?**
Odds update frequently, especially close to kickoff and during live events. Every 1-5 minutes is typical for pre-match monitoring. For in-play odds, every 30-60 seconds. With a Day Pass, you can poll every few seconds at no extra cost.

**What is the Day Pass?**
A one-time $6.99 charge that gives you 24 hours of unlimited access to all endpoints with no per-request fees. `/inplay` and `/match/{id}` serve real-time data. Activate with `POST /day-pass`.

**What happens when my Day Pass expires?**
You seamlessly fall back to per-request pricing ($0.003/call). No errors, no downtime. The next `POST /day-pass` activates a new 24-hour window.

**Is the Day Pass per user or per actor?**
Per user. Each Apify account gets its own Day Pass timer. Multiple users can each have their own active pass.

**Why is the Day Pass so much faster?**
Without a Day Pass, each request fetches live data on demand. With a Day Pass, data is always fresh and responses are faster.

**Can I increase the standby idle timeout?**
Yes. Create a Task from this actor and set a custom idle timeout in the Standby tab. Higher timeouts keep the actor alive longer between requests but increase compute costs. The default (300 seconds) works well for polling every 30-60 seconds.

**What's the difference between `/competition/{id}` and `/match/{id}`?**
`/competition/{id}` returns all matches in a competition with headline odds (1X2, spread, total). `/match/{id}` returns full market depth for a single match, including player props, corners, specials, and every other available market.

**Are in-play odds available?**
Yes. Matches that are currently in play have live odds. Use `/inplay` to find active events, then `/match/{id}` for live market prices.

**What's the difference between this and the Bet365 Live Scores actor?**
This actor provides betting odds and markets. The Live Scores actor provides real-time scores, lineups, events, and match statistics. Different data, different use cases. Use both together for a complete picture.

**Can I use slugs everywhere?**
Slugs work on `/competition/{id}` for the 56 hardcoded competitions. For `/match/{id}` and `/outright/{id}`, use the opaque IDs returned by the discovery endpoints.

 

### Support

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

***

*Pre-match and in-play betting odds. 39 sports. Every market. $0.003/request or $6.99/day unlimited.*

# Actor input Schema

## `preset` (type: `string`):

Pick a league to preview. Output is identical to the Standby API response for that competition.<br><br>🏀 <b>NBA</b> — point spreads, moneylines, totals<br>⚽ <b>Premier League</b> — 1X2 match result odds<br>🏒 <b>NHL</b> — puck lines, moneylines, totals<br>⚾ <b>MLB</b> — run lines, moneylines, totals<br>⚽ <b>Soccer Outrights</b> — league winner, top scorer, relegation<br>🏉 <b>AFL</b> — head-to-head, line, total<br><br>Want more? <a href="https://console.apify.com/actors/l6JP3yaLczAdUaiSf/standby" target="_blank">Standby mode</a> covers all 39 sports, 200+ competitions, match detail with player props, Asian handicaps, corners, specials, and more.

## `oddsFormat` (type: `string`):

Controls how odds values appear in the output.<br><br><b>Decimal</b> — <code>1.91</code> (Europe, Australia, Canada)<br><b>Fractional</b> — <code>10/11</code> (UK, Ireland)<br><b>American</b> — <code>-110</code> (US)<br><br>All formats are available on every Standby endpoint via the <code>odds\_format</code> query parameter.

## Actor input object example

```json
{
  "preset": "nba",
  "oddsFormat": "decimal"
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/bet365-real-time-odds").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/bet365-real-time-odds").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 '{}' |
apify call zen-studio/bet365-real-time-odds --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Bet365 Real-Time Odds REST API | Live & Pre-Match Betting Odds",
        "description": "Bet365 betting odds in real time via REST API. Pre-match and live odds for 39 sports. Full Time Result, Asian Handicap, Over/Under, Player Props, Outrights. Decimal, fractional, American formats. Instant responses via Standby mode.",
        "version": "0.0",
        "x-build-id": "7hBAv6R6oZTKzppRJ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~bet365-real-time-odds/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-bet365-real-time-odds",
                "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-real-time-odds/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-bet365-real-time-odds",
                "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-real-time-odds/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-bet365-real-time-odds",
                "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",
                "properties": {
                    "preset": {
                        "title": "Data Preset",
                        "enum": [
                            "nba",
                            "premier-league",
                            "nhl",
                            "mlb",
                            "soccer-outrights",
                            "afl"
                        ],
                        "type": "string",
                        "description": "Pick a league to preview. Output is identical to the Standby API response for that competition.<br><br>🏀 <b>NBA</b> — point spreads, moneylines, totals<br>⚽ <b>Premier League</b> — 1X2 match result odds<br>🏒 <b>NHL</b> — puck lines, moneylines, totals<br>⚾ <b>MLB</b> — run lines, moneylines, totals<br>⚽ <b>Soccer Outrights</b> — league winner, top scorer, relegation<br>🏉 <b>AFL</b> — head-to-head, line, total<br><br>Want more? <a href=\"https://console.apify.com/actors/l6JP3yaLczAdUaiSf/standby\" target=\"_blank\">Standby mode</a> covers all 39 sports, 200+ competitions, match detail with player props, Asian handicaps, corners, specials, and more.",
                        "default": "nba"
                    },
                    "oddsFormat": {
                        "title": "Odds Format",
                        "enum": [
                            "decimal",
                            "fractional",
                            "american"
                        ],
                        "type": "string",
                        "description": "Controls how odds values appear in the output.<br><br><b>Decimal</b> — <code>1.91</code> (Europe, Australia, Canada)<br><b>Fractional</b> — <code>10/11</code> (UK, Ireland)<br><b>American</b> — <code>-110</code> (US)<br><br>All formats are available on every Standby endpoint via the <code>odds_format</code> query parameter.",
                        "default": "decimal"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
