Kansas City Royals 2, Tampa Bay Rays 1

baseball game fileFinal
Tropicana Field · St. Petersburg

Game flow

Every swing in the score.

The line is the running run differential: above the center favors Kansas City Royals, below favors Tampa Bay Rays. It runs across every plate appearance and is marked by inning along the bottom. Select a scoring marker to jump to the play.

Score differential over the gameA positive differential means Kansas City Royals led; a negative differential means Tampa Bay Rays led.Run differential+20−2123456789
  1. 01top 1: Carter Jensen lines out to left fielder Chandler Simpson.00
  2. 02top 1: Maikel Garcia doubles (17) on a fly ball to shortstop Ben Williamson.00
  3. 03top 1: Jac Caglianone grounds out, third baseman Junior Caminero to first baseman Jonathan Aranda. Maikel Garcia to 3rd.00
  4. 04top 1: Salvador Perez pops out to second baseman Richie Palacios.00
  5. 05bottom 1: Yandy Díaz walks.00
  6. 06bottom 1: Jonny DeLuca flies out to right fielder John Rave in foul territory.00
  7. 07bottom 1: Jonathan Aranda singles on a line drive to left fielder Isaac Collins. Yandy Díaz to 2nd.00
  8. 08bottom 1: Junior Caminero grounds into a double play, pitcher Michael Wacha to second baseman Michael Massey to first baseman Jac Caglianone. Jonathan Aranda out at 2nd. Junior Caminero out at 1st.00
  9. 09top 2: Michael Massey walks.00
  10. 10top 2: Lane Thomas doubles (7) on a line drive to left fielder Chandler Simpson. Michael Massey scores. Lane Thomas to 3rd.10
  11. 11top 2: John Rave strikes out swinging.10
  12. 12top 2: Nick Loftin strikes out swinging.10
  13. 13top 2: Isaac Collins flies out to center fielder Jonny DeLuca.10
  14. 14bottom 2: Ryan Vilade called out on strikes.10
  15. 15bottom 2: Chandler Simpson doubles (5) on a ground ball to right fielder John Rave, deflected by first baseman Jac Caglianone.10
  16. 16bottom 2: Ben Williamson grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.10
  17. 17bottom 2: Nick Fortes grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.10
  18. 18top 3: Carter Jensen grounds out, first baseman Jonathan Aranda to pitcher Drew Rasmussen.10
  19. 19top 3: Maikel Garcia grounds out, third baseman Junior Caminero to first baseman Jonathan Aranda.10
  20. 20top 3: Jac Caglianone grounds out sharply, second baseman Richie Palacios to first baseman Jonathan Aranda.10
  21. 21bottom 3: Richie Palacios grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.10
  22. 22bottom 3: Yandy Díaz grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.10
  23. 23bottom 3: Jonny DeLuca strikes out swinging.10
  24. 24top 4: Salvador Perez strikes out swinging.10
  25. 25top 4: Michael Massey grounds out, first baseman Jonathan Aranda to pitcher Drew Rasmussen.10
  26. 26top 4: Lane Thomas called out on strikes.10
  27. 27bottom 4: Jonathan Aranda pops out to third baseman Nick Loftin.10
  28. 28bottom 4: Junior Caminero grounds out sharply, second baseman Michael Massey to first baseman Jac Caglianone.10
  29. 29bottom 4: Ryan Vilade doubles (6) on a ground ball to left fielder Isaac Collins.10
  30. 30bottom 4: Chandler Simpson grounds out, first baseman Jac Caglianone to pitcher Michael Wacha.10
  31. 31top 5: John Rave grounds out, shortstop Ben Williamson to first baseman Jonathan Aranda.10
  32. 32top 5: Nick Loftin singles on a line drive to right fielder Ryan Vilade.10
  33. 33top 5: Isaac Collins walks.10
  34. 34top 5: Carter Jensen singles on a sharp line drive to center fielder Jonny DeLuca. Nick Loftin scores. Isaac Collins to 2nd.20
  35. 35top 5: Maikel Garcia flies out to center fielder Jonny DeLuca. Isaac Collins to 3rd. Carter Jensen to 2nd.20
  36. 36top 5: Jac Caglianone flies out sharply to center fielder Jonny DeLuca.20
  37. 37bottom 5: Ben Williamson called out on strikes.20
  38. 38bottom 5: Nick Fortes pops out to shortstop Maikel Garcia.20
  39. 39bottom 5: Richie Palacios singles on a line drive to center fielder Lane Thomas.20
  40. 40bottom 5: Yandy Díaz doubles (13) on a sharp line drive to left fielder Isaac Collins. Richie Palacios scores.21
  41. 41bottom 5: Jonny DeLuca grounds out, second baseman Michael Massey to first baseman Jac Caglianone.21
  42. 42top 6: Salvador Perez strikes out swinging.21
  43. 43top 6: Michael Massey grounds out to first baseman Jonathan Aranda.21
  44. 44top 6: Lane Thomas pops out to shortstop Ben Williamson.21
  45. 45bottom 6: Jonathan Aranda called out on strikes.21
  46. 46bottom 6: Junior Caminero grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.21
  47. 47bottom 6: Ryan Vilade flies out sharply to center fielder Lane Thomas.21
  48. 48top 7: John Rave flies out sharply to right fielder Ryan Vilade.21
  49. 49top 7: Nick Loftin flies out to right fielder Ryan Vilade.21
  50. 50top 7: Isaac Collins pops out to second baseman Richie Palacios.21
  51. 51bottom 7: Chandler Simpson singles on a ground ball to left fielder Isaac Collins.21
  52. 52bottom 7: Ben Williamson grounds out softly, shortstop Maikel Garcia to first baseman Jac Caglianone. Chandler Simpson to 2nd.21
  53. 53bottom 7: Nick Fortes strikes out swinging.21
  54. 54bottom 7: Richie Palacios pops out to third baseman Nick Loftin in foul territory.21
  55. 55top 8: Carter Jensen strikes out on a foul tip.21
  56. 56top 8: Maikel Garcia pops out to first baseman Jonathan Aranda in foul territory.21
  57. 57top 8: Jac Caglianone strikes out swinging.21
  58. 58bottom 8: Yandy Díaz strikes out swinging.21
  59. 59bottom 8: Cedric Mullins strikes out swinging.21
  60. 60bottom 8: Jonathan Aranda walks.21
  61. 61bottom 8: Victor Mesa Jr. caught stealing 2nd base, catcher Carter Jensen to second baseman Michael Massey.21
  62. 62top 9: Salvador Perez grounds out, shortstop Ben Williamson to first baseman Ryan Vilade.21
  63. 63top 9: Michael Massey flies out to center fielder Cedric Mullins.21
  64. 64top 9: Lane Thomas grounds out sharply, third baseman Junior Caminero to first baseman Ryan Vilade.21
  65. 65bottom 9: Junior Caminero flies out to left fielder Isaac Collins.21
  66. 66bottom 9: Ryan Vilade challenged (pitch result), call on the field was confirmed: Ryan Vilade called out on strikes.21
  67. 67bottom 9: Chandler Simpson grounds out, first baseman Jac Caglianone to pitcher Alex Lange.21
