Season Stats & Analytics
Season starters & lineups
NPB-only path (MLB, KBO and NPB expose the same shape under their own
prefix). Walks a season's games in canonical-id order and returns, per
game, both starting pitchers (appearance_order 1: id, name, throwing
hand, IP, pitches, runs, earned runs, decision), the starting catcher
(sub_order 0, position C), the starting nine per side in batting
order, plus scheduled start, venue and the line score. Built from the
stored box scores only — no upstream call. A game with no box rows yet
is listed with empty sides; counters a source does not publish (KBO
pitch counts) are null, never 0.
Cursor pagination: pass next_cursor back as cursor. Optional team
restricts to games where the canonical team id is home or away.
Requires the stats entitlement (a paid plan). See Responses & Errors for the success envelope and availability rules.
https://api.sportquanta.com/v1/npb/games/lineupsReference context: NPB.
Overview · Response conventions
Authorizations
AuthorizationstringheaderrequiredSend a workspace API token in the Authorization: Bearer <token> header.
Query Parameters
seasonintegerrequiredRequired season year (1920–2100). Availability of historical data is separate from accepted query values.
Required range: 1920 <= x, x <= 2100
teamstringCanonical team id; restricts to that team's home and away games.
cursorstringOpaque cursor from the previous page's next_cursor.
limitintegerdefault:50Required range: 1 <= x, x <= 200
provenancebooleandefault:falseOpt in to per-field provenance on supported single game, match, team, player, and venue reads. Lists and composites accept the flag but generally omit provenance. It is returned under _meta.provenance only when source metadata exists.
Response
application/jsonOne page of per-game starters.
Query validation failed. Depending on the handler, invalid_query_parameter is returned with HTTP 400 or 422. Pre-read validation is non-billable.
Missing or invalid bearer API token.
Access is forbidden: the token lacks api.read scope, the plan lacks an endpoint/bookmaker capability, or configured billing access is inactive. Inspect error.code and details.feature when present.
Query validation failed. Depending on the handler, invalid_query_parameter is returned with HTTP 400 or 422. Pre-read validation is non-billable.
Hourly rate ceiling or monthly quota exceeded. The error code disambiguates
which limit was hit. X-RateLimit-* and X-Requests-*-Month response headers
carry the current state of both counters.
Token validation or an internal handler failed. Token-store failures use api_token_lookup_failed; unsupported internal sport dispatch can use data_layer_unavailable.
The data layer (Mongo / ClickHouse / Redis cache) is temporarily unreachable. The server attempted the lookup; it failed. Retry with backoff. Per the spec's order of evaluation, this DOES consume monthly quota — the request reached step 6.
The configured billing provider could not verify API access. The request is refused before the data handler and does not consume monthly quota.
dataobjectrequiredOne cursor page of per-game starters assembled from stored box scores.
data.seasonintegerrequireddata.team_idstringdata.itemsobject[]requireddata.items.game_idstringrequireddata.items.seasonintegerrequireddata.items.game_typestringdata.items.statusstringdata.items.schedule_datestringdata.items.scheduled_start_utcstringdata.items.venue_idstringdata.items.home_team_idstringdata.items.away_team_idstringdata.items.linescoreobjectdata.items.linescore.home_runsintegerdata.items.linescore.away_runsintegerdata.items.linescore.inningintegerdata.items.linescore.is_top_inningbooleandata.items.linescore.inningsobject[]data.items.linescore.innings.numintegerdata.items.linescore.innings.home_runsintegerdata.items.linescore.innings.away_runsintegerdata.items.linescore.innings.home_hitsintegerdata.items.linescore.innings.away_hitsintegerdata.items.linescore.innings.home_errorsintegerdata.items.linescore.innings.away_errorsintegerdata.items.homeobject | nullrequiredNull only when the game has no home team id yet.
data.items.home.team_idstringrequireddata.items.home.starting_pitcherobject | nullrequiredThe appearance_order 1 pitcher; null until a box score exists.
data.items.home.starting_pitcher.player_idstringrequireddata.items.home.starting_pitcher.namestringdata.items.home.starting_pitcher.handstring | nullrequiredThrowing hand (L/R) from the players collection; null when unknown.
data.items.home.starting_pitcher.ipnumber | nullrequiredInnings pitched as a decimal (5.667 for 5.2).
data.items.home.starting_pitcher.pitchesinteger | nullrequiredPitch count; null when the source does not publish it (KBO).
data.items.home.starting_pitcher.runsinteger | nullrequireddata.items.home.starting_pitcher.earned_runsinteger | nullrequireddata.items.home.starting_pitcher.decisionstring | nullrequiredW | L | S (NPB also H) or null.
data.items.home.starting_catcherobject | nullrequiredThe sub_order 0 row at position C; null when no starter was listed at C.
data.items.home.starting_catcher.player_idstringrequireddata.items.home.starting_catcher.namestringdata.items.home.starting_catcher.batting_orderintegerrequireddata.items.home.battersobject[]requiredThe starting nine (sub_order 0, batting_order 1–9) in batting order; empty until a box score exists.
data.items.home.batters.batting_orderintegerrequireddata.items.home.batters.player_idstringrequireddata.items.home.batters.namestringdata.items.home.batters.positionstring | nullrequireddata.items.home.batters.batsstring | nullrequiredBatting side (L/R/S) from the players collection; null when unknown.
data.items.home.starter_idsstring[]requireddata.items.awayobject | nullrequireddata.items.away.team_idstringrequireddata.items.away.starting_pitcherobject | nullrequiredThe appearance_order 1 pitcher; null until a box score exists.
data.items.away.starting_pitcher.player_idstringrequireddata.items.away.starting_pitcher.namestringdata.items.away.starting_pitcher.handstring | nullrequiredThrowing hand (L/R) from the players collection; null when unknown.
data.items.away.starting_pitcher.ipnumber | nullrequiredInnings pitched as a decimal (5.667 for 5.2).
data.items.away.starting_pitcher.pitchesinteger | nullrequiredPitch count; null when the source does not publish it (KBO).
data.items.away.starting_pitcher.runsinteger | nullrequireddata.items.away.starting_pitcher.earned_runsinteger | nullrequireddata.items.away.starting_pitcher.decisionstring | nullrequiredW | L | S (NPB also H) or null.
data.items.away.starting_catcherobject | nullrequiredThe sub_order 0 row at position C; null when no starter was listed at C.
data.items.away.starting_catcher.player_idstringrequireddata.items.away.starting_catcher.namestringdata.items.away.starting_catcher.batting_orderintegerrequireddata.items.away.battersobject[]requiredThe starting nine (sub_order 0, batting_order 1–9) in batting order; empty until a box score exists.
data.items.away.batters.batting_orderintegerrequireddata.items.away.batters.player_idstringrequireddata.items.away.batters.namestringdata.items.away.batters.positionstring | nullrequireddata.items.away.batters.batsstring | nullrequiredBatting side (L/R/S) from the players collection; null when unknown.
data.items.away.starter_idsstring[]requireddata.next_cursorstring | nullrequiredPass back as cursor for the next page; null on the last page.
_metaobjectResponse request/cache metadata. Optional evidence fields are specific to this handler; cache TTL does not measure source-data freshness.
_meta.request_idstring_meta.served_fromenum<string>Available options: live, cache
_meta.cache_ttl_secondsintegerResponse cache TTL; independent of source freshness. Omitted when zero.
errorobjectrequirederror.codestringrequiredStable machine-readable error code.
error.messagestringrequiredUser-facing error summary.
error.detailsanyOptional error details.