The UEFA Nations League API for developers ballers.

A Postgres-backed UEFA Nations League results archive: 98 archived matches from the 2024/25 cycle with final scores and half-by-half linescores, plus head-to-head context against any opponent the same teams have played. No upstream credit burn, no quota cost.

250 req/day free (500 with GitHub). No credit card.

UEFA Nations League · 98 matches · 2024 & 2025 editions · DB-backed reads

98
matches archived
a partial, uneven slice of the 2024/25 cycle — not the full four-division competition
100%
matches with a recorded linescore
half-by-half score on every match in the archive
3
stages covered
League phase (Sep–Nov 2024, 78 matches, unevenly across divisions — see FAQ), knockout quarterfinals (Mar 2025, 16), Finals (Jun 2025, 4)

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?

We build what people actually ask for. If a field you need is not on this page, tell us — requests are how we decide what to 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.

What you can build

  • Results archive

    Browse the archived Nations League matches by date, with final scores.

  • Head-to-head tool

    Pull head-to-head history for any pairing across all competitions, not just this one.

  • Half-by-half scoreboard

    Render first-half / second-half linescores from the stored archive.

  • Group/knockout research

    Cross-check results without burning any upstream credits.

  • Backtest scaffold

    Iterate on the results archive without hitting an upstream provider on every page render.

Endpoints

On the gateway at api.bigballsdata.com. Authenticate with the bearer token from /dashboard/keys.

MethodPathReturnsPlan
GET/v1/matches?sport=football&league=UEFA Nations LeagueUEFA Nations League results (98 matches, paginated, DB-backed)Free
GET/v1/matches/:idSingle match by UUID: final score and linescoreFree
GET/v1/teams/:id/h2h-intelligenceHead-to-head history between two teams, across every competition they have met inSolo

Start on the free tier

100 requests per minute and 250 per day, free — the highest per-minute burst of any free sports API we checked. Burst is what matters when something asks several questions in a row and waits on each answer.

  • Every sport and league we cover — the paid tiers add history depth and premium fields, not more leagues.
  • Calls are counted one for one — no credit weighting, no markets-times-regions arithmetic.
  • Link GitHub and the daily cap goes to 500.
  • No credit card.
Get a key →

Or ask your AI tool directly

Connect your account to Claude, ChatGPT, Cursor, Perplexity or any other MCP-compatible tool and ask for soccer data in conversation — scores, standings, player stats and Elo ratings, with no API key to paste and no code to write. Your plan and limits carry over exactly as they do here.

Connect your AI tool →

Integrate in a few lines

Node.js, @bigballsdata/sdktypescript
import { BigBallSportsClient } from '@bigballsdata/sdk';

const client = new BigBallSportsClient(process.env.BBS_API_KEY!);

// Every archived UEFA Nations League result. This reads straight from the
// Postgres archive, not a live provider call — no upstream quota cost.
const matches = await client.matches.list({
  sport: 'football',
  league: 'UEFA Nations League',
  limit: 20,
});
for (const m of matches.data) {
  console.log(m.home.name, 'vs', m.away.name, '-', m.status, m.score);
}

98 archived Nations League matches. Zero quota cost.

This partial 2024/25 UEFA Nations League archive sits in the same Postgres archive as every other sport and competition on the API — same schema, same key, no separate international-football vendor to wire up for backtesting or research.

  • Reads straight from our database, not a live provider call — no upstream credits burned, however many requests you send.
  • The same canonical match envelope as every other sport, so Nations League code ports straight to the Premier League, NFL, or NBA endpoints.
  • Head-to-head lookups span every competition the two teams have met in, not just this one.

No dedicated Nations League plan — this is free tier, same as everything else: 250 req/day (500 with GitHub connected), no credit card.

Frequently asked

What UEFA Nations League data is available today?
98 archived matches from the 2024/25 cycle, with team names, kickoff times, final scores, and half-by-half linescores where recorded. This is not the full cycle — see "Which editions does the archive cover?" below for what is and is not included.
Are odds, lineups, or standings available?
Not yet. This is a results archive today — scores only. Odds, lineups, player stats, and a standings/group-table endpoint are not loaded for this competition.
Is a live 2026 edition tracked?
Not currently — this archive covers completed editions only. When a new edition kicks off, live coverage is a roadmap item, not a current claim.
What does "no upstream quota cost" mean?
Every endpoint listed here reads from our Postgres archive, not an upstream provider. Hitting them does not consume any upstream provider credits or vendor allowance.
Is it on the free tier?
Yes. Every endpoint listed here is free, 250 req/day (500 with GitHub connected).
Which editions does the archive cover?
The 2024/25 UEFA Nations League cycle, but only part of it — the full cycle runs four divisions (League A, B, C, D — 54 teams, roughly 188 matches across all of them), and our 98 matches are not an even slice of that. League A (the top division) is the best-covered: its group phase (September–November 2024), knockout quarterfinals (March 2025), and Finals (June 2025) are all present, though even League A's group phase has a few gaps. League B's group phase is only partially archived. Of League C's four groups, exactly one (Sweden, Azerbaijan, Slovakia, Estonia) is archived — the other three are not. League D (the lowest division — teams like San Marino, Gibraltar, and Andorra) has no matches archived at all. In short: this is a partial, top-heavy cross-section of the 2024/25 cycle, not the full four-division competition.
Can I get head-to-head history using this data?
Yes. GET /v1/teams/:id/h2h-intelligence?opponent_id=<team-uuid> returns results between two teams across every competition they have met in — not scoped to the Nations League alone, so a Portugal vs Spain query also pulls in any Euro or World Cup meetings between them.
Does this update as new editions are played?
Not automatically today. This is a closed archive of the completed 2024/25 season. Whether a future Nations League cycle gets added is undetermined — that is not a confirmed roadmap item, not a promise.

Get an API key in 30 seconds