{ "$id": "https://www.f1db.net/schema/f1db-json-schema-v1.2.0.json", "$schema": "http://json-schema.org/draft-07/schema", "title": "F1DB", "description": "F1DB JSON Schema", "type": "object", "additionalProperties": false, "properties": { "drivers": { "type": "array", "items": { "$ref": "#/definitions/Driver" }, "description": "The drivers." }, "constructors": { "type": "array", "items": { "$ref": "#/definitions/Constructor" }, "description": "The constructors." }, "engineManufacturers": { "type": "array", "items": { "$ref": "#/definitions/EngineManufacturer" }, "description": "The engine manufacturers." }, "tyreManufacturers": { "type": "array", "items": { "$ref": "#/definitions/TyreManufacturer" }, "description": "The tyre manufacturers." }, "entrants": { "type": "array", "items": { "$ref": "#/definitions/Entrant" }, "description": "The entrants." }, "circuits": { "type": "array", "items": { "$ref": "#/definitions/Circuit" }, "description": "The circuits." }, "grandsPrix": { "type": "array", "items": { "$ref": "#/definitions/GrandPrix" }, "description": "The Grands Prix." }, "seasons": { "type": "array", "items": { "$ref": "#/definitions/Season" }, "description": "The seasons." }, "races": { "type": "array", "items": { "$ref": "#/definitions/Race" }, "description": "The races." }, "continents": { "type": "array", "items": { "$ref": "#/definitions/Continent" }, "description": "The continents." }, "countries": { "type": "array", "items": { "$ref": "#/definitions/Country" }, "description": "The countries." } }, "required": [ "drivers", "constructors", "engineManufacturers", "tyreManufacturers", "entrants", "circuits", "grandsPrix", "seasons", "races", "continents", "countries" ], "definitions": { "Driver": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "name": { "type": "string", "description": "The name." }, "firstName": { "type": "string", "description": "The first name." }, "lastName": { "type": "string", "description": "The last name." }, "fullName": { "type": "string", "description": "The full name." }, "abbreviation": { "type": "string", "minLength": 3, "maxLength": 3, "pattern": "^[A-Z']{3}$", "description": "The abbreviation." }, "permanentNumber": { "type": ["string", "null"], "minLength": 1, "maxLength": 2, "pattern": "^[0-9]{1,2}$", "description": "The permanent number." }, "gender": { "$ref": "#/definitions/Gender", "description": "The gender." }, "dateOfBirth": { "type": "string", "format": "date", "description": "The date of birth." }, "dateOfDeath": { "type": ["string", "null"], "format": "date", "description": "The date of death." }, "placeOfBirth": { "type": "string", "description": "The place of birth." }, "countryOfBirthCountryId": { "type": "string", "description": "The country of birth." }, "nationalityCountryId": { "type": "string", "description": "The nationality." }, "secondNationalityCountryId": { "type": ["string", "null"], "description": "The second nationality." }, "bestChampionshipPosition": { "type": ["integer", "null"], "minimum": 1, "description": "The best championships position at the end of the season." }, "bestStartingGridPosition": { "type": ["integer", "null"], "minimum": 1, "description": "The best starting grid position." }, "bestRaceResult": { "type": ["integer", "null"], "minimum": 1, "description": "The best race result." }, "totalChampionshipWins": { "type": "integer", "minimum": 0, "description": "The total of championship wins." }, "totalRaceEntries": { "type": "integer", "minimum": 0, "description": "The total of race entries." }, "totalRaceStarts": { "type": "integer", "minimum": 0, "description": "The total of race starts." }, "totalRaceWins": { "type": "integer", "minimum": 0, "description": "The total of race wins." }, "totalRaceLaps": { "type": "integer", "minimum": 0, "description": "The total of laps raced." }, "totalPodiums": { "type": "integer", "minimum": 0, "description": "The total of podiums." }, "totalPoints": { "type": "number", "minimum": 0, "multipleOf": 0.01, "description": "The total of points." }, "totalChampionshipPoints": { "type": "number", "minimum": 0, "multipleOf": 0.01, "description": "The total of championship points." }, "totalPolePositions": { "type": "integer", "minimum": 0, "description": "The total of pole positions." }, "totalFastestLaps": { "type": "integer", "minimum": 0, "description": "The total of fastest laps." }, "totalDriverOfTheDay": { "type": "integer", "minimum": 0, "description": "The total of driver of the day." } }, "required": [ "id", "name", "firstName", "lastName", "fullName", "abbreviation", "permanentNumber", "gender", "dateOfBirth", "dateOfDeath", "placeOfBirth", "countryOfBirthCountryId", "nationalityCountryId", "secondNationalityCountryId", "bestChampionshipPosition", "bestStartingGridPosition", "bestRaceResult", "totalChampionshipWins", "totalRaceEntries", "totalRaceStarts", "totalRaceWins", "totalRaceLaps", "totalPodiums", "totalPoints", "totalChampionshipPoints", "totalPolePositions", "totalFastestLaps", "totalDriverOfTheDay" ] }, "Constructor": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "name": { "type": "string", "description": "The name." }, "fullName": { "type": "string", "description": "The full name." }, "countryId": { "type": "string", "description": "The country." }, "previousNextConstructors": { "type": ["array", "null"], "items": { "$ref": "#/definitions/PreviousNextConstructor" }, "description": "The previous/next constructors." }, "bestChampionshipPosition": { "type": ["integer", "null"], "minimum": 1, "description": "The best championships position at the end of the season." }, "bestStartingGridPosition": { "type": ["integer", "null"], "minimum": 1, "description": "The best starting grid position." }, "bestRaceResult": { "type": ["integer", "null"], "minimum": 1, "description": "The best race result." }, "totalChampionshipWins": { "type": "integer", "minimum": 0, "description": "The total of championship wins." }, "totalRaceEntries": { "type": "integer", "minimum": 0, "description": "The total of race entries." }, "totalRaceStarts": { "type": "integer", "minimum": 0, "description": "The total of race starts." }, "totalRaceWins": { "type": "integer", "minimum": 0, "description": "The total of race wins." }, "total1And2Finishes": { "type": "integer", "minimum": 0, "description": "The total 1 and 2 finishes." }, "totalRaceLaps": { "type": "integer", "minimum": 0, "description": "The total of laps raced." }, "totalPodiums": { "type": "integer", "minimum": 0, "description": "The total of podiums." }, "totalPodiumRaces": { "type": "integer", "minimum": 0, "description": "The total podium races." }, "totalChampionshipPoints": { "type": "number", "minimum": 0, "multipleOf": 0.01, "description": "The total of championship points." }, "totalPolePositions": { "type": "integer", "minimum": 0, "description": "The total of pole positions." }, "totalFastestLaps": { "type": "integer", "minimum": 0, "description": "The total of fastest laps." } }, "required": [ "id", "name", "fullName", "countryId", "previousNextConstructors", "bestChampionshipPosition", "bestStartingGridPosition", "bestRaceResult", "totalChampionshipWins", "totalRaceEntries", "totalRaceStarts", "totalRaceWins", "total1And2Finishes", "totalRaceLaps", "totalPodiums", "totalPodiumRaces", "totalChampionshipPoints", "totalPolePositions", "totalFastestLaps" ] }, "PreviousNextConstructor": { "type": "object", "additionalProperties": false, "properties": { "constructorId": { "type": "string", "description": "The constructor." }, "yearFrom": { "type": "integer", "description": "The year from." }, "yearTo": { "type": ["integer", "null"], "description": "The year to." } }, "required": [ "constructorId", "yearFrom", "yearTo" ] }, "EngineManufacturer": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "name": { "type": "string", "description": "The name." }, "countryId": { "type": "string", "description": "The country." }, "bestChampionshipPosition": { "type": ["integer", "null"], "minimum": 1, "description": "The best championships position at the end of the season." }, "bestStartingGridPosition": { "type": ["integer", "null"], "minimum": 1, "description": "The best starting grid position." }, "bestRaceResult": { "type": ["integer", "null"], "minimum": 1, "description": "The best race result." }, "totalChampionshipWins": { "type": "integer", "minimum": 0, "description": "The total of championship wins." }, "totalRaceEntries": { "type": "integer", "minimum": 0, "description": "The total of race entries." }, "totalRaceStarts": { "type": "integer", "minimum": 0, "description": "The total of race starts." }, "totalRaceWins": { "type": "integer", "minimum": 0, "description": "The total of race wins." }, "totalRaceLaps": { "type": "integer", "minimum": 0, "description": "The total of laps raced." }, "totalPodiums": { "type": "integer", "minimum": 0, "description": "The total of podiums." }, "totalPodiumRaces": { "type": "integer", "minimum": 0, "description": "The total podium races." }, "totalChampionshipPoints": { "type": "number", "minimum": 0, "multipleOf": 0.01, "description": "The total of championship points." }, "totalPolePositions": { "type": "integer", "minimum": 0, "description": "The total of pole positions." }, "totalFastestLaps": { "type": "integer", "minimum": 0, "description": "The total of fastest laps." } }, "required": [ "id", "name", "countryId", "bestChampionshipPosition", "bestStartingGridPosition", "bestRaceResult", "totalChampionshipWins", "totalRaceEntries", "totalRaceStarts", "totalRaceWins", "totalRaceLaps", "totalPodiums", "totalPodiumRaces", "totalChampionshipPoints", "totalPolePositions", "totalFastestLaps" ] }, "TyreManufacturer": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "name": { "type": "string", "description": "The name." }, "countryId": { "type": "string", "description": "The country." }, "bestStartingGridPosition": { "type": ["integer", "null"], "minimum": 1, "description": "The best starting grid position." }, "bestRaceResult": { "type": ["integer", "null"], "minimum": 1, "description": "The best race result." }, "totalRaceEntries": { "type": "integer", "minimum": 0, "description": "The total of race entries." }, "totalRaceStarts": { "type": "integer", "minimum": 0, "description": "The total of race starts." }, "totalRaceWins": { "type": "integer", "minimum": 0, "description": "The total of race wins." }, "totalRaceLaps": { "type": "integer", "minimum": 0, "description": "The total of laps raced." }, "totalPodiums": { "type": "integer", "minimum": 0, "description": "The total of podiums." }, "totalPodiumRaces": { "type": "integer", "minimum": 0, "description": "The total podium races." }, "totalPolePositions": { "type": "integer", "minimum": 0, "description": "The total of pole positions." }, "totalFastestLaps": { "type": "integer", "minimum": 0, "description": "The total of fastest laps." } }, "required": [ "id", "name", "countryId", "bestStartingGridPosition", "bestRaceResult", "totalRaceEntries", "totalRaceStarts", "totalRaceWins", "totalRaceLaps", "totalPodiums", "totalPodiumRaces", "totalPolePositions", "totalFastestLaps" ] }, "Entrant": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "name": { "type": "string", "description": "The name." } }, "required": [ "id", "name" ] }, "Circuit": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "name": { "type": "string", "description": "The name." }, "fullName": { "type": "string", "description": "The full name." }, "previousNames": { "type": ["array", "null"], "items": { "type": "string" }, "description": "The previous names." }, "type": { "$ref": "#/definitions/CircuitType", "description": "The type." }, "placeName": { "type": "string", "description": "The place name of the location." }, "countryId": { "type": "string", "description": "The country of the location." }, "latitude": { "type": "number", "minimum": -90, "maximum": 90, "description": "The latitude of the location." }, "longitude": { "type": "number", "minimum": -180, "maximum": 180, "description": "The longitude of the location." }, "totalRacesHeld": { "type": "integer", "minimum": 0, "description": "The total of race held." } }, "required": [ "id", "name", "fullName", "previousNames", "type", "placeName", "countryId", "latitude", "longitude", "totalRacesHeld" ] }, "GrandPrix": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "name": { "type": "string", "description": "The name." }, "fullName": { "type": "string", "description": "The full name." }, "shortName": { "type": "string", "description": "The short name." }, "countryId": { "type": ["string", "null"], "description": "The country." }, "totalRacesHeld": { "type": "integer", "minimum": 0, "description": "The total of race held." } }, "required": [ "id", "name", "fullName", "shortName", "countryId", "totalRacesHeld" ] }, "Season": { "type": "object", "additionalProperties": false, "properties": { "year": { "type": "integer", "description": "The year." }, "entrants": { "type": ["array", "null"], "items": { "$ref": "#/definitions/SeasonEntrant" }, "description": "The entrants." }, "driverStandings": { "type": ["array", "null"], "items": { "$ref": "#/definitions/DriverStanding" }, "description": "The driver standings." }, "constructorStandings": { "type": ["array", "null"], "items": { "$ref": "#/definitions/ConstructorStanding" }, "description": "The constructor standings." } }, "required": [ "year", "entrants", "driverStandings", "constructorStandings" ] }, "SeasonEntrant": { "type": "object", "additionalProperties": false, "properties": { "entrantId": { "type": "string", "description": "The entrant." }, "countryId": { "type": "string", "description": "The country." }, "constructors": { "type": "array", "items": { "$ref": "#/definitions/SeasonEntrantConstructor" }, "description": "The constructors." } }, "required": [ "entrantId", "countryId", "constructors" ] }, "SeasonEntrantConstructor": { "type": "object", "additionalProperties": false, "properties": { "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "tyreManufacturers": { "type": "array", "items": { "$ref": "#/definitions/SeasonEntrantTyreManufacturer" }, "description": "The tyre manufacturers." }, "drivers": { "type": ["array", "null"], "items": { "$ref": "#/definitions/SeasonEntrantDriver" }, "description": "The drivers." } }, "required": [ "constructorId", "engineManufacturerId", "tyreManufacturers", "drivers" ] }, "SeasonEntrantTyreManufacturer": { "type": "object", "additionalProperties": false, "properties": { "tyreManufacturerId": { "type": "string", "description": "The tyre manufacturer." } }, "required": [ "tyreManufacturerId" ] }, "SeasonEntrantDriver": { "type": "object", "additionalProperties": false, "properties": { "driverId": { "type": "string", "description": "The driver." }, "rounds": { "type": ["array", "null"], "items": { "type": "integer", "minimum": 1 }, "description": "The rounds." }, "roundsText": { "type": ["string", "null"], "pattern": "^[1-9][0-9]*([-|,][1-9][0-9]*)*$", "description": "The rounds text." }, "testDriver": { "type": "boolean", "default": "false", "description": "The test driver." } }, "required": [ "driverId", "rounds", "roundsText", "testDriver" ] }, "DriverStanding": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DSQ|EX$", "description": "The position text." }, "driverId": { "type": "string", "description": "The driver." }, "points": { "type": "number", "minimum": 0, "multipleOf": 0.01, "description": "The points." } }, "required": [ "positionNumber", "positionText", "driverId", "points" ] }, "ConstructorStanding": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DSQ|EX$", "description": "The position text." }, "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "points": { "type": "number", "minimum": 0, "multipleOf": 0.01, "description": "The points." } }, "required": [ "positionNumber", "positionText", "constructorId", "engineManufacturerId", "points" ] }, "Race": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "integer", "description": "The unique identifier." }, "year": { "type": "integer", "description": "The year." }, "round": { "type": "integer", "minimum": 1, "description": "The round." }, "date": { "type": "string", "format": "date", "description": "The date." }, "grandPrixId": { "type": "string", "description": "The Grand Prix." }, "officialName": { "type": "string", "description": "The official name." }, "qualifyingFormat": { "$ref": "#/definitions/QualifyingFormat", "description": "The qualifying format." }, "circuitId": { "type": "string", "description": "The circuit." }, "circuitType": { "$ref": "#/definitions/CircuitType", "description": "The circuit type." }, "courseLength": { "type": "number", "minimum": 0, "description": "The course length." }, "laps": { "type": "integer", "minimum": 0, "description": "The number of laps." }, "distance": { "type": "number", "minimum": 0, "description": "The distance." }, "scheduledLaps": { "type": ["integer", "null"], "minimum": 0, "description": "The scheduled number of laps." }, "scheduledDistance": { "type": ["integer", "null"], "minimum": 0, "description": "The scheduled distance." }, "preQualifyingResults": { "type": ["array", "null"], "items": { "$ref": "#/definitions/QualifyingResult" }, "description": "The pre-qualifying results." }, "freePractice1Results": { "type": ["array", "null"], "items": { "$ref": "#/definitions/PracticeResult" }, "description": "The free practice 1 results." }, "freePractice2Results": { "type": ["array", "null"], "items": { "$ref": "#/definitions/PracticeResult" }, "description": "The free practice 2 results." }, "freePractice3Results": { "type": ["array", "null"], "items": { "$ref": "#/definitions/PracticeResult" }, "description": "The free practice 3 results." }, "freePractice4Results": { "type": ["array", "null"], "items": { "$ref": "#/definitions/PracticeResult" }, "description": "The free practice 4 results." }, "qualifying1Results": { "type": ["array", "null"], "items": { "$ref": "#/definitions/QualifyingResult" }, "description": "The qualifying 1 results." }, "qualifying2Results": { "type": ["array", "null"], "items": { "$ref": "#/definitions/QualifyingResult" }, "description": "The qualifying 2 results." }, "qualifyingResults": { "type": ["array", "null"], "items": { "$ref": "#/definitions/QualifyingResult" }, "description": "The qualifying results." }, "sprintQualifyingStartingGridPositions": { "type": ["array", "null"], "items": { "$ref": "#/definitions/StartingGridPosition" }, "description": "The sprint qualifying starting grid positions." }, "sprintQualifyingResults": { "type": ["array", "null"], "items": { "$ref": "#/definitions/RaceResult" }, "description": "The sprint qualifying results." }, "warmingUpResults": { "type": ["array", "null"], "items": { "$ref": "#/definitions/PracticeResult" }, "description": "The warming-up results." }, "startingGridPositions": { "type": ["array", "null"], "items": { "$ref": "#/definitions/StartingGridPosition" }, "description": "The starting grid positions." }, "raceResults": { "type": ["array", "null"], "items": { "$ref": "#/definitions/RaceResult" }, "description": "The race results." }, "fastestLaps": { "type": ["array", "null"], "items": { "$ref": "#/definitions/FastestLap" }, "description": "The fastest laps." }, "pitStops": { "type": ["array", "null"], "items": { "$ref": "#/definitions/PitStop" }, "description": "The pit stops." }, "driverOfTheDayResults": { "type": ["array", "null"], "items": { "$ref": "#/definitions/DriverOfTheDayResult" }, "description": "The driver of the day results." }, "driverStandings": { "type": ["array", "null"], "items": { "$ref": "#/definitions/DriverStanding" }, "description": "The driver standings." }, "constructorStandings": { "type": ["array", "null"], "items": { "$ref": "#/definitions/ConstructorStanding" }, "description": "The constructor standings." } }, "required": [ "id", "year", "round", "date", "grandPrixId", "officialName", "qualifyingFormat", "circuitId", "circuitType", "courseLength", "laps", "distance", "scheduledLaps", "scheduledDistance", "preQualifyingResults", "freePractice1Results", "freePractice2Results", "freePractice3Results", "freePractice4Results", "qualifying1Results", "qualifying2Results", "qualifyingResults", "warmingUpResults", "startingGridPositions", "raceResults", "fastestLaps", "pitStops", "driverOfTheDayResults", "driverStandings", "constructorStandings" ] }, "PracticeResult": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DNP|DNPQ|DNQ|DNS|DNF|NC|DSQ|EX|PL$", "description": "The position text." }, "driverNumber": { "type": "string", "pattern": "^[0-9]+$", "description": "The driver number." }, "driverId": { "type": "string", "description": "The driver." }, "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "tyreManufacturerId": { "type": "string", "description": "The tyre manufacturer." }, "time": { "type": ["string", "null"], "description": "The lap time." }, "timeMillis": { "type": ["integer", "null"], "description": "The lap time in milliseconds." }, "gap": { "type": ["string", "null"], "description": "The gap." }, "gapMillis": { "type": ["integer", "null"], "description": "The gap in milliseconds." }, "interval": { "type": ["string", "null"], "description": "The interval." }, "intervalMillis": { "type": ["integer", "null"], "description": "The interval in milliseconds." }, "laps": { "type": ["integer", "null"], "minimum": 0, "description": "The number of laps." } }, "required": [ "positionNumber", "positionText", "driverNumber", "driverId", "constructorId", "engineManufacturerId", "tyreManufacturerId", "time", "timeMillis", "gap", "gapMillis", "interval", "intervalMillis", "laps" ] }, "QualifyingResult": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DNP|DNPQ|DNQ|DNS|DNF|NC|DSQ|EX|PL$", "description": "The position text." }, "driverNumber": { "type": "string", "pattern": "^[0-9]+$", "description": "The driver number." }, "driverId": { "type": "string", "description": "The driver." }, "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "tyreManufacturerId": { "type": "string", "description": "The tyre manufacturer." }, "time": { "type": ["string", "null"], "description": "The lap time." }, "timeMillis": { "type": ["integer", "null"], "description": "The lap time in milliseconds." }, "q1": { "type": ["string", "null"], "description": "The Q1 lap time." }, "q1Millis": { "type": ["integer", "null"], "description": "The Q1 lap time in milliseconds." }, "q2": { "type": ["string", "null"], "description": "The Q2 lap time." }, "q2Millis": { "type": ["integer", "null"], "description": "The Q2 lap time in milliseconds." }, "q3": { "type": ["string", "null"], "description": "The Q3 lap time." }, "q3Millis": { "type": ["integer", "null"], "description": "The Q3 lap time in milliseconds." }, "gap": { "type": ["string", "null"], "description": "The gap." }, "gapMillis": { "type": ["integer", "null"], "description": "The gap in milliseconds." }, "interval": { "type": ["string", "null"], "description": "The interval." }, "intervalMillis": { "type": ["integer", "null"], "description": "The interval in milliseconds." }, "laps": { "type": ["integer", "null"], "minimum": 0, "description": "The number of laps." } }, "required": [ "positionNumber", "positionText", "driverNumber", "driverId", "constructorId", "engineManufacturerId", "tyreManufacturerId", "time", "timeMillis", "q1", "q1Millis", "q2", "q2Millis", "q3", "q3Millis", "gap", "gapMillis", "interval", "intervalMillis", "laps" ] }, "StartingGridPosition": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DNP|DNPQ|DNQ|DNS|DNF|NC|DSQ|EX|PL$", "description": "The position text." }, "driverNumber": { "type": "string", "pattern": "^[0-9]+$", "description": "The driver number." }, "driverId": { "type": "string", "description": "The driver." }, "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "tyreManufacturerId": { "type": "string", "description": "The tyre manufacturer." }, "gridPenalty": { "type": ["string", "null"], "pattern": "^[0-9]+|SFB$", "description": "The grid penalty." }, "gridPenaltyPositions": { "type": ["integer", "null"], "minimum": 0, "description": "The grid penalty in positions." }, "time": { "type": ["string", "null"], "description": "The lap time." }, "timeMillis": { "type": ["integer", "null"], "description": "The lap time in milliseconds." } }, "required": [ "positionNumber", "positionText", "driverNumber", "driverId", "constructorId", "engineManufacturerId", "tyreManufacturerId", "gridPenalty", "gridPenaltyPositions", "time", "timeMillis" ] }, "RaceResult": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DNP|DNPQ|DNQ|DNS|DNF|NC|DSQ|EX|PL$", "description": "The position text." }, "driverNumber": { "type": "string", "pattern": "^[0-9]+$", "description": "The driver number." }, "driverId": { "type": "string", "description": "The driver." }, "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "tyreManufacturerId": { "type": "string", "description": "The tyre manufacturer." }, "sharedCar": { "type": "boolean", "default": "false", "description": "Whether the driver shared the car with another driver." }, "laps": { "type": ["integer", "null"], "minimum": 0, "description": "The number of laps." }, "time": { "type": ["string", "null"], "description": "The race time." }, "timeMillis": { "type": ["integer", "null"], "description": "The race time in milliseconds." }, "timePenalty": { "type": ["string", "null"], "description": "The time penalty." }, "timePenaltyMillis": { "type": ["integer", "null"], "description": "The time penalty in milliseconds." }, "gap": { "type": ["string", "null"], "description": "The gap." }, "gapMillis": { "type": ["integer", "null"], "description": "The gap in milliseconds." }, "gapLaps": { "type": ["integer", "null"], "minimum": 0, "description": "The gap in numbers of laps." }, "interval": { "type": ["string", "null"], "description": "The interval." }, "intervalMillis": { "type": ["integer", "null"], "description": "The interval in milliseconds." }, "reasonRetired": { "type": ["string", "null"], "description": "The reason of retirement." }, "points": { "type": ["number", "null"], "minimum": 0, "multipleOf": 0.01, "description": "The points." }, "gridPositionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The grid position number at the start of the race." }, "gridPositionText": { "type": ["string", "null"], "pattern": "^[0-9]+|PL$", "description": "The grid position number at the start of the race." }, "positionsGained": { "type": ["integer", "null"], "description": "The positions gained during the race." }, "fastestLap": { "type": ["boolean", "null"], "default": "false", "description": "Whether the driver had the fastest lap during the race." }, "pitStops": { "type": ["integer", "null"], "minimum": 0, "description": "The number of pit stops during the race." }, "driverOfTheDay": { "type": ["boolean", "null"], "default": "false", "description": "Whether the driver was voted driver of the day." } }, "required": [ "positionNumber", "positionText", "driverNumber", "driverId", "constructorId", "engineManufacturerId", "tyreManufacturerId", "sharedCar", "laps", "time", "timeMillis", "timePenalty", "timePenaltyMillis", "gap", "gapMillis", "gapLaps", "interval", "intervalMillis", "reasonRetired", "points", "gridPositionNumber", "gridPositionText", "positionsGained", "fastestLap", "pitStops", "driverOfTheDay" ] }, "FastestLap": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DNP|DNPQ|DNQ|DNS|DNF|NC|DSQ|EX|PL$", "description": "The position text." }, "driverNumber": { "type": "string", "pattern": "^[0-9]+$", "description": "The driver number." }, "driverId": { "type": "string", "description": "The driver." }, "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "tyreManufacturerId": { "type": "string", "description": "The tyre manufacturer." }, "lap": { "type": ["integer", "null"], "minimum": 0, "description": "The lap number." }, "time": { "type": ["string", "null"], "description": "The lap time." }, "timeMillis": { "type": ["integer", "null"], "description": "The lap time in milliseconds." }, "gap": { "type": ["string", "null"], "description": "The gap." }, "gapMillis": { "type": ["integer", "null"], "description": "The gap in milliseconds." }, "interval": { "type": ["string", "null"], "description": "The interval." }, "intervalMillis": { "type": ["integer", "null"], "description": "The interval in milliseconds." } }, "required": [ "positionNumber", "positionText", "driverNumber", "driverId", "constructorId", "engineManufacturerId", "tyreManufacturerId", "lap", "time", "timeMillis", "gap", "gapMillis", "interval", "intervalMillis" ] }, "PitStop": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DNP|DNPQ|DNQ|DNS|DNF|NC|DSQ|EX|PL$", "description": "The position text." }, "driverNumber": { "type": "string", "pattern": "^[0-9]+$", "description": "The driver number." }, "driverId": { "type": "string", "description": "The driver." }, "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "tyreManufacturerId": { "type": "string", "description": "The tyre manufacturer." }, "stop": { "type": "integer", "minimum": 1, "description": "The stop number." }, "lap": { "type": "integer", "minimum": 0, "description": "The lap number." }, "time": { "type": ["string", "null"], "description": "The pit stop time." }, "timeMillis": { "type": ["integer", "null"], "description": "The pit stop time in milliseconds." } }, "required": [ "positionNumber", "positionText", "driverNumber", "driverId", "constructorId", "engineManufacturerId", "tyreManufacturerId", "stop", "lap", "time", "timeMillis" ] }, "DriverOfTheDayResult": { "type": "object", "additionalProperties": false, "properties": { "positionNumber": { "type": ["integer", "null"], "minimum": 1, "description": "The position number." }, "positionText": { "type": "string", "pattern": "^[0-9]+|DNP|DNPQ|DNQ|DNS|DNF|NC|DSQ|EX|PL$", "description": "The position text." }, "driverNumber": { "type": "string", "pattern": "^[0-9]+$", "description": "The driver number." }, "driverId": { "type": "string", "description": "The driver." }, "constructorId": { "type": "string", "description": "The constructor." }, "engineManufacturerId": { "type": "string", "description": "The engine manufacturer." }, "tyreManufacturerId": { "type": "string", "description": "The tyre manufacturer." }, "percentage": { "type": ["number", "null"], "minimum": 0, "description": "The percentage." } }, "required": [ "positionNumber", "positionText", "driverNumber", "driverId", "constructorId", "engineManufacturerId", "tyreManufacturerId", "percentage" ] }, "Continent": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "code": { "type": "string", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z]{2}$", "description": "The unique code." }, "name": { "type": "string", "description": "The name." }, "demonym": { "type": "string", "description": "The demonym." } }, "required": [ "id", "code", "name", "demonym" ] }, "Country": { "type": "object", "additionalProperties": false, "properties": { "id": { "type": "string", "description": "The unique identifier." }, "alpha2Code": { "type": "string", "minLength": 2, "maxLength": 2, "pattern": "^[A-Z]{2}$", "description": "The unique ISO 3166-1 alpha-2 code." }, "alpha3Code": { "type": "string", "minLength": 3, "maxLength": 3, "pattern": "^[A-Z]{3}$", "description": "The unique ISO 3166-1 alpha-3 code." }, "name": { "type": "string", "description": "The name." }, "demonym": { "type": ["string", "null"], "description": "The demonym." }, "continentId": { "type": "string", "description": "The continent." } }, "required": [ "id", "alpha2Code", "alpha3Code", "name", "demonym", "continentId" ] }, "CircuitType": { "type": "string", "enum": [ "RACE", "ROAD", "STREET" ], "description": "The circuit type." }, "Gender": { "type": "string", "enum": [ "MALE", "FEMALE" ], "description": "The gender." }, "QualifyingFormat": { "type": "string", "enum": [ "FOUR_LAPS", "TWO_SESSION", "ONE_SESSION", "ONE_LAP", "AGGREGATE", "KNOCKOUT", "ELIMINATION", "SPRINT_RACE" ], "description": "The qualifying format." } } }