REST API · 0.3.0

Aura Sports Data API

One source-neutral REST API for schedules, live game state, plays, player stats, odds, props, and settled results across MLB, NFL, NBA, WNBA, NHL, college football, and college basketball. Historical and analytical routes are included after the current-data workflow.

Download OpenAPI

System

GET/health

Health check

Confirms the API process is reachable.

GET/api/openapi.json

OpenAPI schema

Returns this machine-readable API contract.

Coverage

GET/api/coverage

Product coverage and reliability

Returns concise source-neutral availability and measured completeness by sport, capability, and season.

Catalog

GET/api/catalog

API catalog

Returns the stable sports objects, request delivery capabilities, and documentation links available to customers without scanning stored data.

POST/api/query

Execute an Aura query

Runs up to eight named selections against registered roots and returns only requested fields.

Games

GET/api/games

Page through games

Returns a chronological page from one Pacific calendar date. The first request defaults to today in America/Los_Angeles; a cursor keeps that date and the active filters stable. No sport filter means every sport. Collection items preserve identity, teams, score, phase, schedule, and freshness while omitting full-resource detail such as box scores, plays, metrics, and markets.

pageSizequery
Games per page (1-100; default 100).
cursorquery
Opaque cursor from `page.nextCursor`. Omitted filters continue from the cursor.
sportquery
Optional sport filter. Omit it for every sport.
subdivisionquery
Optional college-football subdivision membership. Cross-subdivision games match both filters.
statusquery
Optional game phase filter.
datequery
Pacific calendar date in YYYY-MM-DD format. Defaults to today in America/Los_Angeles on the first page.
teamquery
Optional team abbreviation filter.
viewquery
Stable collection projection. `summary` is the default; `scoreboard` is the compact daily-slate contract.
fieldsquery
Optional comma-separated allowlist of summary scalar or team leaf dot paths. `gameId`, `sport`, and the team envelope are always included; duplicates and unknown paths fail with 400.

GET/api/games/live

List live games

Returns the complete filtered inventory of fresh games marked in progress. Games not updated inside the freshness window are excluded so stale state cannot appear live.

maxAgeSecondsquery
Maximum game-state age in seconds. Defaults to 300 and is capped at 86400.

GET/api/games/{gameId}

Get game

Returns one compact game with identity, schedule, status, teams, and score. Use `view=card` to omit the status labels; `fields` may select a bounded named-consumer projection.

viewquery
`research` (default) or `card`.
fieldsquery
Optional comma-separated allowlist of Game resource fields. `gameId`, `sport`, and the team envelope remain included; duplicates and unknown paths fail with 400. Fields require `view=card` or `view=research`.

GET/api/games/{gameId}/frame

Get current atomic game frame

Returns the latest source-neutral render snapshot assembled only after its scoreboard, play, player-stat, and metric writes are durable. Poll this ordinary one-credit request at a bounded cadence; resumable realtime delivery is available through a direct Aura relationship.

fieldsquery
Optional comma-separated allowlist of GameFrame state fields; game identity, scoreboard, state, latest play, and featured player remain included. Duplicates and unknown paths fail with 400.

GET/api/games/{gameId}/plays/page

Page through complete game plays

Returns one stable chronological page. Use `order=desc` for the latest plays. Pass `nextCursor` as `cursor` until `hasMore` is false.

pageSizequery
Events per page (1-250; default 250).
orderquery
Chronological direction: asc (default) or desc.
fieldsquery
Optional comma-separated allowlist of item fields, such as items.sequence,items.situation; structural fields remain included.

GET/api/games/{gameId}/boxscore

Get game box score

Returns one exact source-neutral Aura BoxScore with team and player stat lines flattened from the retained read model.

fieldsquery
Optional comma-separated allowlist of BoxScore fields; teams and players remain included as required identity/stat envelopes.

GET/api/games/{gameId}/markets

List game markets

Returns the complete sellable inventory for one game. Every independently graded line is a stable market.

marketTypequery
Filter by market type.
categoryquery
Filter player props by category.
playerIdquery
Filter to one Aura player id.
definitionIdquery
Filter to one market definition id.
primaryquery
Filter to current primary or alternate lines.
availabilityquery
Filter by current availability.

GET/api/games/{gameId}/odds/timeline

Get game odds timeline

Returns the complete compact source-neutral market history needed to chart line movement.

marketTypequery
Market type, defaults to moneyline.
fieldsquery
Comma-separated allowlisted response fields for the chart-ready market projection.

GET/api/games/{gameId}/metric-series

Page through metric observations

Returns change-only metric values used by Game Pulse. Omit `entityId` and `definitionId` to return every metric for the game. Follow `nextCursor` until `complete` is true.

