Building with AI? Give your coding tool the whole reference in one file: https://soccer-data.co/llms.txt
SOCCER DATA Docs
Sign in Get API key
// Odds

Live odds

In-play prices for a match that's under way, one entry per bookmaker quoting it. Poll it during the match to follow how the markets move as the game unfolds.

GET https://api.soccer-data.co/v1/matches/{match_id}/odds/live Live Pro or Business plan
  • Needs a paid plan (Pro or Business). The Free plan gets 403 PLAN_UPGRADE_REQUIRED.
  • Only useful while the match is live. Check live_odds_available on the match first. When there are no in-play prices, including after full time, you get 404 NOT_FOUND.
  • Prices come from Bet365, Paddy Power, BetMGM UK and Betfair Exchange, in that order. Pinnacle has no in-play prices here.
  • Bookmakers suspend and reopen markets during play, so a market or a bookmaker can drop out of one poll and be back in the next.
  • Answers are normally at most 15 seconds old, so polling more often than that returns the same prices. If a fresh answer can't be fetched, you may get an older copy marked X-Cache: STALE instead: see When an answer is stale.
  • Prices are decimal odds sent as strings, such as "2.000".
Path parameters
match_idstringrequired

The match's id, like match_…. Find one with the ID guide.

Response fields
data.match_idstring

The match these prices are for.

data.bookmakers[]array

One entry per bookmaker quoting in-play prices right now.

data.bookmakers[].bookmakerstring

Bookmaker name: Bet365, Paddy Power, BetMGM UK or Betfair Exchange.

data.bookmakers[].marketsobject

Markets this bookmaker is quoting now, keyed by market name. Each selection below is a price object (see {price} fields).

data.bookmakers[].markets.{market}.{home|draw|away}object

Three-way result markets: match_odds, first_half_result and second_half_result.

data.bookmakers[].markets.{market}.{home|away}object

Two-way markets: draw_no_bet and to_qualify.

data.bookmakers[].markets.double_chance.{home_draw|home_away|draw_away}object

Double chance.

data.bookmakers[].markets.{market}.{yes|no}object

Both teams to score markets: btts, btts_first_half and btts_second_half.

data.bookmakers[].markets.first_team_to_score.{home|away|none}object

Which side scores first. none means no goals.

data.bookmakers[].markets.{market}.{line}.{over|under}object

Match over/under markets, keyed by line such as "2.5": total_goals, match_corners and total_cards.

data.bookmakers[].markets.{market}.{home|away}.{line}.{over|under}object

Team over/under markets, split by side and then keyed by line: team_total_goals and team_corners.

data.bookmakers[].markets.asian_handicap.{home|away}.{line}object

Asian handicap price for each side, keyed by that side's handicap, such as "-0.5" or "+0.5".

data.bookmakers[].markets.handicap_result.{line}.{home|draw|away}object

Three-way handicap, keyed by the home team's handicap such as "-1" or "+2".

data.bookmakers[].markets.correct_score.{score}object

Exact score, keyed as home-away such as "2-1".

{price}.livestring

The current decimal price. For Betfair Exchange it matches the best back price.

{price}.available_to_back[]array

Betfair Exchange only: up to 3 price levels you can back at, best first. An empty list means no unmatched offers right now. Missing for the other bookmakers.

{price}.available_to_back[].pricenumber

Decimal price at this level.

{price}.available_to_back[].sizenumber

Money available at this price.

{price}.available_to_lay[]array

Betfair Exchange only: up to 3 price levels you can lay at, best first. Same rules as available_to_back.

{price}.available_to_lay[].pricenumber

Decimal price at this level.

{price}.available_to_lay[].sizenumber

Money available at this price.

curl "https://api.soccer-data.co/v1/matches/match_yoeml0e6ae37/odds/live" \
  -H "X-Api-Key: $SOCCER_DATA_KEY"
200 · Example response
{
    "data": {
        "match_id": "match_yoeml0e6ae37",
        "bookmakers": [
            {
                "bookmaker": "Bet365",
                "markets": {
                    "match_odds": {
                        "home": {
                            "live": "2.000"
                        },
                        "draw": {
                            "live": "2.600"
                        },
                        "away": {
                            "live": "8.000"
                        }
                    },
                    "btts": {
                        "yes": {
                            "live": "4.333"
                        },
                        "no": {
                            "live": "1.200"
                        }
                    },
                    "total_goals": {
                        "1.5": {
                            "over": {
                                "live": "2.100"
                            },
                            "under": {
                                "live": "1.700"
                            }
                        },
                        "2.5": {
                            "over": {
                                "live": "4.500"
                            },
                            "under": {
                                "live": "1.182"
                            }
                        }
                    },
                    "asian_handicap": {
                        "home": {
                            "-0.5": {
                                "live": "1.950"
                            }
                        },
                        "away": {
                            "+0.5": {
                                "live": "1.875"
                            }
                        }
                    },
                    "correct_score": {
                        "0-0": {
                            "live": "4.500"
                        },
                        "1-0": {
                            "live": "3.750"
                        }
                    }
                }
            },
            {
                "bookmaker": "Betfair Exchange",
                "markets": {
                    "match_odds": {
                        "home": {
                            "live": "2.020",
                            "available_to_back": [
                                {
                                    "price": 2.02,
                                    "size": 1854.3
                                },
                                {
                                    "price": 2.0,
                                    "size": 2210.15
                                }
                            ],
                            "available_to_lay": [
                                {
                                    "price": 2.04,
                                    "size": 960.42
                                },
                                {
                                    "price": 2.06,
                                    "size": 1375.0
                                }
                            ]
                        },
                        "draw": {
                            "live": "2.640",
                            "available_to_back": [
                                {
                                    "price": 2.64,
                                    "size": 812.55
                                }
                            ],
                            "available_to_lay": [
                                {
                                    "price": 2.68,
                                    "size": 590.1
                                }
                            ]
                        },
                        "away": {
                            "live": "8.400",
                            "available_to_back": [
                                {
                                    "price": 8.4,
                                    "size": 120.75
                                }
                            ],
                            "available_to_lay": []
                        }
                    }
                }
            }
        ]
    }
}
Get a free key to try it