La Liga data API

The world's easiest
La Liga API for developers ballers.

Scores, player data, minute-by-minute and intelligence through one clean API.

Verified match timelinefinished
RC Deportivo La Coruña crestRC Deportivo La Coruña
1–1
Levante crestLevante

63'

BNBil NsongoDeportivo La Coruna

Match, score and event details come from the served API response. No win probability is inferred or displayed.

4,940
La Liga matches
Measured from production coverage
13
Seasons
2014-15–2026-27
20
Clubs in table
2026-27
99.939%
API uptime
Status snapshot · observed 2026-09-03

How far back the La Liga archive goes

13 seasons are on record, back to 2014-15 — 4,629 finished games you can query today. One route serves the full span. These figures are measured from the customer-facing routes listed below, so this page cannot silently drift from the product.

ArchiveRouteSeasonsReaches back toFinished games
La Liga/v1/matches132014-15 – 2026-274,629

What each plan reaches

Edge & Pro
all 13 seasons
Solo & Trio
5 seasons
Free
the current season

Edge and Pro reach everything listed above. Solo and Trio reach five seasons. Free covers the current season.

Player intelligence

From player row to scouting profile.

Goals, assists, appearances and minutes stay attached to one served season row. Canonical player IDs and first-party asset URLs render when present; otherwise the page uses an honest text or monogram fallback.

Raphinha headshotRaphinhaBarcelona
12
Goals
3
Assists
7
Apps
1
Scoring rank

Soccer minute-by-minute

Follow the match, one event at a time.

Every event in the match, each one stamped to the minute it happened on, attached to the match clock, player, assist and canonical match ID.

Real match event feedMinute-by-minute
  1. 82'Daniel Requena Sánchez headshotDaniel Requena SánchezLevante· Assist:Petar Ratkov headshotPetar Ratkov
  2. 63'BNBil NsongoDeportivo La Coruna

What developers can build

Five La Liga products from one connected surface.

The same fixtures, standings, player rows, events and odds identities feed every view.

WHAT DEVELOPERS ARE BUILDING
Five products from the same connected surface.
9:41
PLAYERS · CURRENT LA LIGA SEASON
Fantasy XI
JA
FWDRaphinhaB
69
CM
FWDLamine Yamal
50
BR
FWDKylian MbappéB
41
PN
MIDSergio CamelloRM
38
JS
MIDM. Zabiri
35
TM
MIDA. BudimirRV
30
JG
FLEXRoberto FernándezRRCD
30
SEASON POINTS293
SHARE OF TOTAL7 SLOTS
CMC 15.9%NACUA 15.2%MCBRIDE 12.1%
How to build a La Liga fantasy app→
293 GOAL + ASSIST POINTS
9:41
TOTALS · 9-DAY DRIFT
Consensus movement
open → close · actual ○
CHI @ BAL−4.59
49.6845.0946
SF @ LA−2.27
46.0043.7349
BAL @ GB−1.85
40.0538.2065
How to build a La Liga betting model→
10 TO 11 BOOKS PER GAME
9:41
LATEST SERVED LA LIGA MATCH
Levante at RC Deportivo La Coruña
SOLDIER FIELD
LLevante
20
RDLCRC Deportivo La Coruña
10
Q4 · 8:41 REMAININGNYG BALL · 1ST & 1043 YARDS OUT
CURRENT DRIVENYG →
LBALL ON CHI 43CHI END ZONE
MATCH EVENT SNAPSHOT2 EVENTS
100Q1Q4
How to build a La Liga live match center→
RDLC 1 · L 1
9:41
CURRENT SEASON · PLAYER COMPARISON
Receiver scouting
JJ
RaphinhaB · ATTACKER
CL
YamalB · ATTACKER
crossover1,8091,7491,0481,077202020222025
PERCENTILE, EACH SEASON
JEFFERSONLAMB80th2025 · 94th100th
How to build a La Liga scouting tool→
151 TO 168 QUALIFYING WRS
9:41
POINTS PER GAME
Conditions analytics
INDOOR VS OUTDOOR
48.50
44.63
Indoor538 GAMES
Outdoor1,155 GAMES
INDOOR EDGE+3.87
How to build a soccer xG app→
2020 TO 2025 FINISHED GAMES