entityIdquery
Comma-separated Aura entity ids.
definitionIdquery
Comma-separated metric definition ids.
limitquery
Maximum observation batches, 1 through 500.
cursorquery
Opaque continuation cursor from the previous response.
fieldsquery
Optional comma-separated allowlisted response fields from the metric-series catalog.

GET/api/games/history

Page through MLB game history

Returns exact source-neutral MLB game results in stable chronological order. Each item contains only game identity, season, schedule, phase, teams, score, and venue. Follow `nextCursor` until `hasMore` is false; cursors are scoped to the active filters.

pageSizequery
Games per page (1-100; default 100).
seasonquery
Four-digit season.
teamIdquery
Aura team id or common MLB abbreviation.
venuequery
Aura venue id.
phasequery
Game phase.
fieldsquery
Optional comma-separated allowlist of MLB history game fields. The page envelope and id, sport, season, startsAt, and teams identity fields remain included; duplicates and unknown paths fail with 400.

GET/api/games/history/coverage

Get MLB history coverage

One exact game and player-stat completeness contract for history discovery.

fieldsquery
Optional comma-separated allowlist of game and player-stat coverage dot paths. Top-level identity and coverage containers are always included; duplicates and unknown paths fail with 400.

Metrics

GET/api/metrics/definitions

List metric definitions

Returns the complete filtered inventory of exact, cacheable Aura metric definitions and their analysis semantics.

sportquery
Sport filter, including ALL.
familyquery
Metric-family filter.
entityTypequery
Entity-type filter.
fieldsquery
Comma-separated allowlisted item fields; identity and paging remain included.

GET/api/metrics/definitions/{metricId}

Get metric definition

Returns one stable Aura metric definition.

metricIdpath · required
Stable Aura metric definition id.
fieldsquery
Comma-separated allowlisted item fields; identity remains included.

Analytics

GET/api/analytics/landscape

Build league landscape

Returns the compact LeagueLandscape view.

entityTypequery
Landscape subject.
xquery · required
Metric definition id plotted on the x axis. Required.
yquery · required
Metric definition id plotted on the y axis. Required.
sizequery
Optional metric definition id encoded as point size.
colorquery
Optional metric definition id encoded as point color.
outcomequery
Optional metric definition id classified against `outcomeThreshold`.
outcomeOperatorquery
Comparison applied to the outcome metric.
outcomeThresholdquery
Numeric threshold for the outcome classification. Required with `outcome`.
sportquery
Optional sport filter, such as MLB or WNBA.
phasequery
Optional comma-separated game phase filter.
cohortquery
Optional cohort restriction as `team:<value>` or `position:<value>`.
aggregatequery
How multiple samples per entity collapse to one value.
fromquery
Optional inclusive lower bound on observation time, Unix epoch milliseconds.
toquery
Optional inclusive upper bound on observation time, Unix epoch milliseconds.
xDimensionsquery
Optional JSON object of metric dimension filters for the x axis.
yDimensionsquery
Optional JSON object of metric dimension filters for the y axis.
sizeDimensionsquery
Optional JSON object of metric dimension filters for the size metric.
colorDimensionsquery
Optional JSON object of metric dimension filters for the color metric.
outcomeDimensionsquery
Optional JSON object of metric dimension filters for the outcome metric.
xDirectionquery
Which x direction counts as better; defaults from the metric definition.
yDirectionquery
Which y direction counts as better; defaults from the metric definition.
includequery
Set to `export` to include bounded model-ready export rows.
fieldsquery
Optional comma-separated LeagueLandscape response fields.
limitquery
Maximum 500 returned entities.

GET/api/analytics/player-comparison

Compare MLB player form

Compares two to four Aura MLB players across season and rolling windows with bounded series, coverage, cache validators, and model-ready rows.

playersquery · required
Two to four comma-separated Aura MLB player IDs.
seasonquery · required
Four-digit MLB season.
rollingGamesquery
Rolling window from 1 to 50; default 10.
homeAwayquery
Optional home or away split for baseline and series.
throughquery
Optional inclusive UTC date, YYYY-MM-DD.
metricsquery
Optional comma-separated metric ID allowlist.
fieldsquery
Optional comma-separated PlayerComparison field allowlist; identity, window, comparison entities, samples, and coverage remain included. Duplicates and unknown paths fail with 400.

Markets

GET/api/markets

Page through markets by game

Returns each game once with its complete collection of source-neutral markets. The page unit is a game, so alternate lines remain independently graded market objects without repeating game detail. The first request defaults to today in America/Los_Angeles and no sport filter means every sport.

