MLB

Get Baseball Savant bat-tracking rows

Returns batter, batting-team, pitcher, pitching-team, or league bat-tracking rows with the live page's season, game type, swing threshold, date, side, contact, attack zone, team, pitch, count, and grouping filters. Use mlb_discovery for the same complete value sets. Multi-value filters are passed as repeated query parameters.

get/mlb/statcast-bat-tracking

Request

  • Base URL: https://api.crawlora.net/api/v1
  • URL: https://api.crawlora.net/api/v1/mlb/statcast-bat-tracking
  • Auth: API key in header x-api-key

Query parameters

type'batter' | 'batting-team' | 'pitcher' | 'pitching-team' | 'league'

Table row type

season_start'2023' | '2024' | '2025' | '2026'

First season

season_end'2023' | '2024' | '2025' | '2026'

Last season; must be >= season_start

game_type'Any' | 'Playoff' | 'Regular'

Game type

min_swings'q' | '1' | '5' | '10' | '25' | '50' | '100' | '200' | '500' | '1000'

Minimum swing qualifier

min_group_swings'1' | '5' | '10' | '25' | '50' | '100' | '200' | '500' | '1000'

Minimum swings per grouped row

date_startstring

Optional date range start in YYYY-MM-DD

date_endstring

Optional date range end in YYYY-MM-DD

bat_side'L' | 'R'

Batter side

contact_type'2' | '4' | '9'

Contact type

is_hard_hit'1' | '0'

Hard-hit filter

attack_zone'0' | '1' | '1.1' | '2' | '3'

Attack zone

pitch_hand'L' | 'R'

Pitcher hand

teamsstring[]

One or more MLB team ids

pitch_typesstring[]

One or more pitch types

countsstring[]

One or more ball-strike counts

group_bystring[]

Up to four grouping columns

sort'avg_batter_x_position' | 'avg_batter_y_position' | 'avg_intercept_x_vs_batter' | 'avg_intercept_y_vs_batter' | 'avg_foot_sep0' | 'avg_foot_angle0' | 'attack_direction_pullopp' | 'rate_ideal_attack_angle' | 'attack_angle' | 'avg_plane_vertical_angle' | 'avg_sweetspot_speed_mph' | 'avg_sweetspot_speed_mph_qualified' | 'avg_is_sweetspot_speed_high' | 'avg_is_sweetspot_speed_high_qualified' | 'squared_up' | 'squared_up_qualified' | 'squared_up_per_bat_contact' | 'squared_up_per_swing' | 'squared_up_with_speed' | 'squared_up_with_speed_qualified' | 'squared_up_with_speed_per_bat_contact' | 'squared_up_with_speed_per_swing' | 'swing_length_qualified' | 'swords' | 'swings_qualified' | 'percent_qualified' | 'hit_into_play_qualified' | 'bat_contact' | 'bat_contact_qualified' | 'count' | 'delta_run_exp' | 'hit_into_play_per_swing' | 'pitcher_delta_run_exp' | 'strikes_swinging_qualified' | 'sweetspot_speed_high_qualified' | 'strike_swinging_per_swing' | 'id' | 'name' | 'batter_name' | 'b_name_display_first_last' | 'savant_batter_id' | 'team_id' | 'team_name' | 'side' | 'n_sides' | 'n_teams' | 'bat_side_formatted'

Local row sort field

sort_dir'asc' | 'desc'

Sort direction

limitinteger

Rows per page (1-500)

offsetinteger

Zero-based row offset

Headers

x-api-keystring required

API key required

Response

OK

boardstring
date_endstring
date_startstring
fetched_atstring
game_typestring
limitinteger
min_group_swingsstring
min_swingsstring
offsetinteger
rowsobject[]
season_endstring
season_startstring
sortstring
sort_dirstring
source_urlstring
totalinteger
typestring

Changes

No recorded changes to this operation across all 2 revisions of this API.