Boxscore

Key evidence.

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

Kansas City Royals boxscore
PlayerPosabavgb2b3bbbfcsererahhbphriplobpopsoutspapitchesrrbisbsfslgsosvtotal baseswwhip
Lane ThomasCF40.25010001000.2500.750401000.50012
Carter JensenC40.25000001000.2500.500401000.25011
Salvador PerezDH4000000000040000020
Michael Massey2B3000100000.2500.25041000000
Isaac CollinsLF2000100000.3330.33330000000
Alex LangeP0300001031501100
John SchreiberP1300001031802001
Michael WachaP12711.2866070219915011
Nick Loftin3B30.33300001000.3330.667310100.33311
Jac Caglianone1B4000000000040000010
John RaveRF3000000000030000010
Maikel GarciaSS40.25010001000.2500.750400000.50002
Tampa Bay Rays boxscore
PlayerPosabavgb2b3bbbfcsererahhbphriplobpopsoutspapitchesrrbisbsfslgsosvtotal baseswwhip
Yandy DiazDH30.33310101000.5001.167401000.66712
Richie Palacios2B30.33300001000.3330.667310000.33301
Jonathan Aranda1B30.33300101000.5000.833400000.33311
Junior Caminero3B4000000000040000000
Victor Mesa Jr.RF000010000000000
Chandler SimpsonLF40.50010002000.5001.250400000.75003
Cedric MullinsCF1000000000010000010
Ben WilliamsonSS3000000000030000010
Nick FortesC3000000000030000010
Drew RasmussenP224234061189025001
Craig KimbrelP0300001031400000
Cam BooserP030000103900000
Cole SulserP0300001031302000
Jonny DeLucaCF3000000000030000010
Ryan Vilade1B40.25010001000.2500.750400000.50022

