Mainz 2, TSG Hoffenheim 1

soccer game fileFinal
PreZero Arena · Sinsheim · Germany
Boxscore

Key evidence.

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

Team line

Mainz
Mainz boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Sheraldo Becker–0–00–0750.6361170––01000
Daniel Batz––0––1–90––––0.8004–––––
Lasse Rieß–0–00––0–––0–––00–0
Danny da Costa–0–00–2900.70040280–––0000
Silvan Widmer–0–00–1450.750860–––0010
Maxim Leitsch–0–00––0–––0–––00–0
Stefan Posch–0–00–1900.80826210–––0030
Phillipp Mwene–1–00–1900.77322170–––0010
Nikolas Veratschnig–0–00–0450.7501290–––0020
Kacper Potulski–0–00–1530.96025240–––0000
Lee Jae-Sung–0–10–0750.80826210––11110
Dominik Kohr–0–00–1370.71414100–––0001
Lennard Maloney–0–00–030400–––0000
Paul Nebel–0–00–1870.71414100––03020
Sota Kawasaki–0–00–0151220–––0000
Kaishu Sano–0–10–2900.90933300–––0040
Phillip Tietz–0–32–1900.6151380––14400
William Bøving–0–00––0–––0–––00–0
Armindo Sieb–0–00–0150.500630–––0000
Nelson Weiper–0–00––0–––0–––00–0
TSG Hoffenheim boxscore
PlayerPosassistsclean sheetfoulsgoalsgoals concededintcminutespass pctpassespasses cmpredsave pctsavesshot accuracyshotssottacklesyellow
Oliver Baumann––0––2–90––––0.6003–––––
Luca Philipp–0–00––0–––0–––00–0
Kevin Akpoguma–0–00––0–––0–––00–0
Vladimír Coufal–0–30–0610.52619100––11111
Bernardo–0–00–1900.74154400–––0020
Ozan Kabak–0–10–3900.75553400–––0011
Albian Hajdari–0–00–2900.87162540––0.3333130
Alexander Prass–0–00–0840.66730200––11120
Robin Hranác–0–00––0–––0–––00–0
Grischa Prömel–0–20–0900.78050390––01010
Wouter Burger–0–10–1900.86760520––01031
Muhammed Damar–0–00––0–––0–––00–0
Leon Avdullahu–0–00–1290.97033320–––0000
Andrej Kramaric–0–00–0290.88217150–––0000
Ihlas Bebou–0–10–061110–––0000
Tim Lemperle–0–20–0870.78132250––0.5002120
Fisnik Asllani–0–01–0610.61526160––0.2504100
Bazoumana Touré–1–10–0900.82829240––03000
Max Moerstedt–0–00–03–000–––0000
Cole Campbell–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_06fhmx13tnws37z583t9zfn730
curl "https://api.statshawk.ai/v1/contests/cst_06fhmx13tnws37z583t9zfn730" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhmx13tnws37z583t9zfn730/boxscore
curl "https://api.statshawk.ai/v1/contests/cst_06fhmx13tnws37z583t9zfn730/boxscore" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhmx13tnws37z583t9zfn730/matchup
curl "https://api.statshawk.ai/v1/contests/cst_06fhmx13tnws37z583t9zfn730/matchup" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhmx13tnws37z583t9zfn730/play-by-play?detail=full
curl "https://api.statshawk.ai/v1/contests/cst_06fhmx13tnws37z583t9zfn730/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