API Basics
Sportradar's Formula 1 data is delivered via a RESTful API. Requests are authenticated using the API authentication credentials configured in your account.
Data is available in JSON or XML format. For the concepts behind the data, see Fundamentals.
Technical Requirements
To integrate with Sportradar API feeds, your application must meet the following requirements:
- Support TLS 1.2 or higher for all inbound and outbound connections
- Support API key based authentication for RESTful requests
- Be capable of consuming and parsing JSON or XML responses
- Support standard HTTP methods and status codes used by RESTful APIs
API Style
The Formula 1 API is a standalone, stage-based Sportradar API. Rather than the league-based model used by Sportradar's US sports APIs, it organizes everything as a hierarchy of stages, which means:
- Entities are identified by Sportradar
sr:IDs (for examplesr:stage:1189123,sr:competitor:495898), not GUIDs. - A single product covers the entire Formula 1 World Championship.
- Everything is connected by stage IDs. A season, an event, a practice, a qualifying session, a race, and even an individual lap are all stages, and you navigate between them by changing the stage ID. See Fundamentals.
Within Sportradar's racing portfolio, the Formula 1 API shares this stage-based model with the other motorsport APIs (IndyCar, MotoGP, Formula E, Rally, and Indy Lights). The NASCAR API is league-based and follows different conventions.
Related Racing APIs
Sportradar also offers additional racing data APIs:
For the full list and reference documentation, see the Racing API reference.
Authentication
Every request is authenticated with your API key, sent in the x-api-key header. Your key is in your Sportradar developer account under your application's credentials.
GET https://api.sportradar.com/formula1/trial/v2/en/seasons.json
x-api-key: YOUR_API_KEYKeep the key server-side; do not embed it in client applications. The same key authenticates both the API reference sandbox and the data feeds.
Base URL and URL Structure
All requests go to https://api.sportradar.com/formula1/. The path follows a single, consistent shape:
GET https://api.sportradar.com/formula1/{access_level}/v2/{language_code}/{feed_path}.{format}The common path placeholders are:
access_level:trialorproductionv2: the API version (see the Versioning section below)language_code: a 2-letter language code (for exampleen)format:jsonorxml
Most feeds take an additional sr: ID in the path. Stage-scoped feeds take a stage_id; the competitor and team feeds take a competitor_id. For example:
GET https://api.sportradar.com/formula1/trial/v2/en/sport_events/sr:stage:1189123/summary.jsonGET https://api.sportradar.com/formula1/trial/v2/en/competitors/sr:competitor:495898/profile.jsonStart from the Seasons feed to obtain a season stage ID, then use the Stage Summary and Stage Schedule feeds to drill into events, sessions, and laps. See ID Handling.
Formula 1 API Map
The map below shows every feed in the API, grouped by task; the key marks the identifier each feed takes. Stage-scoped feeds take a single sr:stage: ID in the path (the URL shapes above), and the two profile feeds take an sr:competitor: ID.
Response Formats
Every feed supports both json and xml, selected by the format segment of the URL (for example summary.json or summary.xml). The two carry the same data; choose per your stack.
Dates and Times
Date values follow the ISO 8601 standard:
- Timestamp fields are in UTC, for example
scheduled="2025-03-16T04:00:00+00:00". These include scheduled start times and event timestamps. - Date-only fields reflect local convention and are not UTC-adjusted, for example
dateofbirth="1999-11-13".
Convert to local time in your application layer. Each circuit also carries its own timezone (for example Europe/Madrid) in the venue object.
Pagination
The Formula 1 feeds do not use pagination. Each request returns the complete result set in a single response.
Rate Limits and QPS
Access is governed by a per-key request quota and a queries-per-second (QPS) limit:
- Trial keys carry a lower QPS limit and request quota.
- Production keys allow higher limits and full live coverage. Set
access_leveltoproduction. - Exceeding the QPS limit returns
429 Too Many Requests; space out calls and retry with an increasing delay. See Response Codes for the full list of status codes.
The Formula 1 API is poll-based, so live data is retrieved by polling. Plan your polling against these limits and the per-feed Update Frequencies.
Errors
- Authentication failures return
403with an HTML body (an "Authentication Error" page), not a JSON error object, so branch on the status code rather than parsing the response.
GET https://api.sportradar.com/formula1/trial/v2/en/seasons.json
HTTP/1.1 403 Forbidden
Content-Type: text/html- Rate-limit errors return
429. - The feeds otherwise use standard HTTP methods and status codes; see Response Codes for the full list.
Versioning
The Formula 1 API is available in version v2. Include v2 in the version segment of each request. Version support and deprecation timelines follow Sportradar's Versioning Policy. Track changes to the data and documentation through the Formula 1 Change Log.
Languages
Key terms (such as stage descriptions and statuses) are translated into multiple languages, selected by the language_code path segment (for example en). Not every competition is translated for every language; see the supported languages list for the valid codes and the languages available per competition.
Additional Integration Options
- Postman: a Sportradar Formula 1 Postman workspace lets you exercise every feed without writing code.
- OpenAPI spec: the Formula 1 v2 OpenAPI spec lists every endpoint, parameter, and enum value.
- Schema download: the XML schemas (XSDs) are available for validating and generating types from
xmlresponses. - MCP Server: the Sportradar Formula 1 MCP Server bridges AI assistants directly to the feeds.
More Questions?Check the Formula 1 API FAQ or reach out to our support team at [email protected].
Updated 5 days ago
