Soccer odds API
Soccer leagues, markets and prices through one REST API.
Soccer has the sport key soccer. Its events are between two teams, home and away.
Leagues
| League | Key | Bookmakers delivering |
|---|---|---|
| English Premier League | epl | 18 |
| La Liga | la_liga | 16 |
| Serie A | serie_a | 15 |
| Bundesliga | bundesliga | 11 |
| Ligue 1 | ligue_1 | 15 |
| MLS | mls | 12 |
| UEFA Champions League | champions_league | 4 |
Also in the catalogue, with no prices delivered yet: Scottish Premiership (scottish_prem), Iceland Besta deild (iceland_besta_deild), Iceland 1. deild (iceland_1_deild), Slovak Super Liga (slovak_super_liga), Slovak 2. Liga (slovak_2_liga), Brazilian Serie A (brazilian_serie_a), UEFA Champions League qualifiers (ucl_qualifiers), UEFA Europa League qualifiers (uel_qualifiers), UEFA Conference League qualifiers (uecl_qualifiers), UEFA Nations League (nations_league) and International soccer (international_soccer).
Request the leagues
curl -sS "https://api.sockodds.com/v1/leagues?sport=soccer" \
-H "Authorization: Bearer $SOCKODDS_API_KEY"const response = await fetch("https://api.sockodds.com/v1/leagues?sport=soccer", {
headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));import json, os, urllib.request
request = urllib.request.Request(
"https://api.sockodds.com/v1/leagues?sport=soccer",
headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
print(json.dumps(json.load(response), indent=2))Response from a local copy of the API with invented test prices
{
"data": [
{
"key": "epl",
"name": "English Premier League",
"sport": "soccer",
"region": "uk",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "scottish_prem",
"name": "Scottish Premiership",
"sport": "soccer",
"region": "uk",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "la_liga",
"name": "La Liga",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "serie_a",
"name": "Serie A",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "bundesliga",
"name": "Bundesliga",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "ligue_1",
"name": "Ligue 1",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "iceland_besta_deild",
"name": "Iceland Besta deild",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "iceland_1_deild",
"name": "Iceland 1. deild",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "slovak_super_liga",
"name": "Slovak Super Liga",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "slovak_2_liga",
"name": "Slovak 2. Liga",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "mls",
"name": "MLS",
"sport": "soccer",
"region": "us",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "brazilian_serie_a",
"name": "Brazilian Serie A",
"sport": "soccer",
"region": "intl",
"periods": [
"including_extra_time",
"full",
"half_1",
"half_2"
]
},
{
"key": "champions_league",
"name": "UEFA Champions League",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"regulation",
"half_1",
"half_2"
]
},
{
"key": "ucl_qualifiers",
"name": "UEFA Champions League qualifiers",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"regulation",
"half_1",
"half_2"
]
},
{
"key": "uel_qualifiers",
"name": "UEFA Europa League qualifiers",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"regulation",
"half_1",
"half_2"
]
},
{
"key": "uecl_qualifiers",
"name": "UEFA Conference League qualifiers",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"regulation",
"half_1",
"half_2"
]
},
{
"key": "nations_league",
"name": "UEFA Nations League",
"sport": "soccer",
"region": "eu",
"periods": [
"including_extra_time",
"full",
"regulation",
"half_1",
"half_2"
]
},
{
"key": "international_soccer",
"name": "International soccer",
"sport": "soccer",
"region": "intl",
"periods": [
"including_extra_time",
"full",
"regulation",
"half_1",
"half_2"
]
}
],
"meta": {
"count": 18,
"cursor": null
},
"links": {
"next": null
}
}Markets
63 market types are defined for soccer: result_pair, total_goals_odd_even, team_goals_odd_even, total_corners_odd_even, team_corners_odd_even, result_half_time_full_time, result_exact_score, result, both_teams_to_score, result_draw_no_bet, handicap and total_goals and more. Each league page lists the markets and periods that apply to it, and Markets lists them all.