Soccer odds API
Soccer odds for 80+ leagues from 46 books in one JSON shape. One key per league, from epl and la_liga to usa_mls, plus corners, cards, props and in-play.
Every league has its own key, 80+ in all: epl, la_liga, italy_serie_a, germany_bundesliga, france_ligue_one, uefa_champs_league, usa_mls and more. Or ask for the soccer key and add a league to narrow it. Each match has one stable id, so you never match club names across books.
Soccer has a long market list. You get the three-way match result, handicap and total ladders, both teams to score, double chance, corners, cards, halves and team totals. Player props cover scorers, shots and cards, and live odds are included from the Growth plan.
curl -H "X-API-Key: $ODDSLINK_KEY" \
"https://oddslink.app/v1/sports/epl/odds?markets=h2h,spreads,totals"import os, requests
r = requests.get(
"https://oddslink.app/v1/sports/epl/odds",
params={"markets": "h2h,spreads,totals"},
headers={"X-API-Key": os.environ["ODDSLINK_KEY"]},
)
r.raise_for_status()
for game in r.json():
print(game["away_team"], "at", game["home_team"])[
{
"id": "soccer:liverpool-manchestercity:2026-10-11",
"sport_key": "epl",
"sport_title": "EPL",
"commence_time": "2026-10-11T15:30:00.000Z",
"is_live": false,
"status": "scheduled",
"home_team": "Liverpool",
"away_team": "Manchester City",
"bookmakers": [
{
"key": "pinnacle",
"title": "Pinnacle",
"last_update": "2026-10-11T05:26:27.040Z",
"markets": [
{
"key": "totals",
"last_update": "2026-10-11T05:26:27.040Z",
"outcomes": [
{
"name": "Over",
"price": -382,
"point": 2,
"size": {
"kind": "posted_limit",
"amount": 10000
}
},
{
"name": "Under",
"price": 302,
"point": 2,
"size": {
"kind": "posted_limit",
"amount": 10000
}
}
]
}
]
},
{
"key": "draftkings",
"title": "Draftkings",
"last_update": "2026-10-11T05:26:38.115Z",
"markets": [
{
"key": "h2h",
"last_update": "2026-10-11T05:26:38.115Z",
"outcomes": [
{
"name": "Manchester City",
"price": 125
},
{
"name": "Liverpool",
"price": 195
},
{
"name": "Draw",
"price": 275
}
]
},
{
"key": "spreads",
"last_update": "2026-10-11T05:26:38.115Z",
"outcomes": [
{
"name": "Manchester City",
"price": -116,
"point": -0.25
},
{
"name": "Liverpool",
"price": -125,
"point": 0.25
}
]
},
{
"key": "totals",
"last_update": "2026-10-11T05:26:38.115Z",
"outcomes": [
{
"name": "Over",
"price": -172,
"point": 2.5
},
{
"name": "Under",
"price": 140,
"point": 2.5
}
]
}
]
}
],
"unmatched_bookmakers": []
}
]A real Soccer response from 11 Oct 2026, trimmed.
More than the main line
Match result, handicap, total
Three-way moneyline, spread with Asian handicap lines, and the whole total ladder, main line first.
Both teams to score
Yes and no, for the full match and the first half, next to double chance and draw no bet lines.
Corners and cards
Total corners, corner handicaps and total cards, for the full match and the first half.
Halves and team totals
First half and second half lines for the main markets, and each team's own total.
Player props
Anytime and first goalscorer, shots on target, assists and cards, on Growth and up.
In-play
Yes. Live soccer prices while the match is on, from the Growth plan and up.
Markets
| Market | Periods |
|---|---|
| Moneyline (match result, three-way) | Full match, halves |
| Spread (handicap), with alternate lines | Full match, halves |
| Total goals, with alternate lines | Full match, halves |
| Team totals | Full match, halves |
| Both teams to score | Full match, first half |
| Double chance | Full match |
| Draw no bet | Full match, first half |
| Total corners and corner handicap | Full match, first half |
| Total cards | Full match |
| Player props: scorers, shots on target, assists, cards | None |
Books for Soccer
Every book on every plan
| Plan | Per month | Requests a month | In-play and props | History |
|---|---|---|---|---|
| Free | $0 | 1,000 | No | No |
| Starter | $24 | 20,000 | No | No |
| Growth | $49 | 100,000 | Yes | No |
| Scale | $99 | 500,000 | Yes | 2 years |
| Business | $199 | 5,000,000 | Yes | All of it |
Questions
How do I get one league?
Use its key as the sport, for example epl, la_liga or usa_mls. You can also ask for soccer and add ?league=epl.
How many soccer leagues do you carry?
72, each with its own key. The key list is in the sport keys reference, and GET /v1/sports returns it.
Which books carry soccer?
All 46 books. A book shows up on a game once it prices it. Use the bookmakers filter to choose some, or leave it off to get every book.
Which soccer markets do you carry?
Match result, handicap, totals, team totals, both teams to score, double chance, corners, cards and draw no bet lines, with halves where the market has them.
Are soccer player props included?
Yes, on Growth and up. Props have their own route and you name the markets, such as player_goal_scorer_anytime or player_shots_on_target. Soccer props use the soccer key.
Is in-play included?
Yes. Live soccer prices are on the Growth plan and up, and so are player props.