MLB STATCASTEndpoint in development
MLB Statcast API
Pitch-level Statcast metrics for every MLB plate appearance. 2.1 million pitches loaded across 2023, 2024, and 2025. Barrel rate, xwOBA, exit velocity, launch angle, and bat tracking (2024+), with sprint speed and OAA shipping in a follow-up.
1,000 req/day on the free plan (2,000 with GitHub). No credit card.
2.89M pitches · 2023 / 2024 / 2025 / 2026 · bat tracking from 2024
What you'll get
Three full seasons of pitch-level data, the same metrics Baseball Savant surfaces, joined to the same player_id you use everywhere else in the API.
Pitch-level research
Query 2.89M pitches across 2023, 2024, 2025 and 2026 by pitcher, batter, pitch type, count, and outcome.
Barrel + xwOBA dashboards
Per-batter barrel rate and xwOBA across rolling windows, surfaced cleanly without scraping the raw pitch data yourself.
Bat tracking insights
Bat speed and swing length on every pitch from 2024 forward (MLB started exposing bat tracking that season).
Pitcher arsenal profiles
Pitch-type usage, average velocity, and spin rate by count and game state for any pitcher in the dataset.
Projection model inputs
Three full seasons of granular pitch data: enough for backtest cross-validation without scraping or rate-limiting headaches.
Pre-launch integration
Schema below is the contract. Wire it up now and the endpoint goes live the moment the route lands.
Metrics covered
Status reflects the data load, not the public endpoint, which is in development for all rows.
| Metric | Status | Description |
|---|---|---|
barrel_rate | live | Barrel-classified batted balls as a fraction of total batted balls. Derived from launch_speed_angle. |
xwoba | live | Expected weighted on-base average. The Statcast probabilistic outcome model. |
exit_velocity_avg | live | Average exit velocity in mph on batted balls in play. |
bat_speed_avg | live (2024+) | Average bat speed in mph at point of contact. Available from 2024 forward; MLB began exposing bat tracking that season. |
launch_angle_avg | live | Average launch angle in degrees on batted balls in play. |
sprint_speed | coming | Feet per second on competitive runs. Roster-level metric, pending ingest expansion. |
oaa | coming | Outs Above Average for defenders. Pending ingest expansion. |
Planned endpoint shape
The contract is final. Integrate against it and the endpoint goes live the moment the route lands.
GET /v1/mlb/players/:id/statcast?season=2025
{
"data": {
"player_id": "bb_player_4q7m2tzkrhxa",
"player_name": "Aaron Judge",
"season": 2025,
"plate_appearances": 547,
"batted_balls": 412,
"metrics": {
"barrel_rate": 0.198,
"xwoba": 0.412,
"exit_velocity_avg": 95.2,
"exit_velocity_max": 119.4,
"bat_speed_avg": 78.6,
"launch_angle_avg": 14.8,
"hard_hit_rate": 0.572
},
"pitch_types_seen": [
{ "pitch_type": "FF", "count": 1834, "avg_velocity": 94.1 },
{ "pitch_type": "SL", "count": 1102, "avg_velocity": 84.7 }
],
"as_of": "2026-06-XX..."
},
"meta": { "cached": false, "cache_age_ms": 0 }
}SDK call, planned
The SDK call below is the planned shape. Wire it up now, the client method goes live alongside the endpoint.
- · 2.89M pitches across 2023–2026, queryable per player per season
- · Same player_id as the rest of the API
- · Bat tracking included from 2024 forward
import { BigBallSportsClient } from '@bigballsdata/sdk';
const client = new BigBallSportsClient(process.env.BBS_API_KEY!);
// Shape preview, endpoint in development
const statcast = await client.mlb.players.statcast(playerId, { season: 2025 });
console.log('Barrel rate:', statcast.data.metrics.barrel_rate);
console.log('xwOBA: ', statcast.data.metrics.xwoba);
console.log('Avg EV: ', statcast.data.metrics.exit_velocity_avg, 'mph');
console.log('Avg bat speed:', statcast.data.metrics.bat_speed_avg, 'mph (2024+ data)');What will it cost
Free tier matches the rest of the API: 1,000 req/day on the free plan, 2,000 with GitHub connected. No credit card. Paid tiers (Solo / Trio / Edge / Pro) carry forward.
Frequently asked
- How much Statcast data is loaded?
- 2.89 million pitches across the 2023, 2024, 2025 and 2026 seasons — 2026 is in progress and includes spring training, the three earlier seasons are complete regular season and postseason. Every plate appearance, every pitch, with the upstream Statcast columns canonicalised into the BBS schema. Bat tracking (bat speed, swing length) is available from 2024 forward because MLB started exposing those columns that season.
- When does the public endpoint go live?
- The data is loaded; the customer-facing route is in development. We will update this page (and /whats-new) the day the endpoint ships. The schema below is the contract — integrating against it now is safe.
- Which metrics will be live at launch?
- Barrel rate, xwOBA, exit velocity (avg + max), launch angle, hard hit rate, and bat speed (2024+) land at launch. Sprint speed and Outs Above Average (OAA) are pending a separate ingest pass and ship in a follow-up.
- How does this compare to consuming the raw pitch data directly?
- Same raw pitch data, delivered as a production API. Our value: canonical schema, no scraping or rate-limit headaches, joined to the same player_id you use in the rest of the API. The public download interfaces are great for one-off CSVs; this endpoint is built for production application code.
- Is it on the free tier?
- Yes, on the same free tier as the rest of the API (1,000 req/day, 2,000 with GitHub). Paid tiers (Solo / Trio / Edge / Pro) carry forward.
Stats reference
Get an API key now
2.89M pitches across the 2023, 2024, 2025 and 2026 seasons are loaded. The endpoint goes live the moment the route ships. Sign up now and your key is ready.