Kansas City Royals 13, Cleveland Guardians 12

baseball game fileFinal
Goodyear Ballpark · Goodyear
Boxscore

Key evidence.

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

Kansas City Royals boxscore
PlayerPosabavgb2b3bbbfcsererahhbphldhriplobpopsoutspapitchesrrbisbsfslgsosvtotal baseswwhip
Tyler TolbertSS30.333000–0––10–0––0.3330.667–3–11000.3331–1––
Will KleinP––––14–000–0010––3–110––––20–01
Nate Eaton3B30.667010–0––20–1––0.6673–3–32002.3330–7––
Seth LugoP––––215–519.2865–032.3330––7–325––––30–03
John RaveRF20.500000–0––10–0––0.5001–2–00000.5000–1––
Evan SiskP––––04–001–0010––3–60––––11–01
Nelson VelazquezDH30.333001–0––10–0––0.5000.833–4–01000.3331–1––
Sandy LeónC20.500001–0––10–0––0.6671.167–3–10000.5000–1––
Peyton Wilson2B20.500100–0––10–0––0.5001.500–2–211010–2––
Vinnie Pasquantino1B30.333101–0––10–0––0.5001.167–4–12000.6670–2––
Luca TreshC20.500000–0––10–0––0.5001–2–10000.5000–1––
Garrett HampsonCF40.250100–0––10–0––0.2500.750–4–00000.5002–2––
Adam FrazierLF40.250100–0––10–0––0.2500.750–4–01000.5000–2––
Dairon BlancoRF30.667000–0––20–0––0.6671.333–3–10000.6670–2––
Dan AltavillaP––––18–5454–0110––3–165––––10–05
Maikel Garcia3B11102–0––10–0––13–3–120020–2––
Mike Brosseau2B40000–0––00–0––00–4–010000–0––
Diego HernandezCF10000–0––00–0––00–1–000000–0––
Sam LongP––––03–000–0010––3–70––––20–00
Walter PenningtonP––––01–000–000.3330––1–10––––00–00
Jonah DipotoP––––12–000–000.3330––1–50––––00–03
Devin Mann1B11001–0––10–0––12–2–000010–1––
Tyler CropleyDH20000–0––00–0––00–2–000000–0––
Leonel ValeraSS11100–0––10–0––13–1–200020–2––
Joe Gray–0–000–0––00–0–––––0–0100–0–0––
Chandler ChamplainP––––16–2182–0110––3–122––––00–13
Joe Gray Jr.LF0–000–0––00–0––0––1–0101–0–0––
Will Smith–––––00–000––010––3––0––––20–00
Will SmithP––––03–000–1010––3–70––––20–00
Cleveland Guardians boxscore
PlayerPosabavgb2b3bbbfcsererahhbphldhriplobpopsoutspapitchesrrbisbsfslgsosvtotal baseswwhip
Shane BieberP––––38–210.8001–001.6670––5–172––––00–02.400
Raynel Delgado2B20000–0––00–0––00–2–000000–0––
Kyle Manzardo1B20.500101–0––10–0––0.6671.667–3–110010–2––
Kahlil WatsonCF10001–0––00–0––0.5000.500–2–000000–0––
Brayan RocchioSS20001–0––00–0––0.3330.333–3–100000–0––
Daniel Schneemann3B30.333000–0––10–1––0.3331.667–3–13001.3330–4––
Tyler FreemanCF40.250000–0––10–1––0.2501.250–4–120011–4––
Jose TenaSS30000–0––00–0––00–3–000001–0––
Jhonkensy NoelLF30.667200–0––20–0––0.6672–3–10001.3331–4––
Angel Martinez2B21000–0––20–1––0.6673.167–3–13012.5000–5––
Dom NuñezC11002–0––10–1––15–3–210040–4––
Trent Denholm–––––00–001––00.3330––1––0––––00–03
Trenton DenholmP––––02–001–000.3330––1–20––––00–03
Christian Cairo3B20.500000–0––10–0––0.5001–2–00000.5001–1––
Bradley HannerP––––15–2543–000.3330––1–82––––00–012
Johnathan RodriguezRF30.333000–0––10–0––0.3330.667–3–10000.3331–1––
Eli MorganP––––04–191–1010––3–51––––00–01
William Thornton–––––00–000––00.3330––1––0––––00–00
Tyler ThorntonP––––01–000–100.3330––1–10––––00–00
Nick SandlinP––––15–001–1010––3–81––––00–02
Micah PriesRF0–000–0––00–0–––––0–0000–0–0––
Emmanuel ClaseP––––05–002–0010––3–90––––20–02
Ben LivelyP––––112–310.1253–002.6670––8–193––––20–01.500
Joseph Naranjo–10001–0––00–0––0.5000.500–2–000001–0––
Joe Naranjo1B10001–0––00–0––0.5000.500–2–000001–0––
Michael BerglundC20000–0––00–0––00–2–000002–0––
Connor KokxRF10000–0––00–0––00–1–000000–0––
Estevan FlorialDH40.250000–0––11–0––0.4000.650–5–00100.2502–1––
Lorenzo CedrolaLF20.500000–0––10–1––0.5002.500–2–220021–4––
Juan ZapataP––––06–4544–010.6671––2–124––––00–06
Eric RodriguezDH0–000–0––00–0–––––0–1000–0–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_06fhqd0p0dxg3dcjj7n0rrspqm
curl "https://api.statshawk.ai/v1/contests/cst_06fhqd0p0dxg3dcjj7n0rrspqm" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhqd0p0dxg3dcjj7n0rrspqm/boxscore
curl "https://api.statshawk.ai/v1/contests/cst_06fhqd0p0dxg3dcjj7n0rrspqm/boxscore" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhqd0p0dxg3dcjj7n0rrspqm/matchup
curl "https://api.statshawk.ai/v1/contests/cst_06fhqd0p0dxg3dcjj7n0rrspqm/matchup" \
  -H "X-API-Key: sk_live_YOUR_KEY_HERE"
Authenticated request · GET /v1/contests/cst_06fhqd0p0dxg3dcjj7n0rrspqm/play-by-play?detail=full
curl "https://api.statshawk.ai/v1/contests/cst_06fhqd0p0dxg3dcjj7n0rrspqm/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