178 cm
Height
27
Shirt
22 yrs
27 Oct 2004
Wales
Country
€1.4M
Transfer value
30 Jun 2028
Contract end
Right
Foot
AM
CM
DM
Attacking Midfielder
Central Midfielder, Defensive Midfielder
Central Midfielder, Defensive Midfielder
2026/27
30 games1
Goals
0
Assists
6.67
Rating
1049
Minutes
Skills & potential
Per 90
| Goals | 0.09 |
| Assists | 0.0 |
| xG | 0.19 |
| xA | 0.05 |
| Shots | 1.72 |
| Key passes | 0.6 |
Attacking totals
| Goals | 1 |
| Assists | 0 |
| xG | 2.2 |
| xA | 0.5 |
| Shots (on target) | 20 (4) |
| Key passes | 7 |
| Pass accuracy | 86.8% |
Defending totals
| Tackles won | 9 |
| Interceptions | 6 |
| Clearances | 13 |
| Duels won | 80 |
| Aerials won | 9 |
| Recoveries | 47 |
Shot map
20 shots · 2.13 xGGoalOn targetOff / blocked● size = xG
20
Shots
1
Goals
4
On target
2.13
Total xG
| Match | Min | G | A | Rtg |
|---|---|---|---|---|
| vs West Ham United | 35' | 0 | 0 | 6.2 |
| @ Wolverhampton | 90' | 0 | 0 | 6.3 |
| vs Birmingham City | 90' | 0 | 0 | 7.2 |
| @ Middlesbrough | 45' | 0 | 0 | 6.9 |
| vs Watford | 90' | 0 | 0 | 6.6 |
| @ Blackburn Rovers | 71' | 0 | 0 | 6.5 |
| vs Denmark | 14' | 0 | 0 | 6.6 |
| vs Norway | 14' | 0 | 0 | 6.5 |
| @ Portugal | 0' | 0 | 0 | — |
| vs Charlton Athletic | 90' | 0 | 0 | 7.3 |
| @ Bolton Wanderers | 59' | 0 | 0 | 6.6 |
| vs Stoke City | 90' | 1 | 0 | 7.4 |
| @ Portsmouth | 38' | 0 | 0 | 6.1 |
| @ Queens Park Rangers | 10' | 0 | 0 | 6.4 |
| vs Sheffield United | 9' | 0 | 0 | 6.5 |
| vs Norwich City | 90' | 0 | 0 | 7.0 |
| @ Derby County | 19' | 0 | 0 | 6.6 |
| vs Wrexham | 36' | 0 | 0 | 7.1 |
| vs Swindon Town | 32' | 0 | 0 | 6.5 |
| vs AS Roma | 82' | 0 | 0 | 6.7 |
| @ Forest Green Rovers | 0' | 0 | 0 | — |
| @ Cork City | 0' | 0 | 0 | — |
| vs FC Midtjylland | 0' | 0 | 0 | — |
| @ Romania | 0' | 0 | 0 | — |
| vs Ghana | 0' | 0 | 0 | — |
| vs Northern Ireland | 45' | 0 | 0 | 6.3 |
| vs Bosnia & Herzegovina | 0' | 0 | 0 | — |
| vs North Macedonia | 0' | 0 | 0 | — |
| @ Liechtenstein | 0' | 0 | 0 | — |
| @ Kazakhstan | 0' | 0 | 0 | — |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 22 | 6 | 3 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 20 | 0 | 0 |
2025
| Competition | MP | G | A |
|---|---|---|---|
| 46 | 5 | 2 |
2026
| Competition | MP | G | A |
|---|---|---|---|
| 4 | 0 | 0 |
2026
| Competition | MP | G | A |
|---|---|---|---|
| 4 | 0 | 0 |
2026
| Competition | MP | G | A |
|---|---|---|---|
| 3 | 0 | 0 |
2023
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 2 | 0 | 0 |
2025
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2026
| Competition | MP | G | A |
|---|---|---|---|
| 14 | 1 | 0 |
2022
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2023
| Competition | MP | G | A |
|---|---|---|---|
| 3 | 0 | 0 |
2024
| Competition | MP | G | A |
|---|---|---|---|
| 1 | 0 | 0 |
2025
| Competition | MP | G | A |
|---|---|---|---|
| 5 | 2 | 0 |
2026
| Competition | MP | G | A |
|---|---|---|---|
| 2 | 0 | 0 |
2023
| Competition | MP | G | A |
|---|---|---|---|
| 11 | 0 | 0 |
2025
| Competition | MP | G | A |
|---|---|---|---|
| 2 | 0 | 0 |
2026
| Competition | MP | G | A |
|---|---|---|---|
| 3 | 0 | 0 |
Build this page with the API
Every number here is public data. This is the exact sequence of calls to recreate this page — all free, just add your token.
-
GET
/api/v2/players/17257/Bio: position, age, nationality, foot, value, team. -
GET
/api/v2/players/17257/stats/Season stats + per-90 for the Overview & Stats tabs. -
GET
/api/v2/players/17257/career/Season-by-season totals — powers the Career tab. -
GET
/api/v2/players/17257/transfers/Transfer history for the Transfers tab. -
GET
/api/v2/events/{EVENT_ID}/stats/Per-shot xG shotmap — aggregate a player’s matches for the shot map. -
GET
/api/v2/players/17257/social/Highlight videos & news for the Overview feed.
Try step 1 right now
cURL
curl -H "Authorization: Token YOUR_KEY" https://sports.bzzoiro.com/api/v2/players/17257/
Free football tier — no subscription. Get a token →