# Bet365 Odds API: Live & Pre-Match Football Odds

> Bet365 odds API for developers: pre-match and in-play football odds as clean JSON. 1X2, totals, Asian handicaps, corners, cards and player props. Free trial.

Canonical: https://www.oddsapi.dev/bet365-odds-api  
Live data updated: 7 Nov 2026, 07:02 UTC (refreshed every 30 minutes)

## TL;DR

- Bet365 has no public odds API; OddsAPI.dev serves its pre-match and in-play football odds as JSON, with the deepest board of the five books: 900+ markets and props for around 50 players on a big match.
- Bet365 lists 748 football leagues and cups in the API, with 2,087 upcoming matches right now.
- Its board for Leeds United v Tottenham Hotspur has 610 markets across 54 market types, with props for 44 players.
- Endpoints: GET /v1/bet365/leagues, /v1/bet365/events, /v1/bet365/events/{id}/odds (pre-match) and /odds/live (in-play).
- Independent data provider, not affiliated with Bet365. 7-day free trial on every plan; every plan includes all five bookmakers.

Pre-match and in-play Bet365 football odds as clean JSON. Results, goals, handicaps, corners, cards and player props from one REST endpoint, with 800+ markets on a big Premier League match.

## Right now on Bet365

Bet365 lists 748 football leagues and cups in the API, with 2,087 upcoming matches across 405 of them and 17 in play. For Leeds United v Tottenham Hotspur (Premier League, Sat 7 Nov, 12:30 UTC), its board has 610 markets and 2,404 prices across 54 market types, with props for 44 players.

| League (as Bet365 names it) | Upcoming matches |
| --- | ---: |
| England FA Cup | 38 |
| Czechia 4. Liga | 28 |
| Portugal Campeonato Nacional | 28 |
| Spain Youth League | 24 |
| Czechia 3. Liga | 23 |
| Hungary NB III | 21 |
| England Premier League | 18 |
| Italy Serie A | 18 |

```json
{
  "event_id": "ev_591973",
  "bookmaker": "bet365",
  "updated_at": "2026-11-07T07:01:47.229Z",
  "markets": [
    {
      "key": "match_result",
      "period": "full_time",
      "outcomes": [
        {
          "key": "home",
          "price": 2.75
        },
        {
          "key": "draw",
          "price": 3.25
        },
        {
          "key": "away",
          "price": 2.6
        }
      ]
    },
    {
      "key": "total_goals",
      "period": "full_time",
      "outcomes": [
        {
          "key": "over",
          "line": 0.5,
          "price": 1.063
        },
        {
          "key": "under",
          "line": 0.5,
          "price": 10
        }
      ]
    },
    {
      "key": "both_teams_to_score",
      "period": "full_time",
      "outcomes": [
        {
          "key": "yes",
          "price": 1.7
        },
        {
          "key": "no",
          "price": 2.05
        }
      ]
    },
    {
      "key": "asian_handicap",
      "period": "full_time",
      "outcomes": [
        {
          "key": "home",
          "line": -0.5,
          "price": 2.75
        },
        {
          "key": "away",
          "line": 0.5,
          "price": 1.444
        }
      ]
    }
  ]
}
```

## Does Bet365 have a public API?

No. Bet365 doesn't publish a public odds API or developer program, so developers either build and maintain their own integration or use a data provider. OddsAPI.dev gives you Bet365's football odds as documented JSON, with the same schema as four other bookmakers.

|  | Building it yourself | OddsAPI.dev |
| --- | ---: | ---: |
| Setup | Weeks of build work | API key in minutes |
| Maintenance | Yours, every time something changes | None on your side |
| Data format | Design and normalize your own schema | Normalized JSON, 60+ market keys |
| In-play odds | A second pipeline to build and run | /odds/live endpoint |
| Player props | Hundreds of markets to map per match | Shots, tackles, cards and goalscorers, ready to use |
| Other bookmakers | Repeat it all for each book | Paddy Power, Betfair Exchange, BetMGM UK, Pinnacle |
| Cost | Servers, monitoring and engineering time | 7-day free trial, then from $50/mo |

## Bet365 markets

