MLB API endpoint
Returns paginated pitch events for a Catcher Framing entity_id. Repeat the leaderboard filters used to obtain the entity; league aggregate rows have no detail feed. The upstream detail response may be large, so use limit and offset.
/mlb/statcast-catcher-framing-detailsQuery parameters:
entity_id (required): positive id from a Catcher Framing leaderboard row.type: catcher (default), catching-team, batter, batting-team, pitcher, league.game_type: Any, Playoff, Regular (default).team: optional single team id: 108, 117, 133, 141, 144, 158, 138, 112, 109, 119, 137, 114, 136, 146, 121, 120, 110, 135, 143, 134, 140, 139, 113, 111, 115, 118, 116, 142, 145, 147. Repeated team ids fail upstream and are not supported.min_pitches: q (default), 100, 250, 500, 750, 1000, 1250, 1500.min_results: 1 (default), 25, 50, 100, 250, 500, 750, 1000, 1250, 1500.season_start, season_end: ordered seasons from 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026. Both default to the current season.date_start, date_end: optional inclusive YYYY-MM-DD bounds; either bound may be supplied independently.bat_side: L or R; omit for both.pitch_hand: L or R; omit for both.pitch_type: one of FF, SI, FC, CH, FS, FO, SC, CU, SL, ST, SV, KN. Repeated pitch types fail upstream.ball_strike: in or out.call: original (default) or final.limit: 1–500 (default 100).offset: 0–100000 (default 0).Repeat the table filters used to obtain the row. league aggregate details are unavailable. The upstream response can be large; the endpoint pages the decoded rows locally.
| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| api_pitch_type_group03 | 40 | SI (12), FF (11), ST (5) and 4 more |
| api_relative_plate_x | 40 | |
| api_relative_plate_z | 40 | -1.29 to 1.3, median -0.3 |
| b_name_display_first_last | 40 | “Hernández, Heriberto” and 34 other values |
| bat_team_id | 40 | |
| called_strike_prob | 40 | 0 to 0.14, median 0.09 |
| catcher_framing_runs | 40 | 0.11 to 0.12, median 0.11 |
| edge_dist_calc | 40 | 0.52 to 3.2, median 1.9 |
| event_inning | 40 | 1 to 9, median 4 |
| event_type | 40 | called_strike (31), ball (9) |
| f2_name_display_first_last | 40 | Stephenson, Tyler in all 40 |
| fielder_2 | 40 | 663,886 |
| fld_team_id | 40 | |
| game_date | 40 | 2026-04-01 to 2026-09-26 |
| id | 40 | |
| name | 40 | Stephenson, Tyler in all 40 |
| outs | 40 | 0 to 2, median 1 |
| p_name_display_first_last | 40 | “Abbott, Andrew” and 12 other values |
| pitcher | 40 | 594,580 to 695,534, median 666,157 |
| play_id | 40 | |
| player_at_bat | 40 | 593,428 to 815,873, median 676,475 |
| pre_ball_count | 40 | 0 to 3, median 0 |
| pre_strike_count | 40 | 0 to 2, median 0 |
| savant_batter_id | 40 | |
| team_name | 40 | zzzzz in all 40 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| entity_id | string | Yes | Entity id from a Catcher Framing leaderboard row | 663886 | |
| type | string | No | Table group; league details are unavailable Allowed values: catcher, catching-team, batter, batting-team, pitcher. | ||
| game_type | string | No | Game type Allowed values: Any, Playoff, Regular. | ||
| team | string | No | Optional single MLB team id Allowed values: 108, 117, 133, 141, 144, 158, 138, 112, 109, 119, 137, 114, 136, 146, 121, 120, 110, 135, 143, 134, 140, 139, 113, 111, 115, 118, 116, 142, 145, 147. | ||
| min_pitches | string | No | Minimum pitches Allowed values: q, 100, 250, 500, 750, 1000, 1250, 1500. | ||
| min_results | integer | No | Minimum results Allowed values: 1, 25, 50, 100, 250, 500, 750, 1000, 1250, 1500. | ||
| season_start | integer | No | First season Allowed values: 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026. | ||
| season_end | integer | No | Last season Allowed values: 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026. | ||
| date_start | string | No | Inclusive start date | ||
| date_end | string | No | Inclusive end date | ||
| bat_side | string | No | Batter side Allowed values: L, R. | ||
| pitch_hand | string | No | Pitcher hand Allowed values: L, R. | ||
| pitch_type | string | No | Single pitch type Allowed values: FF, SI, FC, CH, FS, FO, SC, CU, SL, ST, SV, KN. | ||
| ball_strike | string | No | Pitch location relative to strike zone Allowed values: in, out. | ||
| call | string | No | Framing model Allowed values: original, final. | ||
| 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-framing-details?entity_id=663886&type=catcher&game_type=Any&team=108&min_pitches=q&min_results=1&season_start=2018&season_end=2018&bat_side=L&pitch_hand=L&pitch_type=FF&ball_strike=in&call=original&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"data": {
"board": "catcher-framing-details",
"entity_id": 663886,
"total": 8570,
"offset": 0,
"limit": 1,
"rows": [
{
"play_id": 123,
"catcher_framing_runs": 0.12
}
]
}
}Request schema
No body schema
Response schema
#/definitions/mlb.statcastCatcherFramingDetailsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| board | string | No | catcher-framing-details | |||
| entity_id | integer | No | 663886 | |||
| fetched_at | string | No | ||||
| limit | integer | No | 100 | |||
| offset | integer | No | 0 | |||
| rows | array | No | ||||
| source_url | string | No | ||||
| total | integer | No | 8570 |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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-framing-details?entity_id=663886&type=catcher&game_type=Any&team=108&min_pitches=q&min_results=1&season_start=2018&season_end=2018&bat_side=L&pitch_hand=L&pitch_type=FF&ball_strike=in&call=original&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"