Borussia Dortmund 3, TSG Hoffenheim 2

soccer game fileFinal
PreZero Arena · Sinsheim · Germany
Boxscore

Key evidence.

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

Borussia Dortmund boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Ethan Nwaneri–0–00–0580.73315110–––0010
Alexander Meyer–0–00––0–––0–––00–0
Gregor Kobel––0––2–90––––0.6674–––––
Waldemar Anton–1–00–7900.84846390–––0010
Julian Ryerson–0–00–2900.6001590–––0010
Daniel Svensson–0–00–2900.90030270––01020
Filippo Mané–0–10–2320.90331280–––0010
Luca Reggiani–0–10–0270.571740–––0011
Marcel Sabitzer–0–00–030.500210–––0000
Felix Nmecha–0–00–0450.84613110––01000
Carney Chukwuemeka–0–00––0–––0–––00–0
Jobe Bellingham–0–00–3900.75929220–––0010
Serhou Guirassy–1–21–0870.66718120––0.4005200
Maximilian Beier–0–00–0900.84613110––0.5002111
Fábio Silva–0–01–0280.333310––11100
Mathis Albert–0–00––0–––0–––00–0
Joey Veerman–0–10–0450.5631690––01020
Konstantinos Karetsas–0–20–0620.6921390–––0000
Kouakou Gadou–0–00–0630.85441350–––0040
Kauã Prates–0–00––0–––0–––00–0
TSG Hoffenheim boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Oliver Baumann––0––3–90––––0.4002–––––
Luca Philipp–0–00––0–––0–––00–0
Vladimír Coufal–1–00–3900.80757460––01010
Bernardo–0–00––0–––0–––00–0
Ozan Kabak–0–20–0790.83330250––03001
Valentin Gendrey–0–00––0–––0–––00–0
Albian Hajdari–0–20–3900.89557510–––0011
Robin Hranác–0–00–0110.8181190––01010
Wouter Burger–0–20–0790.82941340––01051
Leon Avdullahu–0–01–0900.86868590––11140
Andrej Kramaric–0–10–0170.7271180–––0001
Adam Hlozek–0–00–0730.86715130––0.5002110
Tim Lemperle–0–01–0840.77827210––0.5004210
Max Moerstedt–0–00–061330–––0010
Patrick Wimmer–0–30–0730.63027170––01010
Adam Daghim–1–20–0900.67928190––0.6673220
Nathan De Cat–0–00–0110.857760–––0000
Bambasé Conté–0–00–0170.714750–––0000
Mats Rots–0–10–2900.78761480––01020
Cajetan Lenz–0–00––0–––0–––00–0

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_06g4nnpns1zb184wxvdzm8nbmr
curl "https://api.statshawk.ai/v1/contests/cst_06g4nnpns1zb184wxvdzm8nbmr" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06g4nnpns1zb184wxvdzm8nbmr/boxscore
curl "https://api.statshawk.ai/v1/contests/cst_06g4nnpns1zb184wxvdzm8nbmr/boxscore" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06g4nnpns1zb184wxvdzm8nbmr/matchup
curl "https://api.statshawk.ai/v1/contests/cst_06g4nnpns1zb184wxvdzm8nbmr/matchup" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06g4nnpns1zb184wxvdzm8nbmr/play-by-play?detail=full
curl "https://api.statshawk.ai/v1/contests/cst_06g4nnpns1zb184wxvdzm8nbmr/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