- **Results:** Match result (1X2), Double chance, Draw no bet, Half-time / full-time, Winning margin
- **Goals:** Total goals, Both teams to score, Exact goals, Goal ranges, Odd / even, Team totals
- **Handicaps & scores:** Asian handicap, European handicap, Correct score, Result + BTTS, Result + total goals
- **Corners, cards & shots:** Total corners, Corners handicap, Total cards, Total shots, Shots on target, Team splits
- **Goalscorers:** Anytime goalscorer, First goalscorer, Last goalscorer, To score 2+, Hat-trick, Score or assist
- **Player props:** Shots, Shots on target, Fouls committed, Fouls won, Tackles, Passes, To be booked, Goalkeeper saves

## Example request

```bash
curl "https://api.oddsapi.dev/v1/bet365/events/ev_473113/odds?markets=match_result,total_goals,player_shots_on_target" \
  -H "Authorization: Bearer $ODDS_API_KEY"
```

```json
{
  "data": {
    "event_id": "ev_473113",
    "bookmaker": "bet365",
    "type": "prematch",
    "updated_at": "2026-10-30T13:46:49.467Z",
    "markets": [
      {
        "key": "match_result",
        "period": "full_time",
        "outcomes": [
          { "key": "home", "price": 1.8 },
          { "key": "draw", "price": 3.8 },
          { "key": "away", "price": 4.2 }
        ]
      },
      {
        "key": "total_goals",
        "period": "full_time",
        "outcomes": [
          { "key": "over", "line": 2.5, "price": 1.615 },
          { "key": "under", "line": 2.5, "price": 2.3 }
        ]
      },
      {
        "key": "player_shots_on_target",
        "period": "full_time",
        "player": "Cole Palmer",
        "outcomes": [
          { "key": "over", "line": 0.5, "price": 1.3 },
          { "key": "over", "line": 1.5, "price": 2.5 },
          { "key": "over", "line": 2.5, "price": 6 }
        ]
      }
    ]
  }
}
```

```python
import os, requests

API = "https://api.oddsapi.dev/v1/bet365"
headers = {"Authorization": f"Bearer {os.environ['ODDS_API_KEY']}"}

# 1. Find the league
league = requests.get(f"{API}/leagues", params={"search": "England Premier League"}, headers=headers).json()["data"][0]

# 2. List its upcoming and live matches
events = requests.get(f"{API}/events", params={"league_id": league["id"]}, headers=headers).json()["data"]
match = events[0]

# 3. Pull Bet365's odds for the first one
odds = requests.get(
    f"{API}/events/{match['id']}/odds",
    params={"markets": "match_result,total_goals"},
    headers=headers,
).json()["data"]

for market in odds["markets"]:
    print(market["key"], market["period"], market["outcomes"])
```

```javascript
const API = "https://api.oddsapi.dev/v1/bet365";
const headers = { Authorization: `Bearer ${process.env.ODDS_API_KEY}` };
const get = (path) => fetch(API + path, { headers }).then((r) => r.json());

// 1. Find the league, 2. list its matches, 3. pull the odds
const { data: [league] } = await get("/leagues?search=England%20Premier%20League");
const { data: [match] } = await get(`/events?league_id=${league.id}`);
const { data: odds } = await get(`/events/${match.id}/odds?markets=match_result,total_goals`);

for (const m of odds.markets) console.log(m.key, m.period, m.outcomes);
```

## Coverage

Live today:

- Football, pre-match and in-play
- Every competition Bet365 prices: 650+ leagues and cups
- 60+ market types, full time and both halves
- Player props and goalscorer ladders
- Pre-match board kept after kickoff (closing line)
- Same schema as 4 other bookmakers

Not yet:

- Other sports (coming soon)
- WebSocket streaming (coming soon; poll REST for now)
- XML feed (JSON only)

## What people build

- **Betting models.** Feed Bet365 prices into your model as features or benchmarks. Pre-match odds stay available after kickoff, so you can track the closing line and measure CLV.
- **Odds comparison.** Put Bet365 next to Pinnacle, Betfair Exchange, Paddy Power and BetMGM UK. Match the fixture by kickoff time and teams, and every price after that is like-for-like: same market keys, same outcome keys, same lines.
- **Player prop tools.** Shots, shots on target, tackles, fouls, cards and goalscorer ladders for every player Bet365 prices, one market per player with the whole ladder inside.
- **Live dashboards.** Poll the in-play endpoint for live Bet365 odds while the match runs. Every board carries an updated_at timestamp, so you always know how fresh a price is.

