| Data domain / consumer page | Endpoint(s) |
|---|---|
| Standings | GET /v1/{league}/standings (all sports) |
| Rosters | GET /v1/{league}/teams/{id}/roster |
| Player profiles | GET /v1/{league}/players/{id} |
| NRFI predictions | GET /v1/mlb/games/{id}/nrfi, GET /v1/mlb/players/{id}/first-inning |
| Pitcher splits | GET /v1/mlb/players/{id}/pitching-stats?scope=, GET /v1/kbo/players/{id}/pitching-stats?scope= |
| Bullpen | GET /v1/mlb/teams/{id}/bullpen |
| Advanced metrics (FanGraphs-style: wOBA, FIP, xFIP) | batting-stats / pitching-stats payloads + GET /v1/mlb/players/{id}/plate-discipline |
| Pitch mix | GET /v1/mlb/players/{id}/arsenal, GET /v1/kbo/players/{id}/arsenal, GET /v1/npb/players/{id}/arsenal |
| Zone data (strike-zone heatmap) | GET /v1/mlb/players/{id}/zone-stats?role=, GET /v1/kbo/players/{id}/zone-stats?role= |
| Batter vs pitcher | GET /v1/mlb/batter-vs-pitcher?batter=&pitcher= |
| DVP (defense vs position) | GET /v1/nba/team-dvp?season=&position= |
| Playtypes | GET /v1/nba/team-playtypes?season= |
| Player shooting / tracking | GET /v1/nba/players/{id}/tracking?season=, GET /v1/nba/games/{id}/shot-chart, GET /v1/nba/shot-types |
| Team-defense rankings | GET /v1/nba/team-defense?season= |
| Props settings (market catalog + lines) | GET /v1/{league}/props/markets, GET /v1/{league}/games/{id}/props |
| Odds | GET /v1/{league}/games/{id}/odds, GET /v1/{league}/games/{id}/odds/history |
Pitcher-split scopes
batting-stats and pitching-stats accept a scope query parameter:
all (default), home, away, l3, l7, l10, plus handedness
splits — vs_lhp / vs_rhp for batters, vs_lhh / vs_rhh for
pitchers.
Data freshness note
Standings and rosters are filled by the provider’s worker ingestion engines. The endpoints return200 with an empty data array when a
league’s collections haven’t been seeded yet — if you see empty
standings or rosters for MLB / NBA / KBO / KBL / NPB, contact support
rather than treating it as “league not covered”.