Getting Your Hands on Aaron Civale Data
If you have been looking into Aaron Civale, the Cleveland Guardians starting pitcher, you probably already ran into the same wall I did: nobody seems to keep a clean, organized dump of his game logs in one place that is easy to work with. The official sites scatter his stats across pages, tables reload slowly, and any spreadsheet you find on the internet is usually three seasons old or formatted like it was made in 2004. Here is the practical path I ended up using after wasting a couple evenings on it. Start with Baseball Reference. Go to his player page, scroll down to the split stats, and use the browser's built-in table export if your browser supports it, or just copy the main table and paste it into a sheet. It is not ideal but it works. The raw spray chart data and pitch-level detail live on MLB.com's Statcast section, which requires a bit more effort to pull cleanly. I ended up writing a small script that hits the MLB Gameday API for his game logs and pulls the pitch-by-pitch data, then merges that with the Basic Reference numbers. The script runs in about forty seconds for a full season's worth of data. You can adapt it for any pitcher, not just Civale. The key endpoint is the gameday feed, which structures data by game date, so you query by year and team code.
One thing most guides skip: the MLB API returns pitch-level data but it does not always flag swing-and-miss calls consistently across all games. Early in a season you might see a strikeout listed but no whiff indicated on a particular pitch. I ran into this with Civale's April 2023 starts and had to cross-reference with the game recap text to identify which pitches were actually swinging misses. I just matched the pitch sequence count against the official box score innings and flagged any gaps. If you do not want to build anything, there are third-party sites like FanGraphs that let you download CSV exports of standard stats. Their download is faster and the formatting is usually sane, though their pitch-type breakdowns are less complete than what the API gives you. For someone who just needs ERA, FIP, strikeout rates, and walk rates per season, FanGraphs is sufficient and saves you from dealing with API keys. The main limitation I hit repeatedly is that minor league data for his earlier years is not as well tracked in the free APIs. If you need his Cleveland Clippers numbers from 2018 through 2020, you will have to pull those from MiLB.com manually or find someone who already dumped them. That part is tedious and I still have incomplete files for it.
For most people just starting out, I would recommend downloading the FanGraphs CSV first to get a baseline, then moving to the API route only if you need pitch-level detail. The API approach takes roughly twenty minutes to set up if you have never written a data pull before, and maybe five minutes once you have the template saved. The FanGraphs route takes about three minutes total. Pick the one that matches how much detail you actually need.
Get the Full Details