pageSizequery
Games per page (1-100; default 25).
cursorquery
Opaque cursor from `page.nextCursor`. Omitted filters continue from the cursor.
datequery
Pacific calendar date in YYYY-MM-DD format. Defaults to today in America/Los_Angeles on the first page.
sportquery
Filter the daily market board by sport. Omit it for every sport.

GET/api/markets/{marketId}

Get market

Returns one player prop or game moneyline, spread, or total by the same market id the game board publishes.

marketIdpath · required
Aura market id from a game prop board or game odds.

Teams

GET/api/teams

List teams

Returns the complete roster-free Team inventory for one sport.

sportquery · required
Required sport.
leaguequery
Optional league filter.

GET/api/teams/{teamId}

Get team

Returns one exact Team profile. Rosters remain available from the dedicated roster route.

fieldsquery
Optional comma-separated Team profile fields; id, sport, and name remain included. Duplicates and unknown paths fail with 400.

GET/api/teams/{teamId}/roster

Get team roster

Returns one Team and directly renderable roster players without a second profile lookup.

GET/api/stats/mlb/history/team-aggregates

Get MLB team form

Exact season and recent form used by Game Pulse.

teamIdquery · required
Required Aura team id or abbreviation.
fieldsquery
Optional comma-separated allowlist of MLB team form fields. Team identity and request context remain included; duplicates and unknown paths fail with 400.

Players

GET/api/stats/player-game

List player-game stats

Returns the complete normalized player-stat inventory for one game.

gameIdquery · required
Required Aura game id.
teamIdquery
Aura team id.

GET/api/players

Page through players

Returns a cursor-paged catalog of exact Player profiles. Omit sport and league to browse every retained player.

pageSizequery
Players per page (1-100; default 100).
cursorquery
Opaque cursor from `page.nextCursor`. Omitted filters continue from the cursor.
sportquery
Optional sport filter.
leaguequery
Optional league filter.

GET/api/players/{playerId}

Get player

Returns one full Player by default. The stable `card` view returns only the nullable identity, team, and position fields shared by player reveals.

viewquery
`full` (default) or `card`. Unsupported views fail deterministically.
fieldsquery
Optional comma-separated Player profile fields; id, sport, and the full name identity envelope remain included. Fields require the full view; duplicates and unknown paths fail with 400.

GET/api/stats/nfl/history/player-seasons

NFL player seasons

Season totals and play-derived advanced stats on Aura player ids.

seasonquery · required
Required NFL season.
seasonTypequery
REG; the retained 2025 fantasy season.
positionquery
Optional position abbreviation.
fieldsquery
Comma-separated exact fields. playerId, season, and seasonType remain included.

GET/api/stats/mlb/history/player-lines

MLB player lines

Exact v2 rows; page ≤250, bulk ≤1,000.

viewquery
Read mode: `page` (≤250 rows) or `bulk` (≤1,000 rows, bulk-export billing).
pageSizequery
Rows per page: 1-250 for `page` (default 100), 1-1000 for `bulk` (default 500).
seasonquery
Four-digit MLB season.
teamIdquery
MLB abbreviation or Aura team id.
opponentTeamIdquery
MLB abbreviation or Aura team id.
rolequery
Player role for the line.
fieldsquery
Optional comma-separated allowlist of player-line item fields; identity fields remain included. Duplicates and unknown paths fail with 400.

GET/api/stats/mlb/history/player-aggregates

Get MLB player form

Exact season and recent form; optional home/away and opponent splits.

playerIdquery · required
Required Aura player id.
includequery
Optional homeAway,opponents splits.
fieldsquery
Optional comma-separated allowlist of MLB player form response fields; identity and request envelope remain included. Duplicates and unknown paths fail with 400.

Fantasy

GET/api/fantasy/nfl/adp

NFL fantasy draft data

2026 draft ranks, ADP inputs, season projections, and recomputable fantasy scores.

entityIdquery
Optional Aura player or team id.
afterquery
Continue after this entity id.
fieldsquery
Comma-separated exact fields. entityId, entityType, and season remain included.

GET/api/fantasy/nfl/weeks/{week}

NFL fantasy week

One current NFL week with retained opening/latest/closing snapshots, input ranges, availability, and actual performance.

weekpath · required
Regular-season week, 1 through 18.
entityIdquery
Optional Aura player id; equivalent to playerId.
fieldsquery
Comma-separated exact fields. Identity, season, and week remain included.

GET/api/fantasy/nfl/players/{playerId}

NFL fantasy player

One player across draft data, weekly projections, retained observation history, and actual performance.

weekquery
Optional regular-season week.
fieldsquery
Comma-separated weekly player fields.