Standings

2026-27 La Liga standings.

The full 20-club table, aligned for phone and desktop. Source as of Oct 17, 2026, 9:01 AM UTC.

#ClubPWDLGDPtsElo
1Barcelona crestBarcelona8800+27241665
2Atlético Madrid crestAtlético Madrid8611+10191572
3Real Betis crestReal Betis8611+5191575
4Real Madrid crestReal Madrid8602+11181605
5Sevilla FC crestSevilla FC8422+1141496
6Real Sociedad crestReal Sociedad8413-3131501
7Alavés crestAlavés8323+4111480
8RC Deportivo La Coruña crestRC Deportivo La Coruña9252+1111499*
9Celta Vigo crestCelta Vigo8152+281491
10Athletic Club crestAthletic Club6222+181473
11Villarreal crestVillarreal8224081526
12Espanyol crestEspanyol8224081455
13Rayo Vallecano crestRayo Vallecano7223-581505
14Getafe crestGetafe8224-681483
15Real Racing Club de Santander crestReal Racing Club de Santander8224-1081484*
16Osasuna crestOsasuna8224-1081456
17Levante crestLevante8143-471472
18Elche crestElche8134-661459
19Valencia crestValencia8125-951472
20Málaga crestMálaga8044-941465*

* Provisional Elo uses the latest match-by-match rating for promoted clubs that have not yet reached the ten-match publication floor.

Team strength

The La Liga Elo leaderboard.

A continuously recalculated rating across 20 clubs. Last computed Oct 13, 2026, 6:04 AM UTC.

  1. 1Barcelona crestBarcelona1665
  2. 2Real Madrid crestReal Madrid1605
  3. 3Real Betis crestReal Betis1575
  4. 4Atlético Madrid crestAtlético Madrid1572
  5. 5Villarreal crestVillarreal1526
  6. 6Rayo Vallecano crestRayo Vallecano1505
  7. 7Real Sociedad crestReal Sociedad1501
  8. 8RC Deportivo La Coruña crestRC Deportivo La Coruña1499*provisional

Player rankings

Goals and assists, side by side.

Both boards request the same current season as the standings and preserve canonical player IDs and first-party asset URLs when present. Identity is never guessed from a name, and monograms render when no image is served.

Top scorers

  1. 1Raphinha headshotRaphinhaBarcelona12goals
  2. 2Lamine Yamal headshotLamine YamalBarcelona7goals
  3. 3Kylian Mbappé headshotKylian MbappéReal Madrid7goals
  4. 4Sergio Camello headshotSergio CamelloRayo Vallecano7goals
  5. 5M. Zabiri headshotM. ZabiriReal Racing Club de Santander7goals
  6. 6A. Budimir headshotA. BudimirOsasuna6goals

Assist leaders

  1. 1Lamine Yamal headshotLamine YamalBarcelona5assists
  2. 2Javier Hernandez headshotJavier HernandezEspanyol5assists
  3. 3A. Gordon headshotA. GordonBarcelona4assists
  4. 4Raphinha headshotRaphinhaBarcelona3assists
  5. 5M. Díaz headshotM. DíazAlavés3assists
  6. 6Alberto Moleiro headshotAlberto MoleiroVillarreal3assists

Expected goals

La Liga xG leaders.

Expected-goals output for the 2026-27 season, shown only when the served response passes the publication checks.

GET /v1/leagues/laliga/xg-leaders?season={season}
#PlayerTeamAppsGoalsxGnpxGxAG−xG
1Kylian Mbappe-LottinReal Madrid879.237.741.81-2.23
2RaphinhaBarcelona7129.066.832.652.94
3Lamine YamalBarcelona876.394.915.060.61
4Roberto FernándezEspanyol865.195.190.280.81
5Ante BudimirOsasuna865.022.790.180.98
6Ayoze PérezVillarreal914.424.421.21-3.42
7Karim AdeyemiBarcelona824.294.291.54-2.29
8Pierre-Emerick AubameyangDeportivo La Coruna864.144.141.581.86
9Georges MikautadzeVillarreal924.053.311.27-2.05
10Yassir ZabiriRacing Santander873.903.900.063.10

