Villarreal 2, Borussia Dortmund 3

soccer game fileFinal
Signal Iduna Park · Aue · Germany
Boxscore

Key evidence.

Every reported player line, kept in the API’s sport-specific stat vocabulary.

Team line

Villarreal
Villarreal boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Ilias Akhomach–0–00––0–––0–––00–0
Luiz Júnior–0–00––0–––0–––00–0
Rubén Gómez–0–00––0–––0–––00–0
Alex Freeman–0–00–0450.88927240–––0010
Logan Costa–0–00––0–––0–––00–0
Sergi Cardona–0–10–0450.95522210–––0021
Santiago Mouriño–0–21–1900.91547430––11141
Pau Navarro–0–20–2830.89447420––01041
Santi Comesaña–0–10–1900.88159520––11150
Pape Gueye–0–00–2900.85254460––01030
Alberto Moleiro–0–00–1310.73315110–––0000
Renato Veiga–0–00–0900.93763590––01000
Alassane Diatta–0–10–0151770–––0000
Carlos Macià–0–00––0–––0–––00–0
Gerard Moreno–0–00–070.6361170–––0000
Ayoze Pérez–0–00––0–––0–––00–0
Nicolas Pépé–0–10–0310.78614110––0.5002100
Tajon Buchanan–0–10–0750.68419130––13300
Tani Oluwaseyi–0–00–0590.78614110––01020
Georges Mikautadze–1–00–0900.80030240––02020
Péter Gulácsi––0––3–90––––0.5714–––––
Nathan Saliba–0–10–1590.72218130–––0040
Borussia Dortmund boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Ethan Nwaneri–0–20–1550.91435320––06000
Patrick Drewes–0–00––0–––0–––00–0
Alexander Meyer–0–00––0–––0–––00–0
Gregor Kobel––0––2–90––––0.7145–––––
Waldemar Anton–0–20–3900.95848460–––0041
Julian Ryerson–0–20–0900.93345420–––0000
Daniel Svensson–0–10–1900.82858480–––0020
Luca Reggiani–0–00––0–––0–––00–0
Marcel Sabitzer–0–10–3750.92928260–––0020
Felix Nmecha–0–10–2750.88753470–––0020
Carney Chukwuemeka–0–10–081110–––0000
Jobe Bellingham–0–00–0151330–––0010
Serhou Guirassy–0–02–0900.81316130––0.5006300
Maximilian Beier–0–10–1820.65529190––02010
Fábio Silva–1–00–0150.800540––13300
Mathis Albert–0–00––0–––0–––00–0
Samuele Inácio–0–00––0–––0–––00–0
Joey Veerman–0–10–0900.94387820––01020
Konstantinos Karetsas–0–10–0270.84613110–––0000
Kouakou Gadou–0–00–2900.95263600–––0040
Kauã Prates–0–20–081110–––0010

Comparison

Side by side.

Final

Analysis preview// illustrative example, not this page's real data
sample · team comparisonexample only
a:"Team A"b:"Team B"
Offensive ratingA 114.2 · B 108.9
Recent form (L10)A 6-4 · B 6-4
Head-to-headB leads 3-1
GET /v1/analysis/compare-teams?a=…&b=…Run this yourself via the API
Built on the StatHawk API

The page is the demo.

These requests and request patterns show how this page gets data from the same REST API and MCP server you can use in your own app or agent.

View this page's API recipe

Use the authenticated requests or fill in the labeled request templates, then adapt the response in your own product.

Authenticated request · GET /v1/contests/cst_06g5mj6b15tf53nxtxfddet47c
curl "https://api.statshawk.ai/v1/contests/cst_06g5mj6b15tf53nxtxfddet47c" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06g5mj6b15tf53nxtxfddet47c/boxscore
curl "https://api.statshawk.ai/v1/contests/cst_06g5mj6b15tf53nxtxfddet47c/boxscore" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06g5mj6b15tf53nxtxfddet47c/matchup
curl "https://api.statshawk.ai/v1/contests/cst_06g5mj6b15tf53nxtxfddet47c/matchup" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06g5mj6b15tf53nxtxfddet47c/play-by-play?detail=full
curl "https://api.statshawk.ai/v1/contests/cst_06g5mj6b15tf53nxtxfddet47c/play-by-play?detail=full" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Try with MCP

Connect StatHawk to your agent, then ask it to explain and extend the data shown on this page.

Build this view in the API reference
$claude mcp add statshawk https://mcp.statshawk.ai/mcp