Endpoint Playground
Returns pitcher pitch speed, percentage, or spin rankings by pitch class. Year, minimum-pitch threshold, and hand are first-party filters. Team filtering and table sorting are applied locally because the page JavaScript applies them after receiving the embedded rows. Use mlb_discovery for exact values. CSV and pitch movement visualizations remain separate representations.
14 Oct 2026: 40 rows; 16 fields had a value in every checked item and 24 varied between items.
Sample value profiles: breaking_avg_break: 2.6 to 18.3, median 8; breaking_avg_break_z: -50.7 to -30.7, median -37.8; breaking_avg_break_z_induced: -9.7 to 13.6, median -1.4.
curl 'https://api.crawlora.net/api/v1/mlb/statcast-pitch-arsenals?year=2008&type=avg_speed&hand=R&min_pitches=q&team=ATH&sort=player_name&sort_dir=asc' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| year | string | No | 2008 | Season |
| type | string | No | avg_speed | Metric |
| hand | string | No | R | Throwing hand; omit for all pitchers |
| min_pitches | string | No | q | Minimum pitches |
| team | string | No | ATH | Current MLB team abbreviation; applied locally |
| sort | string | No | player_name | Local sort column |
| sort_dir | string | No | asc | Local sort direction |
| limit | integer | No | Rows per page (1-500) | |
| offset | integer | No | Zero-based row offset |
{
"code": 200,
"msg": "OK",
"data": {
"board": "pitch-arsenals",
"year": "2026",
"type": "avg_speed",
"min_pitches": "q",
"team": "ATH",
"sort": "four_seam",
"sort_dir": "desc",
"total": 11,
"offset": 0,
"limit": 2,
"rows": [
{
"name_display_last_first": "Miller, Mason",
"player_id": "695243",
"player_url": "https://baseballsavant.mlb.com/savant-player/695243",
"name_abbrev": "ATH",
"ff_avg_speed": "101.4"
}
]
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.