MLB API endpoint
Returns every current Top Performers card for the selected season, including batter and pitcher rankings across batting, batted-ball, expected-stat, fielding, catching, running, and pitch-metric views. The page exposes a season selector but no per-card filters; use the specialist Statcast endpoints for complete filtered leaderboards.
/mlb/statcast-top-performersReturns Baseball Savant's Top Performers page for one season. The page currently contains 77 cards with up to five ranked batter or pitcher records per card, spanning batting, swing path, pitching, fielding, catching, and running metrics. Card counts and labels follow the live page and may change over time. Use the specialist Statcast endpoints for complete tables with team, position, qualification, and other upstream filters.
Query parameters:
year (optional): a season from 2015 through the current season. Defaults to the current season. For 2026, valid values are 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, and 2026; the current range is also listed in mlb_discovery.statcast_top_performers_years.The live page exposes only a season selector. It does not expose per-card filters, paging, or sort controls. Records are returned in the order shown by Baseball Savant. player_type is batter or pitcher; metric and id preserve the page's card identity. Empty historical cards are retained when that season has no rows for the metric.
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| year | integer | No | the current season | Season from 2015 through the current season; defaults to the current season | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/mlb/statcast-top-performers" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"year": 2026,
"source_url": "https://baseballsavant.mlb.com/leaderboard/top?year=2026",
"fetched_at": "2026-10-01T04:03:02Z",
"card_count": 77,
"cards": [
{
"id": "top-performers-batter-exit_velocity_avg",
"player_type": "batter",
"metric": "exit_velocity_avg",
"title": "Batting - Average Exit Velocity",
"complete_leaderboard_url": "https://baseballsavant.mlb.com/leaderboard/statcast?type=batter&year=2026&position=&team=&min=q&sort=exit_velocity_avg&sortDir=desc",
"definition_url": "https://www.mlb.com/glossary/statcast/exit-velocity",
"leaders": [
{
"rank": 1,
"player_id": "695578",
"player_name": "Wood, James",
"team_id": "120",
"value": "95.4 MPH",
"player_url": "https://baseballsavant.mlb.com/savant-player/695578",
"headshot_url": "https://content.mlb.com/images/headshots/current/60x60/695578.png",
"team_logo_url": "https://www.mlbstatic.com/team-logos/120.svg"
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/mlb.statcastTopPerformersResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | mlb.StatcastTopPerformersResponse | No | ||||
| data.card_count | integer | No | ||||
| data.cards | array | No | ||||
| data.cards[].complete_leaderboard_url | string | No | ||||
| data.cards[].definition_url | string | No | ||||
| data.cards[].id | string | No | ||||
| data.cards[].leaders | array | No | ||||
| data.cards[].leaders[].headshot_url | string | No | ||||
| data.cards[].leaders[].player_id | string | No | ||||
| data.cards[].leaders[].player_name | string | No | ||||
| data.cards[].leaders[].player_url | string | No | ||||
| data.cards[].leaders[].rank | integer | No | ||||
| data.cards[].leaders[].team_id | string | No | ||||
| data.cards[].leaders[].team_logo_url | string | No | ||||
| data.cards[].leaders[].value | string | No | ||||
| data.cards[].metric | string | No | ||||
| data.cards[].player_type | string | No | ||||
| data.cards[].title | string | No | ||||
| data.fetched_at | string | No | ||||
| data.source_url | string | No | ||||
| data.year | integer | No | ||||
| msg | string | No | OK |
| 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-top-performers" \
-H "x-api-key: $CRAWLORA_API_KEY"