Introduction
+API for managing Formula 1 races, drivers, and circuits
+ +Welcome to the F1 Race API documentation!
+This documentation aims to provide all the information you need to work with our API.
+
+ Authenticating requests
+This API is not authenticated.
+ +Endpoints
+ + + +GET api/health
+ ++
+ + + + +Example request:+ + +
curl --request GET \
+ --get "http://localhost/api/health" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"const url = new URL(
+ "http://localhost/api/health"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());++Example response (200):
+
+ Show headers +
+cache-control: no-cache, private
+content-type: application/json
+access-control-allow-origin: *
+
+
+{
+ "status": "healthy",
+ "version": "unversioned",
+ "timestamp": "2025-11-03T10:55:55+00:00"
+}
+
+
+
+ Received response: ++
+
+
+ Request failed with error:+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+ Display a listing of the resource.
+ ++
+ + + + +Example request:+ + +
curl --request GET \
+ --get "http://localhost/api/drivers" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"const url = new URL(
+ "http://localhost/api/drivers"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());++Example response (200):
+
+ Show headers +
+cache-control: no-cache, private
+content-type: application/json
+access-control-allow-origin: *
+
+
+{
+ "data": [
+ {
+ "id": 1,
+ "name": "Max Verstappen",
+ "code": "VER",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 2,
+ "name": "Sergio Perez",
+ "code": "PER",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 3,
+ "name": "Lewis Hamilton",
+ "code": "HAM",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 4,
+ "name": "George Russell",
+ "code": "RUS",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 5,
+ "name": "Charles Leclerc",
+ "code": "LEC",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 6,
+ "name": "Carlos Sainz",
+ "code": "SAI",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 7,
+ "name": "Lando Norris",
+ "code": "NOR",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 8,
+ "name": "Oscar Piastri",
+ "code": "PIA",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 9,
+ "name": "Fernando Alonso",
+ "code": "ALO",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 10,
+ "name": "Lance Stroll",
+ "code": "STR",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ }
+ ],
+ "meta": {
+ "count": 10
+ }
+}
+
+
+
+ Received response: ++
+
+
+ Request failed with error:+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+ Display the specified resource.
+ ++
+ + + + +Example request:+ + +
curl --request GET \
+ --get "http://localhost/api/drivers/1" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"const url = new URL(
+ "http://localhost/api/drivers/1"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());++Example response (200):
+
+ Show headers +
+cache-control: no-cache, private
+content-type: application/json
+access-control-allow-origin: *
+
+
+{
+ "data": {
+ "id": 1,
+ "name": "Max Verstappen",
+ "code": "VER",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ }
+}
+
+
+
+ Received response: ++
+
+
+ Request failed with error:+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+ Display a listing of the resource.
+ ++
+ + + + +Example request:+ + +
curl --request GET \
+ --get "http://localhost/api/circuits" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"const url = new URL(
+ "http://localhost/api/circuits"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());++Example response (200):
+
+ Show headers +
+cache-control: no-cache, private
+content-type: application/json
+access-control-allow-origin: *
+
+
+{
+ "data": [
+ {
+ "id": 1,
+ "name": "Monaco Grand Prix",
+ "location": "Monte Carlo, Monaco",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 2,
+ "name": "British Grand Prix",
+ "location": "Silverstone, United Kingdom",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 3,
+ "name": "Italian Grand Prix",
+ "location": "Monza, Italy",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 4,
+ "name": "Belgian Grand Prix",
+ "location": "Spa-Francorchamps, Belgium",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 5,
+ "name": "Japanese Grand Prix",
+ "location": "Suzuka, Japan",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 6,
+ "name": "Singapore Grand Prix",
+ "location": "Marina Bay, Singapore",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 7,
+ "name": "Abu Dhabi Grand Prix",
+ "location": "Yas Marina, UAE",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 8,
+ "name": "Brazilian Grand Prix",
+ "location": "Interlagos, Brazil",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 9,
+ "name": "Australian Grand Prix",
+ "location": "Melbourne, Australia",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ },
+ {
+ "id": 10,
+ "name": "Spanish Grand Prix",
+ "location": "Barcelona, Spain",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ }
+ ],
+ "meta": {
+ "count": 10
+ }
+}
+
+
+
+ Received response: ++
+
+
+ Request failed with error:+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+ Display the specified resource.
+ ++
+ + + + +Example request:+ + +
curl --request GET \
+ --get "http://localhost/api/circuits/1" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"const url = new URL(
+ "http://localhost/api/circuits/1"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());++Example response (200):
+
+ Show headers +
+cache-control: no-cache, private
+content-type: application/json
+access-control-allow-origin: *
+
+
+{
+ "data": {
+ "id": 1,
+ "name": "Monaco Grand Prix",
+ "location": "Monte Carlo, Monaco",
+ "created_at": "2025-10-29T17:21:39.000000Z",
+ "updated_at": "2025-10-29T17:21:39.000000Z"
+ }
+}
+
+
+
+ Received response: ++
+
+
+ Request failed with error:+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+ Display a listing of the resource.
+ ++
+ + + + +Example request:+ + +
curl --request GET \
+ --get "http://localhost/api/races" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"const url = new URL(
+ "http://localhost/api/races"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());++Example response (200):
+
+ Show headers +
+cache-control: no-cache, private
+content-type: application/json
+access-control-allow-origin: *
+
+
+{
+ "data": [
+ {
+ "id": 1,
+ "name": "2024 Monaco Grand Prix",
+ "race_date": "2024-05-26",
+ "season": "2024",
+ "created_at": "2025-10-29T17:21:39+00:00",
+ "updated_at": "2025-10-29T17:21:39+00:00",
+ "links": {
+ "self": "http://localhost/api/races/1",
+ "circuit": "http://localhost/api/circuits/1",
+ "drivers": "http://localhost/api/drivers?race=1"
+ }
+ },
+ {
+ "id": 2,
+ "name": "2024 British Grand Prix",
+ "race_date": "2024-07-07",
+ "season": "2024",
+ "created_at": "2025-10-29T17:21:39+00:00",
+ "updated_at": "2025-10-29T17:21:39+00:00",
+ "links": {
+ "self": "http://localhost/api/races/2",
+ "circuit": "http://localhost/api/circuits/2",
+ "drivers": "http://localhost/api/drivers?race=2"
+ }
+ },
+ {
+ "id": 3,
+ "name": "2024 Italian Grand Prix",
+ "race_date": "2024-09-01",
+ "season": "2024",
+ "created_at": "2025-10-29T17:21:39+00:00",
+ "updated_at": "2025-10-29T17:21:39+00:00",
+ "links": {
+ "self": "http://localhost/api/races/3",
+ "circuit": "http://localhost/api/circuits/3",
+ "drivers": "http://localhost/api/drivers?race=3"
+ }
+ },
+ {
+ "id": 4,
+ "name": "2024 Belgian Grand Prix",
+ "race_date": "2024-07-28",
+ "season": "2024",
+ "created_at": "2025-10-29T17:21:39+00:00",
+ "updated_at": "2025-10-29T17:21:39+00:00",
+ "links": {
+ "self": "http://localhost/api/races/4",
+ "circuit": "http://localhost/api/circuits/4",
+ "drivers": "http://localhost/api/drivers?race=4"
+ }
+ },
+ {
+ "id": 5,
+ "name": "2024 Japanese Grand Prix",
+ "race_date": "2024-04-07",
+ "season": "2024",
+ "created_at": "2025-10-29T17:21:40+00:00",
+ "updated_at": "2025-10-29T17:21:40+00:00",
+ "links": {
+ "self": "http://localhost/api/races/5",
+ "circuit": "http://localhost/api/circuits/5",
+ "drivers": "http://localhost/api/drivers?race=5"
+ }
+ }
+ ],
+ "meta": {
+ "count": 5
+ }
+}
+
+
+
+ Received response: ++
+
+
+ Request failed with error:+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+ Display the specified resource.
+ ++
+ + + + +Example request:+ + +
curl --request GET \
+ --get "http://localhost/api/races/1" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"const url = new URL(
+ "http://localhost/api/races/1"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());++Example response (200):
+
+ Show headers +
+cache-control: no-cache, private
+content-type: application/json
+access-control-allow-origin: *
+
+
+{
+ "data": {
+ "id": 1,
+ "name": "2024 Monaco Grand Prix",
+ "race_date": "2024-05-26",
+ "season": "2024",
+ "created_at": "2025-10-29T17:21:39+00:00",
+ "updated_at": "2025-10-29T17:21:39+00:00",
+ "links": {
+ "self": "http://localhost/api/races/1",
+ "circuit": "http://localhost/api/circuits/1",
+ "drivers": "http://localhost/api/drivers?race=1"
+ }
+ }
+}
+
+
+
+ Received response: ++
+
+
+ Request failed with error:+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
+
+
+