Endpoint Playground
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.
14 Oct 2026: 40 rows; 40 fields had a value in every checked item.
Sample value profiles: bat_side_formatted: L (19), R (18), S (3); attack_angle: 1.1 to 19.39, median 10.04; b_name_display_first_last: “Caminero, Junior” and 39 other values.
curl 'https://api.crawlora.net/api/v1/mlb/statcast-bat-tracking?type=batter&season_start=2023&season_end=2023&game_type=Any&min_swings=q&min_group_swings=1&bat_side=L&contact_type=2&is_hard_hit=1&attack_zone=0&pitch_hand=L&sort=avg_batter_x_position&sort_dir=asc' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| type | string | No | batter | Table row type |
| season_start | string | No | 2023 | First season |
| season_end | string | No | 2023 | Last season; must be >= season_start |
| game_type | string | No | Any | Game type |
| min_swings | string | No | q | Minimum swing qualifier |
| min_group_swings | string | No | 1 | Minimum swings per grouped row |
| date_start | string | No | Optional date range start in YYYY-MM-DD | |
| date_end | string | No | Optional date range end in YYYY-MM-DD | |
| bat_side | string | No | L | Batter side |
| contact_type | string | No | 2 | Contact type |
| is_hard_hit | string | No | 1 | Hard-hit filter |
| attack_zone | string | No | 0 | Attack zone |
| pitch_hand | string | No | L | Pitcher hand |
| teams | array | No | One or more MLB team ids | |
| pitch_types | array | No | One or more pitch types | |
| counts | array | No | One or more ball-strike counts | |
| group_by | array | No | Up to four grouping columns | |
| sort | string | No | avg_batter_x_position | Local row sort field |
| sort_dir | string | No | asc | Sort direction |
| limit | integer | No | Rows per page (1-500) | |
| offset | integer | No | Zero-based row offset |
{
"code": 200,
"msg": "OK",
"data": {
"board": "bat_tracking",
"type": "batter",
"season_start": "2026",
"season_end": "2026",
"game_type": "Regular",
"min_swings": "q",
"min_group_swings": "1",
"total": 203,
"sort": "avg_sweetspot_speed_mph_qualified",
"sort_dir": "desc",
"offset": 0,
"limit": 100,
"rows": [
{
"id": 691406,
"name": "Caminero, Junior",
"team_id": 139,
"team_name": "Rays",
"avg_sweetspot_speed_mph_qualified": "79.448458618"
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.