- —
- Goals
- —
- Assists
- —
- Apps
- —
- Scoring rank
UEFA Nations League data API
The world's easiest
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.
57' · England
Real match event from the API. No win-probability field is inferred.
- 156
- UEFA Nations League matches
- Measured from production coverage
- 1
- Seasons
- 2026–2026
- 54
- Teams represented
- 2026
- 100%
- API uptime
- 90-day window to 2026-10-28 · 0 days below 100%
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.
Soccer minute-by-minute
Follow the match’s key events.
Goals, cards, substitutions and VAR decisions stay attached to the match clock, player, team and canonical match ID. This incident feed is not a pass-by-pass possession log.
- 84′Substitution
Vladimír CoufalSubstitution 5Czechia· On:Ondrej Kricfalusi
- 82′Substitution
Harry KaneSubstitution 5England· On:
Dominic Calvert-Lewin
- 67′Yellow card
Martin VitíkYellow CardCzechia
- 57′Goal3–0
Harry KaneNormal GoalEngland· Assist:
Lewis Hall
What developers can build
Five UEFA Nations League products from one connected surface.
The same fixtures, standings, player rows, events and odds identities feed every view.
Standings
2026 UEFA Nations League standings.
The full 54-team table, aligned for phone and desktop. Source as of Oct 7, 2026, 5:20 AM UTC.
We do not currently hold verified standings or squad lists for UEFA Nations League. The fixtures and match data shown elsewhere on this page remain available; this page does not substitute another competition's table or roster.
| # | Club | P | W | D | L | GD | Pts | Elo |
|---|---|---|---|---|---|---|---|---|
| 1 | SSwitzerland | 4 | 4 | 0 | 0 | +10 | 12 | 1622 |
| 2 | SSpain | 4 | 4 | 0 | 0 | +7 | 12 | 1785 |
| 3 | PPortugal | 4 | 4 | 0 | 0 | +5 | 12 | 1671 |
| 4 | SSlovakia | 4 | 3 | 1 | 0 | +7 | 10 | — |
| 5 | FFrance | 4 | 3 | 1 | 0 | +5 | 10 | 1786 |
| 6 | SSweden | 4 | 3 | 1 | 0 | +4 | 10 | 1570 |
| 7 | MMontenegro | 4 | 3 | 1 | 0 | +3 | 10 | — |
| 8 | EEngland | 4 | 3 | 0 | 1 | +11 | 9 | 1682 |
| 9 | AAlbania | 4 | 3 | 0 | 1 | +5 | 9 | — |
| 10 | IIceland | 4 | 2 | 2 | 0 | +6 | 8 | — |
| 11 | AAustria | 4 | 2 | 2 | 0 | +4 | 8 | 1641 |
| 12 | NINorthern Ireland | 4 | 2 | 2 | 0 | +4 | 8 | — |
| 13 | BABosnia and Herzegovina | 4 | 2 | 2 | 0 | +3 | 8 | 1525 |
| 14 | NNetherlands | 4 | 2 | 2 | 0 | +2 | 8 | 1748 |
| 15 | GGreece | 4 | 2 | 2 | 0 | +2 | 8 | — |
| 16 | FFinland | 4 | 2 | 1 | 1 | +7 | 7 | — |
| 17 | IItaly | 4 | 2 | 1 | 1 | +3 | 7 | — |
| 18 | BBelarus | 4 | 2 | 1 | 1 | +3 | 7 | — |
| 19 | CCyprus | 4 | 2 | 1 | 1 | +2 | 7 | — |
| 20 | SSlovenia | 4 | 2 | 1 | 1 | +2 | 7 | — |
| 21 | MMalta | 3 | 2 | 1 | 0 | +2 | 7 | — |
| 22 | HHungary | 4 | 2 | 1 | 1 | +1 | 7 | — |
| 23 | BBelgium | 4 | 2 | 0 | 2 | +1 | 6 | 1664 |
| 24 | EEstonia | 4 | 1 | 3 | 0 | +1 | 6 | — |
| 25 | DDenmark | 4 | 2 | 0 | 2 | 0 | 6 | — |
| 26 | RORep. Of Ireland | 4 | 1 | 2 | 1 | +2 | 5 | — |
| 27 | GGermany | 4 | 1 | 2 | 1 | +1 | 5 | 1757 |
| 28 | AAzerbaijan | 3 | 1 | 2 | 0 | +1 | 5 | — |
| 29 | KKosovo | 4 | 1 | 2 | 1 | -1 | 5 | — |
| 30 | PPoland | 4 | 1 | 1 | 2 | +3 | 4 | — |
| 31 | LLithuania | 3 | 1 | 1 | 1 | +1 | 4 | — |
| 32 | FIFaroe Islands | 4 | 0 | 4 | 0 | 0 | 4 | — |
| 33 | AArmenia | 4 | 1 | 1 | 2 | -1 | 4 | — |
| 34 | BBulgaria | 4 | 1 | 1 | 2 | -2 | 4 | — |
| 35 | SScotland | 4 | 1 | 1 | 2 | -2 | 4 | 1511 |
| 36 | UUkraine | 4 | 1 | 1 | 2 | -3 | 4 | — |
| 37 | MMoldova | 4 | 1 | 1 | 2 | -5 | 4 | — |
| 38 | NNorway | 4 | 1 | 0 | 3 | -2 | 3 | 1682 |
| 39 | WWales | 4 | 1 | 0 | 3 | -3 | 3 | — |
| 40 | LLuxembourg | 4 | 1 | 0 | 3 | -5 | 3 | — |
| 41 | CCroatia | 4 | 1 | 0 | 3 | -10 | 3 | 1686 |
| 42 | GGibraltar | 2 | 0 | 2 | 0 | 0 | 2 | — |
| 43 | KKazakhstan | 4 | 0 | 2 | 2 | -2 | 2 | — |
| 44 | GGeorgia | 4 | 0 | 2 | 2 | -2 | 2 | — |
| 45 | IIsrael | 4 | 0 | 2 | 2 | -5 | 2 | — |
| 46 | AAndorra | 3 | 0 | 1 | 2 | -2 | 1 | — |
| 47 | LLiechtenstein | 2 | 0 | 1 | 1 | -2 | 1 | — |
| 48 | LLatvia | 4 | 0 | 1 | 3 | -4 | 1 | — |
| 49 | SSerbia | 4 | 0 | 0 | 4 | -5 | 0 | — |
| 50 | CRCzech Republic | 4 | 0 | 0 | 4 | -8 | 0 | 1559 |
| 51 | TTurkey | 4 | 0 | 0 | 4 | -9 | 0 | 1664 |
| 52 | RRomania | 4 | 0 | 0 | 4 | -10 | 0 | — |
| 53 | FMFYR Macedonia | 4 | 0 | 0 | 4 | -10 | 0 | — |
| 54 | SMSan Marino | 4 | 0 | 0 | 4 | -15 | 0 | — |
Team strength
The UEFA Nations League Elo leaderboard.
A continuously recalculated rating across 16 clubs. Last computed Sep 28, 2026, 12:48 AM UTC.
- 1FFrance1786
- 2SSpain1785
- 3GGermany1757
- 4NNetherlands1748
- 5CCroatia1686
- 6EEngland1682
- 7NNorway1682
- 8PPortugal1671
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
Assist leaders
Competition-specific player rankings are not currently verifiable. The shared player-media resolver remains available when canonical rows are added; this page does not borrow players or headshots from another competition.
Player availability
Soccer absences.
A dedicated UEFA Nations League absence feed is not currently verified, so this panel reports that gap instead of borrowing domestic-league records.
players with absence records
Source as of not currently verifiable.
Review current soccer coverage →Next up
The next UEFA Nations League matches on the schedule.
12 Nov 2026 – 13 Nov 2026
Nov 12, 2026, 5:00 PM UTC
Nov 12, 2026, 5:00 PM UTC
Nov 12, 2026, 7:45 PM UTC
Nov 12, 2026, 7:45 PM UTC
Nov 12, 2026, 7:45 PM UTC
Nov 12, 2026, 7:45 PM UTC
From response to product
The same match, rendered and raw.
Resize the views to inspect how one real UEFA Nations League match response maps into a match-center interface.
England
3Czech Republic
0- Kickoff
- 2026-10-06 18:45
- Odds attached
- Yes
{
"data": {
"id": "06f875ab-d8cf-4abe-8a69-29e4beb29157",
"sport": "football",
"league": "UEFA Nations League",
"home": {
"id": "b9156c53-f28e-4a33-b9a7-04e00d921ba2",
"name": "England",
"short_name": "ENG",
"logo_url": "https://api.bigballsdata.com/v1/assets/MmNlJjZ5_6150zQGA9b79Bj4rnFzjEYwUBGa7hbFC-nLByEvZ92GIgJRQzYfBMxwiqPjPNpduDcEUFixQvAgb9B-iwM"
},
"away": {
"id": "497fae16-b01d-4442-9af3-caae3d0b4a2a",
"name": "Czech Republic",
"short_name": "CZE",
"logo_url": "https://api.bigballsdata.com/v1/assets/cqWGDmUPZKgUXpnjUkVQXO3W2QWC0dQCsUrcwPG6fqEsUJuifI7FJ5s0VHxTHRlLZeCOVfRWOayRX7uIz8qlrvL0Bvg"
},
"kickoff_utc": "2026-10-06T18:45:00.000Z",
"status": "finished",
"score": {
"home": 3,
"away": 0
},
"linescore": {
"away": [
0
],
"home": [
3
]
},
"attendance": null,
"broadcast": null,
"round": "League A - 4",
"has_odds": true
}
}Drag the divider or use the arrow keys. On mobile the rendered view and exact response stack.
Embeddable UEFA Nations League 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/uefa-nations-league/standings" title="UEFA Nations League Standings" width="100%" height="620" loading="lazy" style="border:0"></iframe>Real API example
One request. A traversable UEFA Nations League 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=UEFA Nations League"{
"data": {
"id": "06f875ab-d8cf-4abe-8a69-29e4beb29157",
"sport": "football",
"league": "UEFA Nations League",
"home": {
"id": "b9156c53-f28e-4a33-b9a7-04e00d921ba2",
"name": "England",
"short_name": "ENG",
"logo_url": "https://api.bigballsdata.com/v1/assets/MmNlJjZ5_6150zQGA9b79Bj4rnFzjEYwUBGa7hbFC-nLByEvZ92GIgJRQzYfBMxwiqPjPNpduDcEUFixQvAgb9B-iwM"
},
"away": {
"id": "497fae16-b01d-4442-9af3-caae3d0b4a2a",
"name": "Czech Republic",
"short_name": "CZE",
"logo_url": "https://api.bigballsdata.com/v1/assets/cqWGDmUPZKgUXpnjUkVQXO3W2QWC0dQCsUrcwPG6fqEsUJuifI7FJ5s0VHxTHRlLZeCOVfRWOayRX7uIz8qlrvL0Bvg"
},
"kickoff_utc": "2026-10-06T18:45:00.000Z",
"status": "finished",
"score": {
"home": 3,
"away": 0
},
"linescore": {
"away": [
0
],
"home": [
3
]
},
"attendance": null,
"broadcast": null,
"round": "League A - 4",
"has_odds": true
}
}Missing a stat?
If a field you need is not listed, tell us. Requests help prioritize what we add next.
MCP
Connect an agent. Start building.
Give an agent the UEFA Nations League league key and let it traverse fixtures, standings, players, events and odds through the same API identity.
You
Build a UEFA Nations League match center with the table, current leaders and market context.
list_matches · league=UEFA Nations League
get_standings · season=current
get_player_stats · leaders=true
get_match_odds · books=all
Agent
UEFA Nations League context resolved. I joined the same match, club and player identities across four tools.
Generated product cards
England 3–0 Czech Republic
Data freshness
How fresh is UEFA Nations League data, exactly?
This page checked its served sources Nov 3, 2026, 8:45 AM UTC. Cadences remain category-specific.
- Real-time
Live scores
Every 15 secondsSource as of: Oct 6, 2026, 6:45 PM UTC
- Real-time
Odds
Every 60 secondsSource as of: Nov 3, 2026, 8:45 AM UTC
- Real-time
Standings
After final whistleSource as of: Oct 7, 2026, 5:20 AM UTC
- Real-time
Player stats
Every 15 secondsSource as of: Nov 3, 2026, 8:45 AM UTC
- Daily
Rosters
Checked dailySource as of: Cadence contract; no roster timestamp on this page
- Frequent
Injuries
Every 30 minutesSource as of: No injury as-of date resolved
- Frequent
Games and schedule
Every 15 minutesSource as of: Nov 3, 2026, 8:45 AM UTC
- Static
Historical stats
StaticSource as of: 2026
Choose the right plan
What does your UEFA Nations League product need?
Pick a product to highlight every required capability and the lowest plan that includes the complete build. Expand a capability only when you need its endpoint.
Matches and table
Fixtures, live scores and resultsFree
/v1/matches?sport=football&league={league}League standings and recordsFree
/v1/standings?sport=football&league={league}Clubs, crests and player directoryFree
/v1/teams · /v1/playersMatch details and final scoreFree
/v1/matches/{id}Player intelligence
Player headshotsStarts at Solo
/v1/leagues/{id}/top-scorersGoals, assists, appearances and minutesStarts at Solo
/v1/players/{id}/club-formShots on target, key passes and match ratingsStarts at Solo
/v1/players/{id}/club-formExpected goals
xG, xA and non-penalty xG leadersStarts at Solo
/v1/leagues/{id}/xg-leadersModels and form
Club form and head-to-head intelligenceStarts at Edge
/v1/teams/{id}/form · /v1/teams/{id}/h2h-intelligenceOdds and betting
Advanced match statistics: possession, shots, cards and xGStarts at Edge
/v1/matches/{id}/statisticsCurrent multi-book match oddsStarts at Edge
/v1/matches/{id}/oddsHistorical odds and closing linesStarts at Edge
/v1/odds/historical · /v1/odds/closing-linesLine movement, trends and schedule contextStarts at Edge
/v1/games/{id}/line-movement · /v1/teams/{id}/trendsOdds divergence signalsStarts at Edge
/v1/odds/divergencesPlay-by-play and live
Soccer play-by-play: goals, cards, substitutions and match eventsStarts at Pro
/v1/matches/{id}/events?sport=footballReal-time WebSocket deliveryStarts at Pro
wss://api.bigballsdata.com/v1/wsOdds fields can be removed inside a successful response when the key lacks betting access. The rest of the response remains available while restricted fields are redacted.
Founder pricing
Start with UEFA Nations League. 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
- ✓ One sport
- ✓ Scores, schedules and standings
- ✓ Teams, players and final box scores
- ✓ Current season
Solo
- ✓ Everything in Free
- ✓ UEFA Nations League player and team season stats
- ✓ Player form and team intelligence
- ✓ Up to five seasons
Trio
- ✓ Everything in Solo
- ✓ Choose three sports
- ✓ The same UEFA Nations League depth across your selected sports
- ✓ Up to five seasons
Edge
- ✓ Everything in Trio
- ✓ All sports
- ✓ Current and historical UEFA Nations League odds
- ✓ All available history
Pro
- ✓ Everything in Edge
- ✓ Real-time WebSocket delivery
- ✓ All available history
UEFA Nations League API FAQ
Answers before you build.
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?
Yes. The 2026/27 cycle is loaded and updating: 156 fixtures alongside the 98-match 2024/25 archive. Scores and head-to-head history are DB-backed reads with no upstream quota cost.
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 for the match routes: GET /v1/matches and GET /v1/matches/:id are free, 1,000 req/day (2,000 with GitHub connected). Head-to-head, GET /v1/teams/:id/h2h-intelligence, is on the Solo plan.
Which editions does the archive cover?
Two cycles, and they are not alike. The 2026/27 cycle holds the COMPLETE GROUP PHASE: 156 fixtures, all four divisions, six matchdays each with no gaps (League A, B and C carry 8 fixtures per matchday, League D 2), 2026-09-24 to 2026-11-17 — with scores filling in as matches finish (27 finished as of 2026-09-27) and no odds attached yet. The 2027 knockout rounds are not scheduled yet and so are not listed. The 2024/25 cycle is an archive, and 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?
Yes, for the 2026/27 cycle — it is loaded and updating. The complete 156-fixture group phase (2026-09-24 to 2026-11-17) is in the API, and finished matches carry scores. The 2024/25 cycle remains a closed archive beside it. Odds are not yet attached to 2026/27 fixtures. Cycles beyond 2026/27 are undetermined — not a confirmed roadmap item, not a promise.
What UEFA Nations League data can I get from the API?
Fixtures, scores, teams, match details, head-to-head history, and available odds are exposed through the connected soccer routes. Richer statistics and event panels render only when this competition has a measured, publishable source; an absent panel is not silently replaced with another league's data. Canonical match and national-team identifiers let a product move from schedule to detail without joining on display names.
Read the relevant docs →Is UEFA Nations League 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, absences, and settled 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 make my first UEFA Nations League request?
Create an account and API key, then send it as a Bearer token. Start with /v1/matches?sport=football&league=UEFA Nations League or /v1/standings?sport=football&league=UEFA Nations League 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. UEFA Nations League match rows provide the national-team or match identity needed by detail routes. Preserve those IDs in your own records because accents, abbreviations, transfers, and reused display names make name joins unsafe.
Read the relevant docs →How much historical UEFA Nations League data is available?
The exact season range depends on the dataset and your plan. Use the coverage response and 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 all available history on Edge and Pro.
Read the relevant docs →How do UEFA Nations League seasons and match statuses work?
UEFA Nations League is organized by edition or competition cycle rather than a permanent domestic table. Retain the served edition and match status instead of manufacturing a domestic-style season from the kickoff year. Read match status to distinguish scheduled, live, finished, postponed, suspended, or cancelled fixtures. A table or archive and a future fixture window can legitimately carry different source timestamps.
Read the relevant docs →Can I get goals, assists, minutes, and expected goals?
This page does not claim a dedicated UEFA Nations League expected-goals leaderboard today. Match or player statistics appear only when the competition-specific source provides them and the publication checks pass. Treat an absent panel or missing field as unavailable, never as a measured zero or as permission to substitute another competition.
Read the relevant docs →Does the API include UEFA Nations League match events and play-by-play?
Soccer match events include goals, cards, substitutions, and event timing at scale. They are the soccer equivalent of play-by-play and belong to the Pro capability tier. Use the canonical match ID from the schedule or match list to request the event timeline.
Read the relevant docs →What does an empty result or missing field mean?
An empty list can be a healthy response for a valid UEFA Nations League 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 UEFA Nations League injury and suspension data?
A dedicated UEFA Nations League absence feed is not promised on this page today. Do not borrow an injury row from a domestic league or infer availability from a missing lineup. When competition-specific absences are added, they must carry their own source date and preserve the supplied injury, suspension, or other reason.
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 UEFA Nations League 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 UEFA Nations League 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 UEFA Nations League 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 UEFA Nations League 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. Keep the served tournament edition alongside the timestamp because national-team cycles do not map cleanly to a domestic season.
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 →69
endpoints for Soccer
The table above is a starting selection. This is the whole count, generated from the same registry the gateway enforces, so it cannot drift from what your key can actually call.
- 42
- Free
- 13
- Solo
- 13
- Edge
- 1
- Pro
Every endpoint, with the plan it needs, as JSON: /league-endpoints.json. Request and response reference: /docs and /openapi.json.
A count of endpoints that accept this league, not a measure of how much data sits behind them. Call /v1/coverage for that.