Player availability

Soccer absences.

See which players missed a fixture and why, including injuries and suspensions, with the source date attached.

Next up

The next La Liga matches on the schedule.

17 Oct 2026 – 24 Oct 2026

Espanyol crestEspanyolvsAtlético Madrid crestAtlético Madrid

Oct 17, 2026, 12:00 PM UTC

Villarreal crestVillarrealvsElche crestElche

Oct 17, 2026, 2:15 PM UTC

Real Betis crestReal BetisvsBarcelona crestBarcelona

Oct 17, 2026, 4:00 PM UTC

Valencia crestValenciavsAthletic Club crestAthletic Club

Oct 17, 2026, 7:00 PM UTC

Osasuna crestOsasunavsReal Racing Club de Santander crestReal Racing Club de Santander

Oct 18, 2026, 12:00 PM UTC

Celta Vigo crestCelta VigovsAlavés crestAlavés

Oct 18, 2026, 2:15 PM UTC

From response to product

The same match, rendered and raw.

Resize the views to inspect how one real La Liga match response maps into a match-center interface.

Match centerfinished

RC Deportivo La Coruña

1
vs

Levante

1
Kickoff
2026-10-16 19:00
Odds attached
Yes
GET /v1/matches/ebfee885-b0c6-4c74-af1d-fb9eb21b25eb
{
  "data": {
    "id": "ebfee885-b0c6-4c74-af1d-fb9eb21b25eb",
    "sport": "football",
    "league": "La Liga",
    "home": {
      "id": "ae11ccec-9712-476d-9d0c-82eea145d77d",
      "name": "RC Deportivo La Coruña",
      "short_name": "DEP",
      "logo_url": "https://api.bigballsdata.com/v1/assets/E3gWf_e1F5T0pIXbVB1h0iOA3RVvT6jI-CwENf_9llDqXSotdaM-7Tt7jkUesOKsBBm8sg3NODCn6kKvGKAlR-eUcgw"
    },
    "away": {
      "id": "06b2e2c1-ddd0-4872-8ca5-624d5d1a4f29",
      "name": "Levante",
      "short_name": "LEV",
      "logo_url": "https://api.bigballsdata.com/v1/assets/gGLiVix8L00fqEBBtOqKTqXWkddURw4NaBWl_aDhJ6JQVwKY45jiJT7mBVpjPFntVGVyVloWC69zwKTvhTtfsAjxKpf12QAwaQdysPP1zdgPIZTpomR_NHob5lHd63nIv2Qt"
    },
    "kickoff_utc": "2026-10-16T19:00:00.000Z",
    "status": "finished",
    "score": {
      "home": 1,
      "away": 1
    },
    "linescore": {
      "away": [
        0,
        1
      ],
      "home": [
        0,
        1
      ]
    },
    "attendance": null,
    "broadcast": "ESPN Deportes",
    "round": "Regular Season - 9",
    "has_odds": true
  }
}

Drag the divider or use the arrow keys. On mobile the rendered view and exact response stack.

Embeddable La Liga widgets

Publish useful league views before writing an integration.

These lightweight iframe pages require no visitor API key. The page fetches through the server and keeps the credential out of the browser.

Standings

<iframe src="https://bigballsdata.com/embed/la-liga/standings" title="La Liga Standings" width="100%" height="620" loading="lazy" style="border:0"></iframe>
Open the tokenless widget

Goal leaders

<iframe src="https://bigballsdata.com/embed/la-liga/leaders" title="La Liga Goal leaders" width="100%" height="560" loading="lazy" style="border:0"></iframe>
Open the tokenless widget

Real API example

One request. A traversable La Liga match ID.

Start with the schedule, then follow the returned canonical match UUID into detail, events, statistics and odds.

