Borussia Dortmund 2, Werder Bremen 0

soccer game fileFinal
Weserstadion · Bremen · 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
Alexander Meyer–0–00––0–––0–––00–0
Gregor Kobel––1––0–90––––13–––––
Niklas Süle–0–00––0–––0–––00–0
Waldemar Anton–0–00–3900.94185800–––0010
Julian Ryerson–1–00–0880.69226180–––0000
Nico Schlotterbeck–0–00–1900.82474610–––0030
Yan Couto–0–11–021110––11100
Daniel Svensson–0–10–0900.79329230–––0010
Luca Reggiani–0–00–0900.88963560–––0010
Marcel Sabitzer–0–00––0–––0–––00–0
Julian Brandt–0–00–0210.6431490–––0010
Salih Özcan–0–00––0–––0–––00–0
Felix Nmecha–0–10–1900.93043400––02020
Carney Chukwuemeka–0–00–0211660–––0000
Jobe Bellingham–0–20–0830.95040380––0.5002120
Serhou Guirassy–0–01–0830.76517130––0.6258500
Karim Adeyemi–1–00–071220–––0000
Maximilian Beier–0–00–0690.61118110––01000
Fábio Silva–0–00–070.800540––11100
Samuele Inácio–0–00–2690.89729260––0.5002100

Team line

Werder Bremen
Werder Bremen boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Markus Kolke–0–00––0–––0–––00–0
Mio Backhaus––0––2–90––––0.7787–––––
Niklas Stark–0–00––0–––0–––00–0
Karim Coulibaly–0–00–1900.86265560–––0010
Marco Friedl–0–00–1450.90331280–––0010
Amos Pieper–0–10–1450.92627250–––0010
Felix Agu–0–00––0–––0–––00–0
Olivier Deman–0–10–1900.88753470–––0040
Isaac Schmidt–0–10–1530.90933300––01020
Leonardo Bittencourt–0–00–011220–––0000
Jens Stage–0–20–0900.74439290––02030
Romano Schmid–0–10–0890.83749410––02000
Cameron Puertas–0–00–1700.80636290–––0030
Senne Lynen–0–00–1900.90050450–––0000
Patrice Covic–0–10–0200.92313120–––0020
Marco Grüll–0–10–1370.88025220––11100
Justin Njinmah–0–00–0900.75020150––01010
Samuel Mbangula–0–00–0201990––11100
Jovan Milosevic–0–00––0–––0–––00–0
Salim Musah–0–00–0700.62524150––11120

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