Comparison

Side by side.

Final

Play-by-play

The game, at bat by at bat.

top 1st(4)
  • Carter Jensen vs Drew Rasmussen0-0

    Carter Jensen lines out to left fielder Chandler Simpson.

    0-0, 1 pitch · 0 outs before

  • Maikel Garcia vs Drew Rasmussen0-0

    Maikel Garcia doubles (17) on a fly ball to shortstop Ben Williamson.

    3-2, 9 pitches · 1 out before

  • Jac Caglianone vs Drew Rasmussen0-0

    Jac Caglianone grounds out, third baseman Junior Caminero to first baseman Jonathan Aranda. Maikel Garcia to 3rd.

    3-2, 8 pitches · 1 out before

  • Salvador Perez vs Drew Rasmussen0-0

    Salvador Perez pops out to second baseman Richie Palacios.

    1-0, 2 pitches · 2 outs before

bottom 1st(4)
  • Yandy Diaz vs Michael Wacha0-0

    Yandy Díaz walks.

    4-1, 5 pitches · 0 outs before

  • Jonny DeLuca vs Michael Wacha0-0

    Jonny DeLuca flies out to right fielder John Rave in foul territory.

    1-2, 5 pitches · 0 outs before

  • Jonathan Aranda vs Michael Wacha0-0

    Jonathan Aranda singles on a line drive to left fielder Isaac Collins. Yandy Díaz to 2nd.

    2-1, 4 pitches · 1 out before

  • Junior Caminero vs Michael Wacha0-0

    Junior Caminero grounds into a double play, pitcher Michael Wacha to second baseman Michael Massey to first baseman Jac Caglianone. Jonathan Aranda out at 2nd. Junior Caminero out at 1st.

    1-1, 3 pitches · 1 out before

top 2nd(5)
  • Michael Massey vs Drew Rasmussen0-0

    Michael Massey walks.

    4-2, 8 pitches · 0 outs before

  • Lane Thomas vs Drew Rasmussen1-0

    Lane Thomas doubles (7) on a line drive to left fielder Chandler Simpson. Michael Massey scores. Lane Thomas to 3rd.

    0-1, 2 pitches · 0 outs before

  • John Rave vs Drew Rasmussen1-0

    John Rave strikes out swinging.

    1-3, 4 pitches · 0 outs before

  • Nick Loftin vs Drew Rasmussen1-0

    Nick Loftin strikes out swinging.

    2-3, 5 pitches · 1 out before

  • Isaac Collins vs Drew Rasmussen1-0

    Isaac Collins flies out to center fielder Jonny DeLuca.

    1-2, 4 pitches · 2 outs before

bottom 2nd(4)
  • Ryan Vilade vs Michael Wacha1-0

    Ryan Vilade called out on strikes.

    2-3, 5 pitches · 0 outs before

  • Chandler Simpson vs Michael Wacha1-0

    Chandler Simpson doubles (5) on a ground ball to right fielder John Rave, deflected by first baseman Jac Caglianone.

    1-0, 2 pitches · 1 out before

  • Ben Williamson vs Michael Wacha1-0

    Ben Williamson grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.

    0-0, 1 pitch · 1 out before

  • Nick Fortes vs Michael Wacha1-0

    Nick Fortes grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.

    2-2, 5 pitches · 2 outs before

top 3rd(3)
  • Carter Jensen vs Drew Rasmussen1-0

    Carter Jensen grounds out, first baseman Jonathan Aranda to pitcher Drew Rasmussen.

    2-1, 4 pitches · 0 outs before

  • Maikel Garcia vs Drew Rasmussen1-0

    Maikel Garcia grounds out, third baseman Junior Caminero to first baseman Jonathan Aranda.

    1-0, 2 pitches · 1 out before

  • Jac Caglianone vs Drew Rasmussen1-0

    Jac Caglianone grounds out sharply, second baseman Richie Palacios to first baseman Jonathan Aranda.

    1-1, 3 pitches · 2 outs before

