World Cup 2026 Player Stats API: Golden Boot, Assists & Minutes
World Cup 2026 player stats API. Live goals, assists, xG, shots, minutes, and cards for every player. Track the Golden Boot race in real time.
Player stats are what fans actually care about during the World Cup — the Golden Boot race, who's racking up assists, who's getting cards, who's playing 90 minutes every match. If you're building a fantasy app, a leaderboard widget, or a player-comparison tool, you need fast access to live per-player stats.
This guide covers what the player stats endpoint returns, how to fetch the Golden Boot leaderboard, and how to surface useful player-level views in your app.
What player stats are available
For every player who features in a World Cup match:
- Per-match stats — goals, assists, shots, shots on target, xG, xA, minutes, yellow cards, red cards, pass accuracy, tackles, interceptions, fouls, passes, key passes
- Per-tournament aggregates — totals across all matches in the World Cup
- Per-90 metrics — goals per 90, xG per 90, etc.
- Position-specific — clean sheets and saves for goalkeepers
- Substitution data — minute on, minute off
Plus player metadata: name, age, position, shirt number, club, height, foot, captaincy status.
Get the Golden Boot leaderboard
curl 'https://api.thestatsapi.com/api/football/players/stats?competition_id={COMPETITION_ID}&season=2026&order_by=goals&limit=20' \
-H 'Authorization: Bearer YOUR_API_KEY'
Returns the top 20 scorers, sorted by goals. Each row:
{
"player": { "id": "pl_mbappe", "name": "Kylian Mbappé", "team": "France" },
"appearances": 5,
"minutes": 450,
"goals": 7,
"assists": 2,
"shots": 24,
"shots_on_target": 14,
"xg": 6.2,
"xg_per_90": 1.24,
"conversion_rate": 0.29,
"yellow_cards": 1,
"red_cards": 0
}
Golden Boot tiebreakers
If two players are tied on goals, FIFA applies tiebreakers in order:
- Most assists (assist credit follows FIFA's strict definition)
- Fewest minutes played (rewards efficiency)
- Drawing of lots if still tied
The leaderboard endpoint applies these automatically when sorting by goals.
Build a live leaderboard widget
import useSWR from 'swr';
function GoldenBootLeaderboard() {
const { data } = useSWR(
'/api/wc-top-scorers',
(url) => fetch(url).then((r) => r.json()),
{ refreshInterval: 30000 }
);
if (!data) return <div>Loading...</div>;
return (
<ol>
{data.map((p, i) => (
<li key={p.player.id}>
<span className="rank">{i + 1}.</span>
<span className="name">{p.player.name}</span>
<span className="team">({p.player.team})</span>
<span className="goals">{p.goals} goals, {p.assists} assists</span>
</li>
))}
</ol>
);
}
Polling every 30 seconds is plenty — Golden Boot positions don't change between goals.
Filter by team or position
# Argentina's top scorers
curl '/api/football/players/stats?competition_id={COMPETITION_ID}&team=argentina&order_by=goals'
# All goalkeepers (sorted by clean sheets)
curl '/api/football/players/stats?competition_id={COMPETITION_ID}&position=goalkeeper&order_by=clean_sheets'
# Top assist providers
curl '/api/football/players/stats?competition_id={COMPETITION_ID}&order_by=assists&limit=20'
Compare two players
const COMPETITION_ID = 'YOUR_COMPETITION_ID'; // look up via /football/competitions?search=world%20cup
async function comparePlayers(playerA, playerB) {
const [a, b] = await Promise.all([
fetch(`/api/football/players/${playerA}/stats?competition_id=${COMPETITION_ID}`).then((r) => r.json()),
fetch(`/api/football/players/${playerB}/stats?competition_id=${COMPETITION_ID}`).then((r) => r.json()),
]);
return {
[playerA]: a.data,
[playerB]: b.data,
};
}
// Mbappé vs Haaland
const comparison = await comparePlayers('mbappe', 'haaland');
Render side by side for a player-comparison widget.
Position-specific stats
Goalkeepers have additional fields:
saves— total savesclean_sheets— matches without concedingpenalties_saved— penalty saves in regulation or shootoutssave_percentage— saves / shots on target faced
curl '/api/football/players/stats?competition_id={COMPETITION_ID}&position=goalkeeper&order_by=saves'
Player metadata: ages, clubs, heights
Useful for narrative-driven cards:
curl '/api/football/players/pl_messi' -H 'Authorization: Bearer YOUR_KEY'
Returns full player metadata: full name, date of birth, height, weight, preferred foot, current club, market value (where available), international caps, international goals.
Common UI patterns
- Player card — photo + key stats (goals/assists/minutes) + comparison to tournament average
- Hot players widget — sorted by xG (under-performers are bets to score next match)
- All-star XI — top scorer + top assister + top defender by position
- Daily MVP — best individual performance on a given match-day
- Per-team leaderboard — top scorers within a single team
Caching strategy
- Outside match-days: cache 1 hour
- Match-day, no live matches: cache 5 minutes
- During a match: cache 30-60 seconds
- Live in a high-stakes match: poll directly
Free alternatives
For just basic per-player stats during the World Cup, API-Football on their free tier covers it (100 requests/day). It's enough for a hobby project but the daily cap will hurt during a busy match-day. For production use, TheStatsAPI Starter at $50/month covers the full tournament without rate-limit anxiety.
Frequently Asked Questions
How fast do player stats update during a match?
Within seconds of an event in our source feed. Player goals, assists, and cards appear in the stats endpoint immediately after they happen on the pitch.
What is xG per 90?
Expected goals normalised to a full 90-minute match. Useful for comparing players with different minutes played. A striker with 0.7 xG per 90 is generating high-quality chances at a regular rate.
How is the Golden Boot decided?
Most goals wins. Tiebreakers: most assists, then fewest minutes played, then drawing of lots.
Can I get per-match player stats (not just tournament totals)?
Yes — /matches/{match_id}/players returns every player's per-match line. Useful for "best 11 of match-day" widgets.
Does the API include player photos?
Player metadata includes a photo_url field where the right has been licensed. For unlicensed players, you'll need to source images separately (Wikimedia Commons is a common fallback).
How do I detect the tournament MVP?
There's no single "MVP" metric — FIFA awards the Golden Ball based on a media vote. Proxy with weighted goals + assists + minutes + xG and you'll be close.
Can I get historical player stats?
Yes — every World Cup back to 1930 has player-level stats at varying depth. Modern editions (post-1990) have detailed per-match data; older editions have tournament-level summaries.
Ready to Power Your Sports App?
Start your 7-day free trial. All endpoints included on every plan.