## FAQ

### Is this the official Bet365 API?

No. Bet365 doesn't offer a public odds API. OddsAPI.dev is an independent data provider, not affiliated with or endorsed by Bet365. We deliver Bet365's football odds in a clean, documented JSON format.

### Does it include live in-play Bet365 odds?

Yes. GET /v1/bet365/events/{id}/odds/live returns in-play odds while a match is running, and GET /v1/bet365/events/{id}/odds returns pre-match odds, which stay available after kickoff as the closing line.

### Which Bet365 markets are covered?

60+ market types across results, goals, handicaps, correct score, corners, cards, shots, goalscorers and player props, for full time, first half and second half. A big Premier League match carries 800+ markets. Anything Bet365 prices that doesn't fit a standard market is still returned, under its own name, so no price is dropped.

### Which leagues does the Bet365 odds API cover?

Every competition Bet365 prices, not a curated list of top leagues: 650+ football leagues and cups, from the Premier League, La Liga, Serie A and the Champions League to lower divisions, youth and women's competitions worldwide. Use GET /v1/bet365/leagues?search= to find any of them.

### Can I get other bookmakers in the same format?

Yes. Paddy Power, Betfair Exchange (with back and lay ladders), BetMGM UK and Pinnacle are live in the same schema; swap bet365 in the URL for another bookmaker's slug. More sportsbooks are coming soon.

### Should I build my own Bet365 odds integration?

You can, but the build is the easy part: mapping hundreds of markets per match into a clean schema, keeping in-play odds flowing and repeating it all for every extra bookmaker is ongoing work. Most teams find that costs more than an API.

### What happens to Bet365 odds when a goal is scored?

Bet365 suspends markets while it reprices. Suspended and inactive markets are left out of the response, so you only ever get prices that are actually on offer, and each board's updated_at tells you when it last changed.

### Bet365 vs Pinnacle: why compare them?

Pinnacle is a sharp book with low margins that many treat as the market's fair price; Bet365 is a recreational book with wider margins and far more props. Comparing the two is a common way to spot value and to benchmark a model. Both are live in the same schema.

### Is there a Bet365 XML feed?

No. The API returns JSON only. Most XML consumers convert JSON in a few lines, and every response follows one documented schema.

### What's the Bet365 bookmaker slug?

bet365. Every Bet365 endpoint starts with /v1/bet365/, and GET /v1/bookmakers lists every bookmaker's slug.

### Is Bet365 included on every plan?

Yes. Every plan, including the free trial, includes Bet365 and every other live bookmaker. There are no per-bookmaker add-ons.

### Is there a free trial?

Yes. Every plan starts with a 7-day free trial with 10% of the plan's monthly requests at the full rate limit. Cancel before it ends and you're never charged.

## Other bookmakers

- [Pinnacle odds API](https://www.oddsapi.dev/pinnacle-odds-api) ([markdown](https://www.oddsapi.dev/pinnacle-odds-api.md))
- [Betfair Exchange API](https://www.oddsapi.dev/betfair-exchange-api) ([markdown](https://www.oddsapi.dev/betfair-exchange-api.md))
- [Paddy Power odds API](https://www.oddsapi.dev/paddy-power-odds-api) ([markdown](https://www.oddsapi.dev/paddy-power-odds-api.md))
- [BetMGM odds API](https://www.oddsapi.dev/betmgm-odds-api) ([markdown](https://www.oddsapi.dev/betmgm-odds-api.md))

## Pricing

Every plan starts with a 7-day free trial (10% of the plan's monthly requests) and includes all 5 bookmakers.

| Plan | Price | Requests | Rate limit |
| --- | ---: | ---: | ---: |
| Starter | $50/month | 100,000 requests/mo | 120/minute |
| Growth | $129/month | 500,000 requests/mo | 300/minute |
| Scale | $379/month | 5,000,000 requests/mo | 1000/minute |

Start a trial: https://www.oddsapi.dev/auth?mode=signup