bottom 3rd(3)
  • Richie Palacios vs Michael Wacha1-0

    Richie Palacios grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.

    0-1, 2 pitches · 0 outs before

  • Yandy Diaz vs Michael Wacha1-0

    Yandy Díaz grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.

    2-1, 4 pitches · 1 out before

  • Jonny DeLuca vs Michael Wacha1-0

    Jonny DeLuca strikes out swinging.

    1-3, 4 pitches · 2 outs before

top 4th(3)
  • Salvador Perez vs Drew Rasmussen1-0

    Salvador Perez strikes out swinging.

    1-3, 4 pitches · 0 outs before

  • Michael Massey vs Drew Rasmussen1-0

    Michael Massey grounds out, first baseman Jonathan Aranda to pitcher Drew Rasmussen.

    0-0, 1 pitch · 1 out before

  • Lane Thomas vs Drew Rasmussen1-0

    Lane Thomas called out on strikes.

    2-3, 8 pitches · 2 outs before

bottom 4th(4)
  • Jonathan Aranda vs Michael Wacha1-0

    Jonathan Aranda pops out to third baseman Nick Loftin.

    0-1, 2 pitches · 0 outs before

  • Junior Caminero vs Michael Wacha1-0

    Junior Caminero grounds out sharply, second baseman Michael Massey to first baseman Jac Caglianone.

    1-0, 2 pitches · 1 out before

  • Ryan Vilade vs Michael Wacha1-0

    Ryan Vilade doubles (6) on a ground ball to left fielder Isaac Collins.

    1-0, 2 pitches · 2 outs before

  • Chandler Simpson vs Michael Wacha1-0

    Chandler Simpson grounds out, first baseman Jac Caglianone to pitcher Michael Wacha.

    2-1, 4 pitches · 2 outs before

top 5th(6)
  • John Rave vs Drew Rasmussen1-0

    John Rave grounds out, shortstop Ben Williamson to first baseman Jonathan Aranda.

    1-1, 3 pitches · 0 outs before

  • Nick Loftin vs Drew Rasmussen1-0

    Nick Loftin singles on a line drive to right fielder Ryan Vilade.

    0-2, 3 pitches · 1 out before

  • Isaac Collins vs Drew Rasmussen1-0

    Isaac Collins walks.

    4-1, 5 pitches · 1 out before

  • Carter Jensen vs Drew Rasmussen2-0

    Carter Jensen singles on a sharp line drive to center fielder Jonny DeLuca. Nick Loftin scores. Isaac Collins to 2nd.

    0-1, 2 pitches · 1 out before

  • Maikel Garcia vs Drew Rasmussen2-0

    Maikel Garcia flies out to center fielder Jonny DeLuca. Isaac Collins to 3rd. Carter Jensen to 2nd.

    0-0, 1 pitch · 1 out before

  • Jac Caglianone vs Drew Rasmussen2-0

    Jac Caglianone flies out sharply to center fielder Jonny DeLuca.

    0-0, 1 pitch · 2 outs before

bottom 5th(5)
  • Ben Williamson vs Michael Wacha2-0

    Ben Williamson called out on strikes.

    2-3, 5 pitches · 0 outs before

  • Nick Fortes vs Michael Wacha2-0

    Nick Fortes pops out to shortstop Maikel Garcia.

    0-0, 1 pitch · 1 out before

  • Richie Palacios vs Michael Wacha2-0

    Richie Palacios singles on a line drive to center fielder Lane Thomas.

    1-1, 3 pitches · 2 outs before

  • Yandy Diaz vs Michael Wacha2-1

    Yandy Díaz doubles (13) on a sharp line drive to left fielder Isaac Collins. Richie Palacios scores.

    3-2, 6 pitches · 2 outs before

  • Jonny DeLuca vs Michael Wacha2-1

    Jonny DeLuca grounds out, second baseman Michael Massey to first baseman Jac Caglianone.

    3-2, 7 pitches · 2 outs before

top 6th(3)
  • Salvador Perez vs Drew Rasmussen2-1

    Salvador Perez strikes out swinging.

    2-3, 5 pitches · 0 outs before

  • Michael Massey vs Drew Rasmussen2-1

    Michael Massey grounds out to first baseman Jonathan Aranda.

    1-2, 4 pitches · 1 out before

  • Lane Thomas vs Drew Rasmussen2-1

    Lane Thomas pops out to shortstop Ben Williamson.

    0-0, 1 pitch · 2 outs before