curl -H "Authorization: Bearer $BBS_API_KEY" "https://api.bigballsdata.com/v1/matches?sport=football&league=laliga"
{
  "data": {
    "id": "ebfee885-b0c6-4c74-af1d-fb9eb21b25eb",
    "sport": "football",
    "league": "La Liga",
    "home": {
      "id": "ae11ccec-9712-476d-9d0c-82eea145d77d",
      "name": "RC Deportivo La Coruña",
      "short_name": "DEP",
      "logo_url": "https://api.bigballsdata.com/v1/assets/E3gWf_e1F5T0pIXbVB1h0iOA3RVvT6jI-CwENf_9llDqXSotdaM-7Tt7jkUesOKsBBm8sg3NODCn6kKvGKAlR-eUcgw"
    },
    "away": {
      "id": "06b2e2c1-ddd0-4872-8ca5-624d5d1a4f29",
      "name": "Levante",
      "short_name": "LEV",
      "logo_url": "https://api.bigballsdata.com/v1/assets/gGLiVix8L00fqEBBtOqKTqXWkddURw4NaBWl_aDhJ6JQVwKY45jiJT7mBVpjPFntVGVyVloWC69zwKTvhTtfsAjxKpf12QAwaQdysPP1zdgPIZTpomR_NHob5lHd63nIv2Qt"
    },
    "kickoff_utc": "2026-10-16T19:00:00.000Z",
    "status": "finished",
    "score": {
      "home": 1,
      "away": 1
    },
    "linescore": {
      "away": [
        0,
        1
      ],
      "home": [
        0,
        1
      ]
    },
    "attendance": null,
    "broadcast": "ESPN Deportes",
    "round": "Regular Season - 9",
    "has_odds": true
  }
}

La Liga data reference

Start with the product you want to build.

The recommendation cards are derived from the endpoint list below, so their plan labels and routes stay together.

Match center
Free/v1/matches?sport=football&league=laliga
Solo/v1/matches/:id/statistics
Free/v1/matches/:id/events?sport=football
Scouting + fantasy
Free/v1/players/:id/stats?sport=football
Odds model
Solo/v1/teams/:id/h2h-intelligence

6 endpoints · 83 documented fields. Click any row to see every field it returns.

Stats included

Every soccer stat field the API returns today — 82 in total, grouped by how they are produced. Each group carries its own freshness, because a sport is rarely uniformly current.

Season player stats

Post-game

Written after the game ends — not a live in-game feed. Last ingested 2026-09-15.

Endpoint
/v1/players/:id/stats
Last updated
2026-09-15

Fields (42)

Shooting
Dribbles Attempted, Shots on Target, Shots, Npxg, XG, XG Buildup, XG Chain
Scoring
Match Rating, Goals, Npg
Passing
Assists, Pass Accuracy, Key Passes, Passes, Xa
Possession
Dribbled Past, Dribbles Completed
Defending
Duels, Duels Won, Blocks, Interceptions, Tackles
Goalkeeping
Goals Conceded, Saves
Discipline
Red Cards, Yellow Cards, Second Yellow (red), Fouls Committed, Fouls Drawn, Penalties Conceded, Penalties Missed, Penalties Saved, Penalties Scored, Penalties Won
Appearances
Appearances, Starts, Minutes Played, Unused Substitute, Substituted On, Substituted Off, Games, Minutes

Team stats (per game)

Post-game

Written after the game ends — not a live in-game feed. Last ingested 2026-09-16.

Endpoint
/v1/matches/:id/statistics
Last updated
2026-09-16

Fields (40)

Shooting
Shot %, Shots on Target, Total Shots
Scoring
Final Score Ft Away, Final Score Ft Home, Final Score, Tournament Topscorers
Passing
Accurate Crosses, Accurate Long Balls, Accurate Passes, Cross Accuracy %, Long-Ball Accuracy %, Pass Accuracy %, Total Crosses, Total Long Balls, Total Passes
Possession
Momentum, Possession %, Team Form, Team Match Stats, Won Corners
Defending
Blocked Shots, Effective Clearances, Effective Tackles, Interceptions (defensive), Tackle %, Total Clearance, Total Tackles
Goalkeeping
Saves (goalkeeper)
Discipline
Fouls Committed, Offsides, Penalty Goals, Penalty Shots, Red Cards, Yellow Cards
Appearances
Average Positions, Best Players, Away Lineup, Home Lineup, Player Match Stats

