La Liga odds API
La Liga prices, markets and identifiers through one REST API.
La Liga has the league key la_liga in the SockOdds API. It is a soccer league based in Europe (sport key soccer). Its events have a home and an away team.
Request La Liga odds
Current prices for the next La Liga game, one market, from every bookmaker your plan includes:
curl -sS "https://api.sockodds.com/v1/odds?league=la_liga&markets=result&limit=1&starts_after=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
-H "Authorization: Bearer $SOCKODDS_API_KEY"const response = await fetch(`https://api.sockodds.com/v1/odds?league=la_liga&markets=result&limit=1&starts_after=${new Date().toISOString().slice(0, 19)}Z`, {
headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));import json, os, urllib.request
from datetime import datetime, timezone
request = urllib.request.Request(
f"https://api.sockodds.com/v1/odds?league=la_liga&markets=result&limit=1&starts_after={datetime.now(timezone.utc):%Y-%m-%dT%H:%M:%SZ}",
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": [
{
"id": "ev_000ckk00jb9a",
"name": "Alavés v Athletic Club",
"league": {
"key": "la_liga",
"name": "La Liga"
},
"scheduled_start": "2026-10-16T13:00:00.000Z",
"status": "scheduled",
"participants": [
{
"role": "away",
"identity": {
"key": "athletic_club",
"name": "Athletic Club"
}
},
{
"role": "home",
"identity": {
"key": "alav_s",
"name": "Alavés"
}
}
],
"markets": [
{
"id": "mk_2v7sjf8tydchmp0k",
"key": "result",
"name": "Result (with the draw)",
"period": "full",
"subject": null,
"alternate": false,
"outcomes": [
{
"id": "oc_3xhgv1s5ywrywtxr",
"name": "Alavés",
"side": "home",
"line": null,
"prices": [
{
"bookmaker": "tab",
"decimal_odds": 2.11,
"implied_probability": 0.473934,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "sportsbet",
"decimal_odds": 2.05,
"implied_probability": 0.487805,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "neds",
"decimal_odds": 2.01,
"implied_probability": 0.497512,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
},
{
"id": "oc_72pshwdss3j21byr",
"name": "Draw",
"side": "draw",
"line": null,
"prices": [
{
"bookmaker": "tab",
"decimal_odds": 3.5,
"implied_probability": 0.285714,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "sportsbet",
"decimal_odds": 3.4,
"implied_probability": 0.294118,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "neds",
"decimal_odds": 3.33,
"implied_probability": 0.3003,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
},
{
"id": "oc_8gm7dhfdby0kcbya",
"name": "Athletic Club",
"side": "away",
"line": null,
"prices": [
{
"bookmaker": "tab",
"decimal_odds": 3.71,
"implied_probability": 0.269542,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "sportsbet",
"decimal_odds": 3.6,
"implied_probability": 0.277778,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
},
{
"bookmaker": "neds",
"decimal_odds": 3.53,
"implied_probability": 0.283286,
"available": true,
"observed_at": "2026-10-15T07:58:00.000Z"
}
]
}
]
}
]
}
],
"meta": {
"count": 1,
"cursor": null
},
"links": {
"next": null
}
}Prices are decimal and exactly as each bookmaker showed them, with the time we saw them. A price older than ten minutes is withheld rather than shown as current.
Bookmakers
16 bookmakers deliver La Liga prices through v1 as of 30 October 2026: Sportsbet, TAB, Neds, Unibet, Betfair Exchange, Pinnacle, Dabble, Kalshi, Polymarket, Matchbook, BetDeluxe, BetFocus, Mintbet, ProphetX, SwiftBet and TABtouch.
La Liga markets
63 market types are defined for La Liga. Ask for any of them with markets=; a bookmaker quotes the markets it offers for each game.
Game markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Either of two results | result_pair | home_or_draw, away_or_draw, either_team | No | full, half_1, half_2 |
| Total goals odd/even | total_goals_odd_even | odd, even | No | full, half_1, half_2 |
| Total corners odd/even | total_corners_odd_even | odd, even | No | full |
| Half-time/full-time | result_half_time_full_time | home_home, home_draw, home_away, draw_home, draw_draw, draw_away, away_home, away_draw, away_away | No | full |
| Exact score | result_exact_score | Each exact score | No | full, half_1, half_2 |
| Result (with the draw) | result | home, draw, away | No | full, half_1, half_2 |
| Both teams to score | both_teams_to_score | yes, no | No | full, half_1, half_2 |
| Result (draw no bet) | result_draw_no_bet | home, away | No | full, half_1, half_2 |
| Handicap | handicap | home, away, competitor_1, competitor_2 | Yes | full, half_1, half_2 |
| Total goals | total_goals | over, under | Yes | full, half_1, half_2 |
| Total corners | total_corners | over, under | Yes | full, half_1, half_2 |
| Total cards | total_cards | over, under | Yes | full |
| Total cards (a straight red counts one) | total_cards_single | over, under | Yes | full |
| Three-way handicap (home line) | result_handicap | home, draw, away | Yes | full, half_1, half_2 |
| A goal in both halves | goal_in_both_halves | yes, no | No | full |
| Both teams to score in both halves | both_teams_to_score_both_halves | yes, no | No | full |
| Both teams over (goals) | both_teams_goals_over | yes, no | Yes | full |
| Both teams over (cards) | both_teams_cards_over | yes, no | Yes | full |
| Highest-scoring half | highest_scoring_half | half_1, half_2, tie | No | full |
| Half of the first goal | first_goal_half | half_1, half_2, no_goal | No | full |
| Which teams score | which_teams_score | both_teams, home_only, away_only, neither_team | No | full |
| An own goal is scored | own_goal | yes, no | No | full |
| First team to score | first_team_to_score | home, away | No | full, half_1, half_2 |
| Last team to score | last_team_to_score | home, away | No | full |
| Most corners | result_corners | home, draw, away | No | full, half_1 |
| Corners handicap | handicap_corners | home, away | Yes | full |
| Corners three-way handicap (home line) | result_handicap_corners | home, draw, away | Yes | full |
| Most cards | result_cards | home, draw, away | No | full |
| Cards three-way handicap (home line) | result_handicap_cards | home, draw, away | Yes | full |
| Total shots on target | total_shots_on_target | over, under | Yes | full |
| Total saves | total_saves | over, under | Yes | full |
Team markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Team goals odd/even | team_goals_odd_even | odd, even | No | full, half_1, half_2 |
| Team corners odd/even | team_corners_odd_even | odd, even | No | full |
| Team goals over/under | team_goals_over_under | over, under | Yes | full, half_1, half_2 |
| Team corners over/under | team_corners_over_under | over, under | Yes | full, half_1, half_2 |
| Team shots on target over/under | team_shots_on_target_over_under | over, under | Yes | full |
| Team saves over/under | team_saves_over_under | over, under | Yes | full |
| Team cards over/under | team_cards_over_under | over, under | Yes | full |
| Team wins either half | team_win_either_half_yes_no | yes, no | No | full |
| Team wins both halves | team_win_both_halves_yes_no | yes, no | No | full |
| Team scores in both halves | team_goal_in_both_halves_yes_no | yes, no | No | full |
| Team keeps a clean sheet | team_clean_sheet_yes_no | yes, no | No | full |
Player markets
| Market | Key | Sides | Line | Periods |
|---|---|---|---|---|
| Anytime goal scorer | player_goals_anytime | yes | No | full |
| First goal scorer | player_goals_first | Each competitor | No | full |
| Last goal scorer | player_goals_last | Each competitor | No | full |
| Player goals over/under | player_goals_over_under | over, under | Yes | full |
| Player tackles over/under | player_tackles_over_under | over, under | Yes | full |
| Player shots over/under | player_shots_over_under | over, under | Yes | full |
| Player shots on target over/under | player_shots_on_target_over_under | over, under | Yes | full |
| Anytime assist | player_assists_anytime | yes | No | full |
| To be carded | player_cards_anytime | yes | No | full |
| Player saves over/under | player_saves_over_under | over, under | Yes | full |
| Assist, starter only | player_assists_starter_anytime | yes | No | including_extra_time |
| First goalscorer, starter only | player_goals_starter_first | yes | No | including_extra_time |
| Last goalscorer, starter only | player_goals_starter_last | yes | No | including_extra_time |
| Goals, starter only | player_goals_starter_anytime | yes | No | including_extra_time |
| Goals or assists, starter only | player_goals_assists_starter_anytime | yes | No | including_extra_time |
| Booked, starter only | player_cards_starter_anytime | yes | No | including_extra_time |
| Shots on target, starter only | player_shots_on_target_starter_over_under | over, under | Yes | including_extra_time |
| Shots, starter only | player_shots_starter_over_under | over, under | Yes | including_extra_time |
| Fouls committed, starter only | player_fouls_committed_starter_over_under | over, under | Yes | including_extra_time |
| Tackles, starter only | player_tackles_starter_over_under | over, under | Yes | including_extra_time |
| Times fouled, starter only | player_fouled_starter_over_under | over, under | Yes | including_extra_time |
Periods
including_extra_time (Match including extra time), full (Full match), half_1 (First half) and half_2 (Second half).
Plans
La Liga is included on Rookie and Pro. Pro adds recorded price history, from 17 August 2026. See pricing.