MLB API endpoint
Returns first baseman, throwing fielder, fielding team, batting team, or league receiving rows. Includes season/game selections, threshold and group filters, team/date/hand/height/outcome filters, and validated page-local split filters and sorting. Per-play source records are available through mlb-statcast-first-base-receiving-details. 3D trajectory visualizations are not included.
/mlb/statcast-first-base-receivingQuery parameters include type (fielder_3, throw_fielder_id, pitching-team, batting-team, league); repeated season[] (2021, 2022, 2023, 2024, 2025, 2026); repeated gameType[] (R, F, D, L, W); min (q, 1, 5, 10, 25, 50, 75, 100, 200, 300, 400, 500, 750, 1000); minSplit (1, 5, 10, 25, 50, 75, 100, 200, 300, 400, 500, 750, 1000); splitYear (0, 1); repeated split[] (throw_height_code, throw_location_code_full, runners_on_cd); repeated team[] (MLB team ids 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); dateStart, dateEnd (YYYY-MM-DD); fielder_3_hand (L, R); min_height_in_inches (70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80); and is_hit_into_play_field_out (0, 1). Visualization filters are also available: repeated runners_on_cd[] (0, 1, 2, 3, 4, 5, 6, 7), throw_pos_id[] (4, 5, 6), throw_height_code[] (1_Low, 2_Mid, 3_High), throw_location_code_full[] (A. On Target, B. Scoop, C. Bounce, D. Low, E. Wide, F. High), and bin_time_X10[] (-1, 0, 1, 2, 3, 4, 5). Local sort uses sortColumn (entity_name, fielder_3_hand, height_in_inches, total_oaa, oaa_on_target, oaa_bounce, oaa_scoop, oaa_low, oaa_high, oaa_wide, n_on_target, n_bounce, n_scoop, n_low, n_high, n_wide, outs_on_target, outs_bounce, outs_scoop, outs_low, outs_high, outs_wide, n_outs, n_plays, avg_expected_rate_out) and sortDirection (asc, desc); paging is limit (1–500, default 100) and offset (0–10000).
Use mlb-discovery for the complete machine-readable accepted sets. Values were replayed against the live first-party page on 2026-10-01, including all 30 MLB team IDs and each selector value. Game types F, D, L, and W are accepted even when the selected year currently has no matching plays. q is the qualified-row threshold. Detail records can be fetched using First Base Receiving play details. The 3D skeletal visualization endpoints are separate media behavior and are not returned here.
| Field | Filled in, of 37 checked | Values in the sample |
|---|---|---|
| avg_expected_rate_out | 37 | 0.91 to 0.96, median 0.94 |
| avg_oaa | 37 | -0.02 to 0.01, median 0 |
| f3_name_display_last_first | 37 | “Burleson, Alec” and 36 other values |
| fielder_3 | 37 | 502,671 to 808,959, median 668,904 |
| fielder_3_hand | 37 | R (31), L (6) |
| height_in_inches | 37 | |
| id | 37 | |
| n_bounce | 37 | 3 to 35, median 12 |
| n_high | 37 | 3 to 37, median 18 |
| n_low | 37 | 4 to 26, median 13 |
| n_on_target | 37 | 143 to 615, median 361 |
| n_outs | 37 | 177 to 694, median 417 |
| n_plays | 37 | 186 to 732, median 439 |
| n_scoop | 37 | 4 to 21, median 10 |
| n_teams | 37 | 1 to 2, median 1 |
| n_wide | 37 | 7 to 41, median 24 |
| name | 37 | “Burleson, Alec” and 36 other values |
| oaa_bounce | 37 | -1.95 to 2.48, median 0.34 |
| oaa_high | 37 | -4.08 to 1.38, median 0.32 |
| oaa_low | 37 | -1.7 to 1.58, median 0.34 |
| oaa_on_target | 37 | -3.42 to 1.8, median 0.27 |
| oaa_scoop | 37 | -3.7 to 2.25, median 0.18 |
| oaa_wide | 37 | -2.41 to 1.59, median -0.16 |
| outs_bounce | 37 | 0 to 29, median 7 |
| outs_high | 37 | 3 to 36, median 15 |
| outs_low | 37 | 3 to 24, median 11 |
| outs_on_target | 37 | 142 to 609, median 343 |
| outs_scoop | 37 | 2 to 11, median 7 |
| outs_wide | 37 | 3 to 33, median 17 |
| player_id | 37 | |
| team_id | 37 | |
| team_name | 37 | “Cardinals” and 29 other values |
| throw_outs_above_average | 37 | 11.12 to 60.86, median 27.81 |
| throw_range_outs_above_average | 37 | 3.65 to 33.47, median 15.97 |
| total_oaa | 37 | -8.07 to 8.27, median 0.86 |
| uniqueId | 37 | “676475_2026” and 36 other values |
| year | 37 | 2,026 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| type | string | No | Leaderboard group Allowed values: fielder_3, throw_fielder_id, pitching-team, batting-team, league. | ||
| season[] | array<string> | No | Season values Allowed values: 2021, 2022, 2023, 2024, 2025, 2026. Repeat this query parameter for multiple values. | ||
| gameType[] | array<string> | No | Game types Allowed values: R, F, D, L, W. Repeat this query parameter for multiple values. | ||
| min | string | No | Minimum opportunities Allowed values: q, 1, 5, 10, 25, 50, 75, 100, 200, 300, 400, 500, 750, 1000. | ||
| minSplit | string | No | Minimum opportunities within each group Allowed values: 1, 5, 10, 25, 50, 75, 100, 200, 300, 400, 500, 750, 1000. | ||
| splitYear | string | No | Year split selector Allowed values: 0, 1. | ||
| split[] | array<string> | No | Group dimensions Allowed values: throw_height_code, throw_location_code_full, runners_on_cd. Repeat this query parameter for multiple values. | ||
| team[] | array<string> | No | MLB team ids 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. Repeat this query parameter for multiple values. | ||
| dateStart | string | No | Inclusive start date (YYYY-MM-DD) | ||
| dateEnd | string | No | Inclusive end date (YYYY-MM-DD) | ||
| fielder_3_hand | string | No | First baseman batting hand Allowed values: L, R. | ||
| min_height_in_inches | string | No | Minimum fielder height, inches Allowed values: 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80. | ||
| is_hit_into_play_field_out | string | No | Field-out flag Allowed values: 0, 1. | ||
| runners_on_cd[] | array<string> | No | Base occupancy codes Allowed values: 0, 1, 2, 3, 4, 5, 6, 7. Repeat this query parameter for multiple values. | ||
| throw_pos_id[] | array<string> | No | Throwing position ids Allowed values: 4, 5, 6. Repeat this query parameter for multiple values. | ||
| throw_height_code[] | array<string> | No | Throw heights Allowed values: 1_Low, 2_Mid, 3_High. Repeat this query parameter for multiple values. | ||
| throw_location_code_full[] | array<string> | No | Throw outcomes Allowed values: A. On Target, B. Scoop, C. Bounce, D. Low, E. Wide, F. High. Repeat this query parameter for multiple values. | ||
| bin_time_X10[] | array<string> | No | Time bins Allowed values: -1, 0, 1, 2, 3, 4, 5. Repeat this query parameter for multiple values. | ||
| sortColumn | string | No | Local sort field Allowed values: entity_name, total_oaa, oaa_on_target, oaa_bounce, oaa_scoop, oaa_low, oaa_high, oaa_wide, n_on_target, n_bounce, n_scoop, n_low, n_high, n_wide, outs_on_target, outs_bounce, outs_scoop, outs_low, outs_high, outs_wide, n_outs, n_plays, avg_expected_rate_out. | ||
| sortDirection | string | No | Local sort direction Allowed values: asc, desc. | ||
| limit | integer | No | Rows per page, 1-500 Minimum: 1. Maximum: 500. | ||
| offset | integer | No | Zero-based row offset Minimum: 0. Maximum: 10000. | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/mlb/statcast-first-base-receiving?type=fielder_3&season%5B%5D=2021&gameType%5B%5D=R&min=q&minSplit=1&splitYear=0&split%5B%5D=throw_height_code&team%5B%5D=108&fielder_3_hand=L&min_height_in_inches=70&is_hit_into_play_field_out=0&runners_on_cd%5B%5D=0&throw_pos_id%5B%5D=4&throw_height_code%5B%5D=1_Low&throw_location_code_full%5B%5D=A.+On+Target&bin_time_X10%5B%5D=-1&sortColumn=entity_name&sortDirection=asc&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"board": "first-base-receiving",
"type": "fielder_3",
"seasons": [
"2026"
],
"game_types": [
"R"
],
"minimum": "q",
"minimum_split": "1",
"split_year": "1",
"total": 37,
"sort": "total_oaa",
"sort_direction": "desc",
"offset": 0,
"limit": 1,
"rows": [
{
"player_id": 683737,
"f3_name_display_last_first": "Busch, Michael",
"team_id": 112,
"n_plays": 732,
"n_outs": 694,
"total_oaa": -0.7547799245
}
]
}
}Request schema
No body schema
Response schema
#/definitions/mlb.statcastFirstBaseReceivingResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | mlb.StatcastFirstBaseReceivingResponse | No | ||||
| data.board | string | No | ||||
| data.fetched_at | string | No | ||||
| data.game_types | array | No | ||||
| data.limit | integer | No | ||||
| data.minimum | string | No | ||||
| data.minimum_split | string | No | ||||
| data.offset | integer | No | ||||
| data.rows | array | No | ||||
| data.seasons | array | No | ||||
| data.sort | string | No | ||||
| data.sort_direction | string | No | ||||
| data.source_url | string | No | ||||
| data.split_year | string | No | ||||
| data.splits | array | No | ||||
| data.total | integer | No | ||||
| data.type | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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-first-base-receiving?type=fielder_3&season%5B%5D=2021&gameType%5B%5D=R&min=q&minSplit=1&splitYear=0&split%5B%5D=throw_height_code&team%5B%5D=108&fielder_3_hand=L&min_height_in_inches=70&is_hit_into_play_field_out=0&runners_on_cd%5B%5D=0&throw_pos_id%5B%5D=4&throw_height_code%5B%5D=1_Low&throw_location_code_full%5B%5D=A.+On+Target&bin_time_X10%5B%5D=-1&sortColumn=entity_name&sortDirection=asc&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"