# Betfair Exchange API: Back & Lay Football Odds as JSON

> Betfair Exchange odds API without a Betfair account or app key fee: back and lay ladders with available size for football, pre-match and in-play, as clean JSON.

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

## TL;DR

- Betfair's official Exchange API needs a funded account and a £299 live key; OddsAPI.dev serves the exchange's football prices read-only, with back and lay ladders and available size, no Betfair account needed.
- Betfair Exchange lists 395 football leagues and cups in the API, with 748 upcoming matches right now.
- Its board for Leeds United v Tottenham Hotspur has 216 markets across 22 market types, with props for 42 players.
- Endpoints: GET /v1/betfair-exchange/leagues, /v1/betfair-exchange/events, /v1/betfair-exchange/events/{id}/odds (pre-match) and /odds/live (in-play).
- Independent data provider, not affiliated with Betfair Exchange. 7-day free trial on every plan; every plan includes all five bookmakers.

Betfair Exchange football prices as clean JSON, with back and lay ladders and the size available at each price. No Betfair account, no app key fee, and the same schema as four sportsbooks.

## Right now on Betfair Exchange

Betfair Exchange lists 395 football leagues and cups in the API, with 748 upcoming matches across 138 of them and 42 in play. For Leeds United v Tottenham Hotspur (Premier League, Sat 7 Nov, 12:30 UTC), its board has 216 markets and 476 prices across 22 market types, with props for 42 players.

| League (as Betfair Exchange names it) | Upcoming matches |
| --- | ---: |
| English FA Cup | 38 |
| Italian Serie C | 24 |
| Czech 3 Liga | 16 |
| US MLS | 15 |
| English Sky Bet Championship | 11 |
| English National League South | 10 |
| English Premier League | 10 |
| Spanish La Liga | 10 |

```json
{
  "event_id": "ev_025381",
  "bookmaker": "betfair-exchange",
  "updated_at": "2026-11-07T07:03:22.421Z",
  "markets": [
    {
      "key": "match_result",
      "period": "full_time",
      "outcomes": [
        {
          "key": "home",
          "price": 2.9
        },
        {
          "key": "draw",
          "price": 3.45
        },
        {
          "key": "away",
          "price": 2.7
        }
      ]
    },
    {
      "key": "total_goals",
      "period": "full_time",
      "outcomes": [
        {
          "key": "over",
          "line": 0.5,
          "price": 1.07
        },
        {
          "key": "under",
          "line": 0.5,
          "price": 13.5
        }
      ]
    },
    {
      "key": "both_teams_to_score",
      "period": "full_time",
      "outcomes": [
        {
          "key": "yes",
          "price": 1.78
        },
        {
          "key": "no",
          "price": 2.24
        }
      ]
    },
    {
      "key": "asian_handicap",
      "period": "full_time",
      "outcomes": [
        {
          "key": "away",
          "line": 2.5,
          "price": 1.05
        },
        {
          "key": "home",
          "line": -0.5,
          "price": 2.9
        }
      ]
    }
  ]
}
```

## Does Betfair Exchange have a public API?

Yes, Betfair has an official Exchange API, built for betting: it needs a verified, funded Betfair account, a free delayed app key for testing and a one-off £299 fee for a live key, and it isn't open in every country. If you only need the prices, OddsAPI.dev gives you Betfair Exchange's football odds with no Betfair account, normalized into the same JSON as four sportsbooks.

|  | Betfair's own API | OddsAPI.dev |
| --- | ---: | ---: |
| Access | Verified, funded Betfair account | API key in minutes |
| Live prices | £299 one-off live app key | Included on every plan |
| Integration | Session login, app keys, market catalogue | Plain REST with a bearer key |
| Data format | Betfair's market and runner ids | Normalized market and outcome keys |
| Sportsbooks | Not included | Bet365, Pinnacle, Paddy Power, BetMGM UK |
| Bet placement | Yes | No: read-only odds data |

## Betfair Exchange markets

- **Results:** Match odds (1X2)
- **Goals:** Over/under ladder, 0.5 to 8.5, First-half goals, Both teams to score
- **Handicaps:** Asian handicap ladder
- **Depth:** Best back and lay, Three price levels each side, Available size per level

## Example request

```bash
curl "https://api.oddsapi.dev/v1/betfair-exchange/events/ev_937634/odds?markets=match_result" \
  -H "Authorization: Bearer $ODDS_API_KEY"
```

