Mainz 1, 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

Mainz
Mainz boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededminutesredsave pctsavesshot accuracyshotssotyellow
Jonathan Burkardt–0–00–00––0100
Daniel Batz–0–00–00–––000
Robin Zentner––0––30–0.5714––––
Lasse Rieß–0–00–00–––000
Danny da Costa–0–00–00–––000
Silvan Widmer–0–00–00––0100
Andreas Hanche-Olsen–0–10–00–––000
Maxim Leitsch–0–00–00–––000
Anthony Caci–0–10–00––0100
Nikolas Veratschnig–0–10–00––0100
Lee Jae-Sung–0–00–00––0200
Nadiem Amiri–1–20–00––0100
Lennard Maloney–0–00–00–––000
Paul Nebel–0–11–00––0.500210
Kaishu Sano–0–00–00––0100
Armindo Sieb–0–00–00–––000
Nelson Weiper–0–10–00–––000
Moritz Jenz–0–10–00––0.500210
Arnaud Nordin–0–00–00–––000
Hong Hyun-Seok–0–00–00–––000
Borussia Dortmund boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededminutesredsave pctsavesshot accuracyshotssotyellow
Pascal Gross–0–00–00––0100
Jamie Gittens–0–00–00–––000
Alexander Meyer–0–00–00–––000
Gregor Kobel––0––10–0.5001––––
Niklas Süle–0–00–00–––000
Ramy Bensebaini–0–00–00–––000
Waldemar Anton–0–10–00–––000
Julian Ryerson–0–00–00––0100
Nico Schlotterbeck–2–10–00––0.250411
Yan Couto–0–30–00–––001
Daniel Svensson–0–00–00–––000
Emre Can–0–01–00––1110
Julian Brandt–0–00–00––1110
Salih Özcan–0–30–00––0100
Carney Chukwuemeka–0–00–00––0100
Karim Adeyemi–1–20–00––0.250410
Maximilian Beier–0–02–00––0.500420
Giovanni Reyna–0–00–00–––000
Julien Duranville–0–00–00–––000
Rodney Elongo-Yombo–0–00–00–––000

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