Not included

  • Not shown here — team_per_game_advanced: advanced team stats that no route currently serves.
  • Not shown here — injuries: injury reports — reference data with its own endpoint.

Missing a stat?

If a field you need is not listed, tell us. Requests help prioritize what we add next.

Name the field or the endpoint shape. Specifics help more than categories.

Goes straight to the team as a product signal. No newsletter, no account, nothing else done with your address.

MCP

Connect an agent. Start building.

Give an agent the La Liga league key and let it traverse fixtures, standings, players, events and odds through the same API identity.

YOU

Build a La Liga match center and scouting board.

✓ list_matches league=laliga

✓ get_standings season=current

✓ get_player_stats player_id={player_id}

La Liga surface connected. Rendering current league context.

Data freshness

How fresh is La Liga data, exactly?

This page checked its served sources Oct 17, 2026, 9:31 AM UTC. Cadences remain category-specific.

  • Real-time

    Live scores

    Every 15 seconds

    During live matches

    Source as of: Oct 16, 2026, 7:00 PM UTC

  • Real-time

    Odds

    Every 60 seconds

    Delta polling

    Source as of: Oct 17, 2026, 9:31 AM UTC

  • Real-time

    Standings

    After final whistle

    Current table recalculation

    Source as of: Oct 17, 2026, 9:01 AM UTC

  • Real-time

    Player stats

    Every 15 seconds

    During live matches

    Source as of: Oct 17, 2026, 9:31 AM UTC

  • Daily

    Rosters

    Checked daily

    Updated when changes are detected

    Source as of: Cadence contract; no roster timestamp on this page

  • Frequent

    Injuries

    Every 30 minutes

    Absence ingest; read meta.as_of

    Source as of: 2026-10-19

  • Frequent

    Games and schedule

    Every 15 minutes

    Upcoming fixture window

    Source as of: Oct 17, 2026, 9:31 AM UTC

  • Static

    Historical stats

    Static

    After corrections settle

    Source as of: 2026-27

Founder pricing

Start with La Liga. Add depth as the product grows.

Current founder pricing comes from the shared billing manifest. Crossed-out figures are future prices, not what customers pay today.

Free

$0
  • ✓ One sport
  • ✓ Scores, schedules and standings
  • ✓ Teams, players and final box scores
  • ✓ Current season
Get a key

Solo

$19per monthFuture price $39
  • ✓ Everything in Free
  • ✓ La Liga player and team season stats
  • ✓ Player form and team intelligence
  • ✓ Up to five seasons
Choose Solo

Trio

$49per monthFuture price $99
  • ✓ Everything in Solo
  • ✓ Choose three sports
  • ✓ The same La Liga depth across your selected sports
  • ✓ Up to five seasons
Choose Trio

Edge

$149per monthFuture price $299
  • ✓ Everything in Trio
  • ✓ All sports
  • ✓ Current and historical La Liga odds
  • ✓ All available history
Choose Edge

Pro

$299per monthFuture price $999
  • ✓ Everything in Edge
  • ✓ Real-time WebSocket delivery
  • ✓ All available history
Choose Pro

La Liga API FAQ

Answers before you build.

What La Liga data can I get from the API?

Fixtures, scores, standings, clubs, players, match statistics, goal events, xG, head-to-head history, and odds are available through connected routes. Each response keeps canonical match and club identifiers so a product can move from a schedule into detail. The reference section on this page shows the plan floor for each capability.

Read the relevant docs →
Is the La Liga data live, and how quickly does it update?

