For the complete documentation index, see llms.txt. This page is also available as Markdown.

πŸ†Leagues

🏎️ Motorsport API Required

All Leagues endpoints require an active Motorsport API subscription (€79/mo, 3,000 API calls/hr).

View pricing β†’

A league represents a motorsport championship - the top-level entity in the API hierarchy. The Motorsport API currently contains one league: Formula 1 (ID: 3468). The API is structured to support additional championships in future, such as Formula 2, Formula 3, and NASCAR, which will each appear as a separate league.

Use the Leagues endpoints to retrieve championship details, get the current season, check for live activity, or find leagues associated with a specific team.

Available endpoints

Include options

You can enrich league responses using include:

sport, country, stages, latest, upcoming, inplay, today, currentSeason, seasons

Want to keep responses lighter and faster? Use select to request only the fields you need. See: Request options

currentSeason vs seasons

These two includes serve different purposes. Use currentSeason when you need only the active season's ID to pass to downstream endpoints - it returns a single season object. Use seasons when you need a full history of all seasons in the league.

For most integrations, currentSeason is the right choice:

This gives you the current season ID in one call, which you can then use with the Stages, Standings, and Schedules endpoints.

Fixture shortcut includes

The latest, upcoming, inplay, and today includes return fixture subsets directly on the league response - useful for dashboard widgets that need a quick snapshot without traversing the full hierarchy:

  • latest - most recently completed fixtures

  • upcoming - next scheduled fixtures

  • inplay - fixtures currently live

  • today - fixtures scheduled for today

Include depth: Leagues endpoints support a maximum of 2 nested includes.

Working with league fields

  • id - the unique league ID. The Formula 1 league ID is 3468. Hardcode this in your application if you are building exclusively for F1 - there is no need to look it up on every request.

  • active - true for championships currently running or with upcoming fixtures. When additional series are added to the API, use this field to filter for active championships only.

  • short_code - the championship abbreviation, e.g. "F1". Suitable for compact UI labels.

  • sub_type - "international" for Formula 1, reflecting that it is a global championship rather than a country-specific competition.

  • last_played_at - the datetime of the most recently completed fixture in the league. Useful for checking whether the championship is in-season.

  • category - an internal classification value. Not meaningful for application development.

  • has_jerseys - not used in the Motorsport API. Inherited from the shared v3 response structure and can be safely ignored.

Common requests

Get the Formula 1 league with current season:

Check if any league is currently live:

Get all leagues with fixtures today:

Get all leagues a team has competed in:

Get the league a team is currently active in:

Since the Motorsport API currently contains only the Formula 1 league (ID: 3468), the GET All Leagues endpoint will return a single record. You can safely hardcode the league ID and the all-leagues endpoint is primarily useful for future-proofing your integration when additional championships are added.

Get an overview and explanation of all the fields returned in the API response:

  • Seasons - All seasons within a league

  • Stages - Race weekends within a league's seasons

  • Standings - Championship standings by season

  • Teams - Constructors competing in a league

  • Data Model - How leagues sit at the top of the hierarchy

Last updated

Was this helpful?