Base URL
Authentication
All requests require anx-api-key header:
Motorsport-Specific Notes
- Events are races/sessions — not matches. Each session (FP1, FP2, FP3, Qualifying, Sprint, Race) is a separate event
- Race weekends — 4-6 sessions per Grand Prix weekend (Friday-Sunday)
- Categories — Championship types (F1=36, MotoGP=1325, Moto2=1580, Moto3=1581, IndyCar=1527)
- Score format — Finishing positions (P1-P20+), championship points
- Participants — 20+ drivers/riders on track simultaneously
- Off-weekends — During breaks there may be 0 events
Canonical IDs and Routing
Motorsport uses a different upstream namespace than team sports. Championships areunique-stage (not unique-tournament), race weekends are stage (not event),
and both drivers and constructors are accessed through team/{id}.
Each Grand Prix weekend is a parent stage; Practice, Qualifying, Sprint Qualifying, Sprint Race, and Race are child sub-stages retrievable via
GET /api/match/{weekendId}/substages. See Race Weekend Sub-Stages for the full workflow./api/motorsport/team/{teamId} |
| Race calendar | /api/motorsport/tournament/{uniqueStageId}/season/{seasonId}/races |
| Recent results for a driver | /api/motorsport/players/{driverId}/events/last/0 |
| Constructors’ Championship | /api/motorsport/tournament/{uniqueStageId}/season/{seasonId}/standings |
| Constructors’ Championship (alias, identical payload) | /api/motorsport/tournament/{uniqueStageId}/season/{seasonId}/standings/teams |
Key IDs to remember
MotoGP’s championship / tournament ID is
17 (not 51). Older references to 51 are incorrect — /api/tournament/51/seasons returns 404.191417. Example constructor: Red Bull Racing = team 214902.
Upstream limitations
These return empty or 404 by design — do not treat as bugs:/sport/motorsport/scheduled-events/{date}always returns an empty list (motorsport stages are not published in the date-scoped feed). Use the race calendar endpoint instead.- Constructor teams (e.g. Red Bull Racing
214902) do not expose/events/lastor/near-events. Only driver “teams” do. - Individual stage sub-endpoints
/scores,/lineups,/statistics,/incidents,/startgrid,/player-statistics,/best-players,/graph,/pregame-form,/streaks,/odds*,/winning-odds,/award,/h2h,/media,/votes,/missing-players,/channels,/venueare not available for motorsport — the upstream feed embeds finishing order, starting grid, lap data, and race incidents inside the stage detail. UseGET /api/match/:matchIdinstead. - Season-level
/season/{sid}/venuesand/season/{sid}/statisticsalso return404for motorsport. /api/live/allcurrently returns404on the motorsport vanity — use/api/livefor live sessions./api/liveis the canonical live feed for motorsport and carries the same event data./tournament/{id}/season/{sid}/standingsand/standings/teamsboth return constructor standings (Mercedes, Red Bull, Aprilia Racing, etc). There is no drivers-standings endpoint. There is also no per-raceresults[]array, so a drivers points table cannot be derived. The only driver-level ranking available today is race wins: readwinnerfrom each stage in/tournament/{id}/season/{sid}/racesand count by driver./events/next/0returns an empty list during off-season / winter break (e.g. between F1 seasons). This is expected, not a bug.
Race Weekend Structure
Formula 1 (typical)
MotoGP (typical)
Championship Points (F1 2025+)
Key Motorsport Statistics
Endpoint Categories
Example Requests
UI Design Ideas
- Starting grid view: Read the
startingGrid/results[]block from/match/{id}(stage detail) — show grid positions (pole position highlighted) - Race results: Show finishing order with gaps (“+5.2s”, “+1 lap”, “DNF”)
- Championship standings: Constructors’ Championship only. F1 rows carry
position, points, victories, podiums, polePositions, racesStarted, racesWithPoints; MotoGP rows carryposition, pointsonly — render the columns you actually receive rather than assuming the F1 shape. A drivers table is not available; if you show one, build it from race wins. - Race calendar: Show full season calendar with circuits — use
.../rounds+.../venues - Lap chart: Use
/match/{id}/graph— show position changes lap-by-lap - Team colors: F1 teams have distinctive colors — display branding prominently
- Session types: Clearly label Practice/Qualifying/Sprint/Race — very different contexts
- DNF/DNS: Handle “Did Not Finish” and “Did Not Start” statuses
- Fastest lap: Show which driver set it — prestigious stat
- Weather: Rain transforms races — show prominently if available