Research preview · unavailable by design

Pitch and batted-ball data

This surface is deliberately empty. Pitch-level and batted-ball tracking data are not something this platform is authorized to collect, so rather than approximating, inferring, or quietly borrowing them, we show you nothing and explain why. The machinery to consume them is built, tested, and waiting behind a closed door.

Status: Tier 0 — no authorized source

MLB's terms prohibit automated collection from its digital properties, and no written permission or licensed feed exists for this project. There is therefore no automated adapter anywhere in this codebase, and a build test fails if one ever appears.

Velocity, spin, movement, release, extension, plate location, exit velocity, launch angle, expected outcomes: unavailable — not estimated, not inferred, not shown

What exists instead

PieceState
Pitch and batted-ball contractsbuilt — strict schemas with source-tier and regime fields
Fixturesfictional only, every record flagged and namespaced fic:, blocked from public artifacts by test
Regime validationbuilt — a 2026+ record without the ABS coordinate declaration is rejected, because ABS moved plate coordinates from front-of-plate to middle-of-plate
Owner-export importerbuilt — writes only to a gitignored private quarantine; never public, never a training label
Automated fetchdoes not exist and must not

What would change this

Written permission from MLB Advanced Media, or a licensed feed. That is an owner decision with a contract behind it, not an engineering one — so this page will keep saying unavailable until such an agreement exists. See Data & sources for the full admission ladder.