Freshness depends on the dataset rather than one page-wide timer. Live scores and player statistics can refresh during matches, while fixtures, rosters, injuries, and historical rows use slower cadences. Read the source date and response metadata before deciding how often your application should poll.

Read the relevant docs →
How do I get access and make my first La Liga request?

Create an account and API key, then send it as a Bearer token. Start with the La Liga matches or standings route so a healthy response is useful even when no match is live. Keep the returned canonical IDs for the detail calls that follow.

Read the relevant docs →
How do I find player, club, and match IDs?

Discover identifiers from list responses instead of guessing them from names. Match and standings rows provide the club or match identity needed by detail routes. Preserve those IDs in your own records because accents, abbreviations, and transfers make name joins unsafe.

Read the relevant docs →
How much historical La Liga data is available?

The exact season range depends on the dataset and your plan. Use the coverage response and the season labels returned by each route before promising a date range to users. Founder plans expose current-season evaluation on Free, up to five seasons on Solo and Trio, and available history on Edge and Pro.

Read the relevant docs →
How do seasons and competition status work?

La Liga seasons span two calendar years, so retain the served season label rather than deriving it from kickoff year alone. Read match status to distinguish scheduled, live, finished, postponed, suspended, or cancelled fixtures. A current table and a future fixture window can legitimately carry different dates.

Read the relevant docs →
Can I get goals, assists, minutes, and expected goals?

Player-season statistics include goals, assists, minutes, and expected metrics where the source provides them. The xG leaderboard is published only when its completeness checks pass. Treat a missing value as unavailable, not as a measured zero.

Read the relevant docs →
Which plan includes xG?

xG needs the Solo plan or above. The expected_goals field of /v1/matches/:id/statistics and the player-season leaderboard at /v1/leagues/:id/xg-leaders both start at Solo. The rest of the team stats on /v1/matches/:id/statistics — possession, shots, passes and the rest of the box score — stay available on Free. Coverage is the big five European leagues.

Read the relevant docs →
Does the API include La Liga match events, minute-by-minute?

Soccer match events cover goals, cards, substitutions and event timing. Scoring events are included on the Free tier through the default goals view. The full minute-by-minute stream is a Pro feature, with every event stamped to the minute it happened on. Use the canonical match ID from the schedule or match list to request them.

Read the relevant docs →
What does an empty result or missing field mean?

An empty list can be a healthy response for a valid filter with no matching rows. A null field means the value was unavailable or redacted, and it should not be converted into zero. Check status, pagination, metadata, and the requested season before diagnosing a data gap.

Read the relevant docs →
How should I use La Liga injury and suspension data?

The soccer availability surface records absences rather than an NFL-style weekly injury designation. An absence can reflect injury, suspension, or another stated reason, so preserve the reason supplied by the record. Read its source date separately from the live-score timestamp.

Read the relevant docs →
What are the rate limits, and how often should I poll?

Your plan and response headers define the enforceable request limits. Poll live matches more frequently than schedules, rosters, or completed historical statistics. Back off on a 429 response instead of retrying at the same cadence.

Read the relevant docs →
Are La Liga statistics corrected after matches?

Source corrections can change a completed match or player row after the final whistle. Keep canonical IDs so an updated value replaces the same record rather than creating a duplicate. Use the latest source date exposed by the response when auditability matters.

Read the relevant docs →
Can I use La Liga data in a commercial product?

Commercial use depends on your plan and the applicable terms for the fields you use. API access does not itself grant redistribution, sublicensing, trademark, or media rights. Review the terms before shipping a public or customer-facing integration.

Read the relevant docs →
Which timezone and timestamp format does La Liga data use?

Match kickoff records use UTC timestamps. Convert them for display at the edge of your application while retaining the original value for sorting and comparisons. Do not infer a season solely from the calendar year because the competition crosses years.

Read the relevant docs →
How are postponed, suspended, and cancelled matches represented?

Read the returned match status rather than inferring state from a blank score or an old kickoff time. Preserve status values your application does not yet recognize so future vocabulary changes do not become false finals. Wait for a terminal status before triggering irreversible settlement or notification logic.

Read the relevant docs →