MLB API endpoint
Returns per-attempt play records expanded from a Catcher Throwing catcher row. Supply the entity_id from a Cat row and the row's year/team when it represents a season or team stint. Details are ungrouped source attempts, paginated locally.
/mlb/statcast-catcher-throwing-detailsReturns per-attempt plays expanded from one Catcher Throwing Cat leaderboard
row. The source record includes game/date, catcher, pitcher, runner, target
base, attempt/result flags, pop/exchange/flight timing, arm strength, and
caught-stealing run-value components. The upstream returns this row's full
attempt set; limit and offset page it locally. Use the leaderboard's
entity_id, row season, and key_team_id when the row is split by season or
team stint. League and team aggregate rows are not catcher detail rows.
Query parameters:
entity_id: required positive catcher id from a Cat row.year: 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023,
2024, 2025, 2026; defaults to 2026.game_type: Regular, Playoff, All; defaults to Regular.minimum: q, 1, 5, 10, 20, 30, 40, 50, 75, 100;
defaults to q.target_base: 2B, 3B, All; defaults to All.split: yes, no; defaults to no.team: optional team filter: 108, 117, 133, 141, 144, 158,
138, 112, 109, 119, 137, 114, 136, 146, 121, 120,
110, 135, 143, 134, 140, 139, 111, 113, 115, 118,
116, 142, 145, 147.with_team_only: true, false; defaults to true.limit: 1-500; defaults to 100.offset: 0-100000; defaults to 0.| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| N_prior_pickoffs_with_reset | 0 | |
| accuracy_cd | 16 | -1 to 1, median 0 |
| accuracy_impact_seconds | 16 | -0.25 to 0.04, median -0.1 |
| accuracy_over_xcs | 20 | -0.14 to 0.27, median 0 |
| at_bat_number | 20 | 6 to 72, median 35 |
| bat_team_id | 20 | |
| catcher_id | 20 | |
| catcher_name | 20 | Perez, Salvador in all 20 |
| cs_aa | 20 | -0.27 to 0.75, median -0.11 |
| cs_raa | 20 | -0.18 to 0.49, median -0.07 |
| distance_to_target | 20 | 41.31 to 62.79, median 56.76 |
| end_year | 20 | 2,026 |
| end_year_upper | 20 | 9,999 |
| entity_choice | 20 | C in all 20 |
| entity_code | 20 | |
| entity_id | 20 | |
| entity_name | 20 | Perez, Salvador in all 20 |
| est_flight_time | 15 | 0.91 to 1.34, median 1.3 |
| exchange_over_xcs | 20 | -0.22 to 0.63, median 0.02 |
| exp_cs | 20 | 0 to 0.78, median 0.17 |
| exp_cs_with_accuracy | 16 | 0 to 0.85, median 0.18 |
| exp_cs_with_catchrel | 15 | 0.1 to 0.86, median 0.29 |
| exp_cs_with_flight | 15 | 0.05 to 0.72, median 0.17 |
| fielder_id | 16 | |
| fielder_name | 16 | Witt Jr., Bobby (7), Massey, Michael (4), Loftin, Nick (2) and 2 more |
| fld_team_id | 20 | |
| flight_over_xcs | 20 | -0.11 to 0.04, median -0.04 |
| game_date | 20 | 2026-03-27 to 2026-08-12 |
| game_pk | 20 | 822,723 to 825,017, median 824,128 |
| generic_time_to_target | 20 | 1.59 to 2.01, median 1.97 |
| ground_other_over_xcs | 16 | -0.15 to 0, median 0 |
| implied_accuracy_seconds | 14 | -0.25 to 0.06, median -0.1 |
| is_accuracy_high | 20 | 0 to 1, median 0 |
| is_accuracy_low | 20 | 0 to 1, median 0 |
| is_accuracy_norm | 20 | 0 to 1, median 0 |
| is_game_playoff | 20 | 0 |
| is_game_regular | 20 | 1 |
| is_pitchout | 20 | 0 |
| is_runner_cs | 20 | 0 to 1, median 0 |
| is_runner_sb | 20 | 0 to 1, median 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| entity_id | integer | Yes | Positive catcher id from a Cat row | 521692 | |
| year | integer | No | Season Allowed values: 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026. | ||
| game_type | string | No | Game type Allowed values: Regular, Playoff, All. | ||
| minimum | string | No | Minimum steal attempts Allowed values: q, 1, 5, 10, 20, 30, 40, 50, 75, 100. | ||
| target_base | string | No | Throw target Allowed values: 2B, 3B, All. | ||
| split | string | No | Split rows by season Allowed values: yes, no. | ||
| team | string | No | Empty, split, or team id from the corresponding leaderboard row Allowed values: 108, 117, 133, 141, 144, 158, 138, 112, 109, 119, 137, 114, 136, 146, 121, 120, 110, 135, 143, 134, 140, 139, 111, 113, 115, 118, 116, 142, 145, 147. | ||
| with_team_only | boolean | No | Team roster membership filter | ||
| limit | integer | No | Rows per page (1-500) Minimum: 1. Maximum: 500. | ||
| offset | integer | No | Zero-based row offset Minimum: 0. Maximum: 100000. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/mlb/statcast-catcher-throwing-details?entity_id=521692&year=2016&game_type=Regular&minimum=q&target_base=2B&split=yes&team=108&with_team_only=true&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"entity_id": 521692,
"total": 20,
"offset": 0,
"limit": 100,
"rows": [
{
"entity_id": 521692,
"entity_name": "Perez, Salvador",
"play_id": "bb29072b-9b9b-3e08-8724-84cf891ac163",
"game_date": "2026-06-16T00:00:00.000Z",
"target_base": "3B",
"throw_type": "Held",
"is_runner_sb": 1,
"is_runner_cs": 0,
"cs_raa": -0.0105
}
]
}
}Request schema
No body schema
Response schema
#/definitions/mlb.statcastCatcherThrowingDetailsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | mlb.StatcastCatcherThrowingDetailsResponse | No | ||||
| data.entity_id | integer | No | ||||
| data.fetched_at | string | No | ||||
| data.limit | integer | No | ||||
| data.offset | integer | No | ||||
| data.rows | array | No | ||||
| data.source_url | string | No | ||||
| data.total | integer | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/mlb/statcast-catcher-throwing-details?entity_id=521692&year=2016&game_type=Regular&minimum=q&target_base=2B&split=yes&team=108&with_team_only=true&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"