Back to Blog
Guide5 min readApril 10, 2026

Getting Started with the Hyprace F1 API on RapidAPI

Everything you need to make your first request — authentication, fetching seasons and grands prix, and where to go next.

Prerequisites

The Hyprace F1 API is distributed through the RapidAPI platform. You will need a free RapidAPI account — sign up, subscribe to the Hyprace API, and copy your key from the dashboard. All requests go through hyprace-api.p.rapidapi.com and require your RapidAPI credentials as headers.

You should be comfortable making HTTP requests from your language or tool of choice (cURL, JavaScript fetch, Python requests, or any REST client like Postman).


Your first request

The Hyprace API base URL is https://hyprace-api.p.rapidapi.com. Every request requires two headers:

  • x-rapidapi-key — your personal API key from RapidAPI
  • x-rapidapi-host — always hyprace-api.p.rapidapi.com

Let's fetch the current season to confirm everything is working:

GET/v2/seasons?isCurrent=true
hyprace-api · javascript
const response = await fetch(
"https://hyprace-api.p.rapidapi.com/v2/seasons?isCurrent=true",
{
headers: {
"x-rapidapi-key": "<your-api-key>",
"x-rapidapi-host": "hyprace-api.p.rapidapi.com",
},
}
);
const { data } = await response.json();
console.log(data);
Response
200 OK
{
"items": [
{
"id": "e7d2c760-f57b-4bfd-a93c-15b330276d14",
"year": 2026,
"status": "Active"
}
],
"currentPage": 1,
"totalPages": 1,
"pageSize": 10,
"totalCount": 1,
"itemsNumber": 1,
"hasPrevious": false,
"hasNext": false
}

A successful response returns a paginated envelope with an items array containing the current season.


Fetch current Grands Prix

Now let's pull the race calendar for the current season. Replace SEASON_ID with the id returned above (e.g. e7d2c760-f57b-4bfd-a93c-15b330276d14):

GET/v2/grands-prix?seasonId=e7d2c760-f57b-4bfd-a93c-15b330276d14&pageSize=3&pageNumber=1
hyprace-api · javascript
const response = await fetch(
"https://hyprace-api.p.rapidapi.com/v2/grands-prix?seasonId=e7d2c760-f57b-4bfd-a93c-15b330276d14&pageSize=3&pageNumber=1",
{
headers: {
"x-rapidapi-key": "<your-api-key>",
"x-rapidapi-host": "hyprace-api.p.rapidapi.com",
},
}
);
const { data } = await response.json();
console.log(data); // Array of Grand Prix objects
Response
200 OK
{
"items": [
{
"id": "c267fde7-de50-4d56-a2fc-1313439daa43",
"round": 3,
"name": "Japanese Grand Prix",
"circuitId": "c2fa59a7-c57a-4757-7c7e-08d9161fe87b",
"season": {
"id": "e7d2c760-f57b-4bfd-a93c-15b330276d14",
"year": 2026
},
"officialName": "FORMULA 1 ARAMCO JAPANESE GRAND PRIX 2026",
"status": "Finished",
"startDate": "2026-03-27T02:30:00Z",
"endDate": "2026-03-29T07:00:00Z"
}
],
"currentPage": 1,
"totalPages": 1,
"pageSize": 3,
"totalCount": 1,
"itemsNumber": 1,
"hasPrevious": false,
"hasNext": false
}

Each Grand Prix object includes the round number, circuit name, country, and scheduled date — everything you need to build a race calendar UI.


Explore drivers and standings

Once you have season and race data, you can branch out to related endpoints:

  • Drivers list: GET /v2/seasons/e7d2c760-f57b-4bfd-a93c-15b330276d14/drivers?pageSize=25 — full driver roster for the season
  • Driver standings: GET /v2/driver-standings?seasonId=e7d2c760-f57b-4bfd-a93c-15b330276d14&isLastStanding=true — latest championship standings
  • Constructor standings: GET /v2/constructor-standings?seasonId=e7d2c760-f57b-4bfd-a93c-15b330276d14&isLastStanding=true — latest team standings
  • Race results: GET /v2/grands-prix/c0c47b04-21d3-4765-c8fa-08d94ab130d2/races/3a9846a9-0d83-4087-8ba4-5fc8cd979e1f/results — full results for a specific race

List endpoints (drivers, grands prix, seasons…) support pageSize and pageNumber query parameters.


Error handling

The API uses standard HTTP status codes. Common ones to handle:

StatusMeaning
200Success
400Bad request — check your query parameters
403Forbidden — your plan does not include this endpoint
404Not found — the resource doesn't exist
429Too many requests — RapidAPI rate limit exceeded
500Internal server error
502Bad gateway — upstream issue

Error responses follow the RFC 7231 problem detail format with type, title, status, detail, instance, and traceId fields:

GET/v2/teams/d12e60bf-d848-48c0-997d-400cb510f4d5
hyprace-api · javascript
const response = await fetch(
"https://hyprace-api.p.rapidapi.com/v2/teams/d12e60bf-d848-48c0-997d-400cb510f4d5",
{
headers: {
"x-rapidapi-key": "<your-api-key>",
"x-rapidapi-host": "hyprace-api.p.rapidapi.com",
},
}
);
const data = await response.json();
console.log(data.status); // 404
Response
404 Not Found
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.4",
"title": "Not Found",
"status": 404,
"detail": "Resource 'teams' with id 'd12e60bf-d848-48c0-997d-400cb510f4d5' not found.",
"instance": "/v2/teams/d12e60bf-d848-48c0-997d-400cb510f4d5",
"traceId": "00-142d0e7da37ca3dbd864513330ac2498-57e4b216162155c9-01"
}

Next steps