```json
{
  "data": {
    "event_id": "ev_937634",
    "bookmaker": "betfair-exchange",
    "type": "prematch",
    "updated_at": "2026-11-04T05:19:23.729Z",
    "markets": [
      {
        "key": "match_result",
        "period": "full_time",
        "outcomes": [
          {
            "key": "home",
            "price": 4.9,
            "back": [{ "price": 4.9, "size": 178.78 }, { "price": 4.8, "size": 1475.02 }, { "price": 4.7, "size": 2085.01 }],
            "lay": [{ "price": 5, "size": 339.29 }, { "price": 5.1, "size": 688.19 }, { "price": 5.2, "size": 1413.95 }]
          },
          {
            "key": "draw",
            "price": 4.2,
            "back": [{ "price": 4.2, "size": 291.62 }, { "price": 4.1, "size": 744.25 }, { "price": 4, "size": 1116.19 }],
            "lay": [{ "price": 4.3, "size": 1215.34 }, { "price": 4.4, "size": 2959.26 }, { "price": 4.5, "size": 3762.2 }]
          },
          {
            "key": "away",
            "price": 1.79,
            "back": [{ "price": 1.79, "size": 538.11 }, { "price": 1.78, "size": 1793.96 }, { "price": 1.77, "size": 426.25 }],
            "lay": [{ "price": 1.8, "size": 2040.12 }, { "price": 1.81, "size": 1093.08 }, { "price": 1.82, "size": 2084.89 }]
          }
        ]
      }
    ]
  }
}
```

```python
import os, requests

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

league = requests.get(f"{API}/leagues", params={"search": "English Premier League"}, headers=headers).json()["data"][0]
events = requests.get(f"{API}/events", params={"league_id": league["id"]}, headers=headers).json()["data"]

for event in events:
    odds = requests.get(
        f"{API}/events/{event['id']}/odds",
        params={"markets": "match_result,total_goals"},
        headers=headers,
    ).json()["data"]
    print(event["home_team"]["name"], "v", event["away_team"]["name"])
    for market in odds["markets"]:
        print("  ", market["key"], market["period"], market["outcomes"])
```

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

const { data: [league] } = await get("/leagues?search=English%20Premier%20League");
const { data: events } = await get(`/events?league_id=${league.id}`);

for (const event of events) {
  const { data: odds } = await get(`/events/${event.id}/odds?markets=match_result,total_goals`);
  console.log(event.home_team.name, "v", event.away_team.name, odds.markets);
}
```

## Coverage

Live today:

- Football, pre-match and in-play
- Every competition the exchange lists: 350+ leagues and cups
- Match odds, over/under, both teams to score, Asian handicap
- Back and lay ladders with available size
- Pre-match board kept after kickoff (closing line)
- Same schema as 4 sportsbooks

Not yet:

- Traded volume and bet placement
- Other sports (coming soon)
- WebSocket streaming (coming soon; poll REST for now)

## What people build

- **Fair prices.** Exchange prices come from bettors, not a trading desk. The midpoint between best back and lay is a strong fair-odds estimate to compare the sportsbooks against.
- **Matched betting tools.** Show the lay price next to Bet365, Paddy Power and BetMGM UK back prices on the same match, with the size available to lay.
- **Liquidity checks.** Three levels each side with size tell you how much a price can actually take before you act on it.
- **Market movement.** Poll the in-play endpoint and track how the back/lay spread and sizes move as the match unfolds.

## FAQ

### Is this the official Betfair API?

No. OddsAPI.dev is an independent data provider, not affiliated with or endorsed by Betfair. The API is read-only odds data; to place bets on the exchange you need Betfair's own API and account.

### Do I need a Betfair account or app key?

No. You need an OddsAPI.dev key only. There's no Betfair login, no session token and no live app key fee.

### What's in the back and lay ladders?

Each outcome carries price (the best back), plus back and lay arrays with up to three price levels each and the size available at each level, as Betfair reports it.

### Which Betfair Exchange markets are covered?

Match odds, over/under goals (a full ladder of lines), first-half goals, both teams to score and Asian handicap. These are the exchange's most liquid football markets.

### Is Betfair Exchange the same as the Betfair Sportsbook?

No. The exchange is peer-to-peer: you back or lay against other bettors and Betfair charges commission on winnings. The sportsbook sets its own fixed odds. This API covers the exchange.

### What's the bookmaker slug?

betfair-exchange. Every endpoint starts with /v1/betfair-exchange/, and GET /v1/bookmakers lists every bookmaker's slug.

### 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, and every plan includes all five bookmakers. Cancel before it ends and you're never charged.

## Other bookmakers

- [Bet365 odds API](https://www.oddsapi.dev/bet365-odds-api) ([markdown](https://www.oddsapi.dev/bet365-odds-api.md))
- [Pinnacle odds API](https://www.oddsapi.dev/pinnacle-odds-api) ([markdown](https://www.oddsapi.dev/pinnacle-odds-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