bottom 6th(3)
  • Jonathan Aranda vs Michael Wacha2-1

    Jonathan Aranda called out on strikes.

    2-3, 7 pitches · 0 outs before

  • Junior Caminero vs Michael Wacha2-1

    Junior Caminero grounds out, shortstop Maikel Garcia to first baseman Jac Caglianone.

    2-1, 4 pitches · 1 out before

  • Ryan Vilade vs Michael Wacha2-1

    Ryan Vilade flies out sharply to center fielder Lane Thomas.

    1-1, 3 pitches · 2 outs before

top 7th(3)
  • John Rave vs Cam Booser2-1

    John Rave flies out sharply to right fielder Ryan Vilade.

    0-1, 2 pitches · 0 outs before

  • Nick Loftin vs Cam Booser2-1

    Nick Loftin flies out to right fielder Ryan Vilade.

    1-1, 3 pitches · 1 out before

  • Isaac Collins vs Cam Booser2-1

    Isaac Collins pops out to second baseman Richie Palacios.

    1-2, 4 pitches · 2 outs before

bottom 7th(4)
  • Chandler Simpson vs Michael Wacha2-1

    Chandler Simpson singles on a ground ball to left fielder Isaac Collins.

    0-2, 3 pitches · 0 outs before

  • Ben Williamson vs Michael Wacha2-1

    Ben Williamson grounds out softly, shortstop Maikel Garcia to first baseman Jac Caglianone. Chandler Simpson to 2nd.

    1-0, 2 pitches · 0 outs before

  • Nick Fortes vs Michael Wacha2-1

    Nick Fortes strikes out swinging.

    0-3, 3 pitches · 1 out before

  • Richie Palacios vs Michael Wacha2-1

    Richie Palacios pops out to third baseman Nick Loftin in foul territory.

    1-2, 5 pitches · 2 outs before

top 8th(3)
  • Carter Jensen vs Cole Sulser2-1

    Carter Jensen strikes out on a foul tip.

    2-3, 5 pitches · 0 outs before

  • Maikel Garcia vs Cole Sulser2-1

    Maikel Garcia pops out to first baseman Jonathan Aranda in foul territory.

    2-1, 4 pitches · 1 out before

  • Jac Caglianone vs Cole Sulser2-1

    Jac Caglianone strikes out swinging.

    1-3, 4 pitches · 2 outs before

bottom 8th(4)
  • Yandy Diaz vs John Schreiber2-1

    Yandy Díaz strikes out swinging.

    2-3, 5 pitches · 0 outs before

  • Cedric Mullins vs John Schreiber2-1

    Cedric Mullins strikes out swinging.

    2-3, 6 pitches · 1 out before

  • Jonathan Aranda vs John Schreiber2-1

    Jonathan Aranda walks.

    4-2, 6 pitches · 2 outs before

  • Junior Caminero vs John Schreiber2-1

    Victor Mesa Jr. caught stealing 2nd base, catcher Carter Jensen to second baseman Michael Massey.

    1-0, 1 pitch · 2 outs before

top 9th(3)
  • Salvador Perez vs Craig Kimbrel2-1

    Salvador Perez grounds out, shortstop Ben Williamson to first baseman Ryan Vilade.

    2-2, 5 pitches · 0 outs before

  • Michael Massey vs Craig Kimbrel2-1

    Michael Massey flies out to center fielder Cedric Mullins.

    1-1, 3 pitches · 1 out before

  • Lane Thomas vs Craig Kimbrel2-1

    Lane Thomas grounds out sharply, third baseman Junior Caminero to first baseman Ryan Vilade.

    3-2, 6 pitches · 2 outs before

bottom 9th(3)
  • Junior Caminero vs Alex Lange2-1

    Junior Caminero flies out to left fielder Isaac Collins.

    1-2, 4 pitches · 0 outs before

  • Ryan Vilade vs Alex Lange2-1

    Ryan Vilade challenged (pitch result), call on the field was confirmed: Ryan Vilade called out on strikes.

    2-3, 7 pitches · 1 out before

  • Chandler Simpson vs Alex Lange2-1

    Chandler Simpson grounds out, first baseman Jac Caglianone to pitcher Alex Lange.

    2-1, 4 pitches · 2 outs before

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