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

How to Build a Drivers' Championship Standings Table

βœ… Included in All Plans

The standings endpoints are included at no additional cost.

Plans differ only in leagues and API call limits.

Compare plans β†’

This guide shows you how to retrieve driver standings for a season and shape the response into a ranked championship table.

When to use this

Use the driver standings endpoints when you want to:

  • Display a live or historical drivers' championship table

  • Show a driver's current position and points total

  • Build a comparison view between drivers across a season

How to retrieve the data

Use the GET Driver Standings by Season ID endpoint to fetch all driver standings for a specific season:

GET https://api.sportmonks.com/v3/motorsport/standings/drivers/seasons/{season_id}
?api_token={your_token}

To enrich the response with driver details, add the participant include:

GET https://api.sportmonks.com/v3/motorsport/standings/drivers/seasons/{season_id}
?api_token={your_token}&include=participant

The participant include returns the driver entity directly on each standing object, so you do not need a second request to resolve driver names or images.

You can go one level deeper to include the driver's nationality:

The maximum include depth on this endpoint is 2.

Working with the data

Each object in the data array represents one driver's standing for the season:

To render a sorted standings table, sort the array by position ascending:

Common pitfalls

The response is not always ordered by position. The API does not guarantee position-ascending order. Always sort by position in your application before rendering.

participant_id refers to a driver, not a team. On the driver standings endpoints, participant_id resolves to the Driver entity. Use the participant include rather than making a separate request to the drivers endpoint.

result, group_id, round_id, and standing_rule_id are not used in the Motorsport API. You can safely ignore these fields in your data model.

Advanced usage

To display standings mid-season and show how they changed after the last race, store a snapshot of the previous response and compare position values between snapshots to calculate position changes.

To display standings for a historical season, simply change the season_id in the URL. Use the GET All Seasons endpoint (/v3/motorsport/seasons) to find the ID for a specific year.

Common errors

Status
Likely cause

401

Missing or invalid api_token

404

The season_id does not exist in the Motorsport API

429

Rate limit exceeded for your plan

See Also

Standings endpoints

Related entities

Related guides

FAQ

Which season ID should I use for the current Formula 1 season? Use the GET All Seasons endpoint to retrieve all available seasons and their IDs. The is_current field on each season object indicates the active season.

Can I retrieve standings for a single driver only? No. The standings endpoint returns all drivers for the given season. Filter the response client-side by participant_id if you only need one driver's entry.

Does the standings data update in real time during a race? Standings update after each race concludes, not lap by lap. For live race positions, use the livescores endpoint with the results or lineups.details includes.

Last updated

Was this helpful?