The Champions League API for developers ballers.
A Postgres-backed UEFA Champions League fixture archive. Every fixture, standings, and 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 Champions League · 335 stored fixture rows · captured 2026-10-05
Need more than one competition? The Soccer API page covers every competition we serve under this same schema. See the Soccer API →
2026-27 Champions League teams
36 teams in the standings captured 2026-10-05. 21 have captured team profiles; other names are not links. Rankings and records are a dated competition snapshot, not live results or domestic-league records.
API: /v1/standings?sport=football&league=ucl&season=2026
- 1
Paris Saint-Germain1-0-0
- 2
Bayern Munich1-0-0
- 3
Barcelona1-0-0
- 4
Manchester United1-0-0
- 5
Como 19071-0-0
- 6
Sporting Clube de Portugal1-0-0
- 7
VfB Stuttgart1-0-0
- 8
Manchester City1-0-0
- 9
Aston Villa1-0-0
- 10
Borussia Dortmund1-0-0
- 11
Lens1-0-0
- 12
Real Betis1-0-0
- 13
Liverpool1-0-0
- 14
Real Madrid1-0-0
- 15
AEK Athens1-0-0
- 16
Arsenal1-0-0
- 17
AS Roma0-1-0
- 18
Fenerbahce0-1-0
- 19
PSV0-1-0
- 20
Shakhtar Donetsk0-1-0
- 21
Club Brugge KV0-0-1
- 22
Lille0-0-1
- 23
SK Slavia Praha0-0-1
- 24
Villarreal0-0-1
- 25
Atlético Madrid0-0-1
- 26
Inter Milan0-0-1
- 27
LASK Linz0-0-1
- 28
Napoli0-0-1
- 29
Galatasaray SK0-0-1
- 30
Viking FK0-0-1
- 31
FC Porto0-0-1
- 32
RB Leipzig0-0-1
- 33
Feyenoord Rotterdam0-0-1
- 34
Sabah FK0-0-1
- 35
Slovan Bratislava0-0-1
- 36
FK Bodø/Glimt0-0-1
Record is wins, draws and losses in this Champions League standings response. Unlinked teams do not yet have a reviewed profile.
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-gameWritten 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-gameWritten 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.
What you can build
Fixture calendar
Browse the full UCL fixture list by date, with team crests and final scores.
Knockout context page
Pull head-to-head history for a tie across all prior competitions, not just UCL.
Half-by-half scoreboard
Render first-half / second-half linescores from the stored archive.
Squad reference
Wire up the lineups route now so it populates the moment ingest ships.
Result research dashboard
Cross-check fixtures, scores, and crests without burning any upstream credits.
Backtest scaffold
Iterate on the fixture 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. Click any endpoint to see every field it returns.
6 endpoints · 99 documented fields. Click any row to see every field it returns.
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.
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
// Fetch UCL fixtures direct from the DB-backed archive. No upstream quota.
const res = await fetch(
'https://api.bigballsdata.com/v1/stored/matches?sport=football&league=UEFA%20Champions%20League&limit=20',
{ headers: { 'x-api-key': process.env.BBS_API_KEY! } },
);
const { data, pagination } = await res.json();
for (const m of data) {
console.log(m.home.name, 'vs', m.away.name, '-', m.status, m.linescore);
}
console.log('Total UCL fixtures:', pagination.total);Free covers a real app. Scale when you need to.
250 req/day free (500 with GitHub). Production starts at $49/mo. Live WebSocket push on Pro+.
Frequently asked
- What Champions League data is available today?
- The stored UCL fixture catalogue held 335 rows at capture. It includes team crests and kickoff times, with final scores and half-by-half linescores on finished rows where held. Head-to-head history across any competition the two teams have met in. Lineups route is shipped against the canonical shape but the ingest is not wired yet, so it returns an empty envelope today.
- How do I get Champions League standings?
- Call /v1/standings?sport=football&league=ucl&season=2026 for the 2026-27 Champions League table. The team list below is a dated snapshot of that response. Stored fixture routes remain separate; this standings check does not establish live odds or events coverage.
- 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, so a dashboard polling these routes scales independently of source quotas.
- Is it on the free tier?
- Yes. Every endpoint listed here is free, 250 req/day (500 with GitHub connected).
2026-27 Champions League teams
36 teams in the standings captured 2026-10-05. 21 have captured team profiles; other names are not links. Rankings and records are a dated competition snapshot, not live results or domestic-league records.
API: /v1/standings?sport=football&league=ucl&season=2026
- 1
Paris Saint-Germain1-0-0
- 2
Bayern Munich1-0-0
- 3
Barcelona1-0-0
- 4
Manchester United1-0-0
- 5
Como 19071-0-0
- 6
Sporting Clube de Portugal1-0-0
- 7
VfB Stuttgart1-0-0
- 8
Manchester City1-0-0
- 9
Aston Villa1-0-0
- 10
Borussia Dortmund1-0-0
- 11
Lens1-0-0
- 12
Real Betis1-0-0
- 13
Liverpool1-0-0
- 14
Real Madrid1-0-0
- 15
AEK Athens1-0-0
- 16
Arsenal1-0-0
- 17
AS Roma0-1-0
- 18
Fenerbahce0-1-0
- 19
PSV0-1-0
- 20
Shakhtar Donetsk0-1-0
- 21
Club Brugge KV0-0-1
- 22
Lille0-0-1
- 23
SK Slavia Praha0-0-1
- 24
Villarreal0-0-1
- 25
Atlético Madrid0-0-1
- 26
Inter Milan0-0-1
- 27
LASK Linz0-0-1
- 28
Napoli0-0-1
- 29
Galatasaray SK0-0-1
- 30
Viking FK0-0-1
- 31
FC Porto0-0-1
- 32
RB Leipzig0-0-1
- 33
Feyenoord Rotterdam0-0-1
- 34
Sabah FK0-0-1
- 35
Slovan Bratislava0-0-1
- 36
FK Bodø/Glimt0-0-1
Record is wins, draws and losses in this Champions League standings response. Unlinked teams do not yet have a reviewed profile.
Related APIs
Other APIs you can build with: