TSG Hoffenheim 0, Borussia Dortmund 2

soccer game fileFinal
Signal Iduna Park · Aue · Germany
Boxscore

Key evidence.

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

TSG Hoffenheim boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Oliver Baumann––0––2–90––––0.5002–––––
Luca Philipp–0–00––0–––0–––00–0
Vladimír Coufal–0–10–1900.78346360–––0000
Bernardo–0–10–4900.77658450–––0011
Ozan Kabak–0–00––0–––0–––00–0
Valentin Gendrey–0–00––0–––0–––00–0
Albian Hajdari–0–20–1900.82468560–––0041
Alexander Prass–0–00––0–––0–––00–0
Robin Hranác–0–00–0900.90653480––0.5002100
Grischa Prömel–0–10–0730.80826210––01020
Wouter Burger–0–00–1800.82646380––0.5002130
Leon Avdullahu–0–00–0900.82474610–––0010
Andrej Kramaric–0–00–028122220––02000
Ihlas Bebou–0–00–1171330––11100
Adam Hlozek–0–00–0101110–––0000
Tim Lemperle–0–20–0730.76025190––02010
Fisnik Asllani–0–00–0620.7271180–––0010
Bazoumana Touré–0–20–0800.84626220––01000
Max Moerstedt–0–00–0100.800540–––0010
Umut Tohumcu–0–00–0171660–––0000
Borussia Dortmund boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Pascal Gross–0–00––0–––0–––00–0
Alexander Meyer–0–00––0–––0–––00–0
Gregor Kobel––1––0–90––––13–––––
Ramy Bensebaini–0–00––0–––0–––00–0
Waldemar Anton–0–10–1900.84846390––01020
Julian Ryerson–0–00–011110–––0000
Nico Schlotterbeck–0–01–0900.85964550––11140
Yan Couto–1–00–1890.66739260–––0020
Daniel Svensson–0–00–0900.78323180––11110
Emre Can–0–00––0–––0–––00–0
Marcel Sabitzer–0–00–1900.62532200–––0020
Julian Brandt–0–01–0800.85714120––12200
Felix Nmecha–1–30–2890.79434270––01020
Carney Chukwuemeka–0–00–0100.875870–––0000
Jobe Bellingham–0–00–011220–––0000
Serhou Guirassy–0–10–0890.77322170––02000
Karim Adeyemi–0–10–0800.91712110–––0000
Maximilian Beier–0–00–0100.500210–––0000
Fábio Silva–0–00–011330–––0000
Aaron Anselmino–0–10–1900.84432270–––0020

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