---
title: "Get Baseball Savant Year-to-Year Changes"
method: GET
path: "/mlb/statcast-year-to-year"
tags: ["MLB"]
---

# Get Baseball Savant Year-to-Year Changes

`GET /mlb/statcast-year-to-year`

## Request

- Base URL: `https://api.crawlora.net/api/v1`
- URL: `https://api.crawlora.net/api/v1/mlb/statcast-year-to-year`
- Auth: API key in header `x-api-key`

Returns one of Baseball Savant's Year-to-Year Changes tables for batters, pitchers, batting teams, or pitching teams. Select one of the live statistic types and comparison start years; the page data contains available yearly values and differences. Table sorting and pagination are applied locally. Use mlb_discovery for all accepted group, type, and year values.

## Query parameters

- `group` 'Batter' | 'Pitcher' | 'Batter Team' | 'Pitcher Team'
- `type` 'ba' | 'xba' | 'obp' | 'xobp' | 'slg' | 'xslg' | 'iso' | 'xiso' | 'babip' | 'woba' | 'xwoba' | 'wobacon' | 'xwobacon' | 'bacon' | 'xbacon' | 'hard_hit_percent' | 'exit_velocity_avg' | 'sweet_spot_percent' | 'barrel_batted_rate' | 'launch_angle_avg' | 'avg_swing_speed' | 'attack_angle' | 'ideal_angle_rate' | 'attack_direction' | 'vertical_swing_path' | 'avg_swing_length' | 'fastball_velo' | 'breaking_velo' | 'offspeed_velo' | 'barrels' | 'popups_percent' | 'flyballs_percent' | 'linedrives_percent' | 'groundballs_percent' | 'pull_percent' | 'straightaway_percent' | 'opposite_percent' | 'poorlyweak_percent' | 'pull_percent_airballs' | 'poorlytopped_percent' | 'poorlyunder_percent' | 'flareburner_percent' | 'solidcontact_percent' | 'hr_flyballs_percent' | 'popups' | 'flyballs' | 'linedrives' | 'groundballs' | 'in_zone_percent' | 'out_zone_percent' | 'edge_percent' | 'z_swing_percent' | 'oz_swing_percent' | 'iz_contact_percent' | 'oz_contact_percent' | 'whiff_percent' | 'f_strike_percent' | 'f_swing_percent' | 'swing_percent' | 'meatball_swing_percent' | 'meatball_percent' | 'z_swing_miss_percent' | 'oz_swing_miss_percent' | 'in_zone' | 'out_zone' | 'edge' | 'in_zone_swing' | 'out_zone_swing' | 'in_zone_swing_miss' | 'out_zone_swing_miss' | 'pitch_count' | 'pa' | 'ab' | 'hit' | 'single' | 'double' | 'triple' | 'home_run' | 'walk' | 'strikeout' | 'k_percent' | 'bb_percent' | 'hbp' | 'batted_ball' | 'pitch_usage_fastball' | 'pitch_usage_offspeed' | 'pitch_usage_breaking' | 'pitch_count_fastball' | 'pitch_count_offspeed' | 'pitch_count_breaking'
- `year` '2025' | '2024' | '2023' | '2022' | '2021' | '2020' | '2019' | '2018' | '2017'
- `sort` string
- `sort_dir` 'asc' | 'desc'
- `limit` integer
- `offset` integer

## Headers

- `x-api-key` string, required

## Response `200`

OK

- MlbStatcastYearToYearResponseDoc
  - `board` string
  - `fetched_at` string
  - `group` string
  - `limit` integer
  - `next_year` integer
  - `offset` integer
  - `rows` object[]
  - `sort` string
  - `sort_dir` string
  - `source_url` string
  - `total` integer
  - `type` string
  - `year` string

## Other responses

- `400`: Bad Request
- `404`: Not Found
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crawlora/apis/crawlora-api.md) · [All operations](https://skmtc.dev/crawlora/apis/crawlora-api/llms.txt) · [OpenAPI document](https://skmtc.dev/crawlora/apis/crawlora-api/revisions/afac9b012a27?raw)
