Models
Telemetry
pyopenf1.models.telemetry.CarData
Bases: BaseModel
A single telemetry sample from the /car_data endpoint.
Each record represents a snapshot of a car's live telemetry at a specific timestamp during a session.
Attributes:
| Name | Type | Description |
|---|---|---|
brake |
int
|
Brake application percentage (0-100). |
date |
datetime
|
ISO-8601 timestamp of the telemetry sample. |
driver_number |
int
|
The unique number identifying the driver. |
drs |
int
|
DRS (Drag Reduction System) status code. |
meeting_key |
int
|
Unique key identifying the meeting (Grand Prix). |
n_gear |
int
|
Current gear number (0 = neutral). |
rpm |
int
|
Engine revolutions per minute. |
session_key |
int
|
The unique key identifying the session. |
speed |
int
|
Car speed in km/h. |
throttle |
int
|
Throttle position percentage (0-100). |
Source code in pyopenf1/models/telemetry.py
pyopenf1.models.telemetry.Location
Bases: BaseModel
A single GPS location sample from the /location endpoint.
Provides the approximate position of a car on the circuit at ~3.7 Hz.
Attributes:
| Name | Type | Description |
|---|---|---|
date |
datetime
|
ISO-8601 timestamp of the location sample. |
driver_number |
int
|
Unique driver number. |
meeting_key |
int
|
Unique meeting key. |
session_key |
int
|
Unique session key. |
x |
int
|
X coordinate on the circuit. |
y |
int
|
Y coordinate on the circuit. |
z |
int
|
Z coordinate (elevation). |
Source code in pyopenf1/models/telemetry.py
Sessions
pyopenf1.models.session.Session
Bases: BaseModel
A Formula 1 session (practice, qualifying, sprint, race, etc.).
Attributes:
| Name | Type | Description |
|---|---|---|
circuit_key |
int
|
Unique circuit identifier. |
circuit_short_name |
str
|
Short name of the circuit. |
country_code |
str
|
ISO 3-letter country code. |
country_key |
int
|
Unique country identifier. |
country_name |
str
|
Full country name. |
date_end |
datetime
|
Session end timestamp. |
date_start |
datetime
|
Session start timestamp. |
gmt_offset |
str
|
GMT offset string (e.g. "02:00:00"). |
is_cancelled |
bool
|
Whether the session was cancelled. |
location |
str
|
Circuit location name. |
meeting_key |
int
|
Unique meeting key. |
session_key |
int
|
Unique session key. |
session_name |
str
|
Human-readable session name. |
session_type |
str
|
Session type (Practice, Qualifying, Race, etc.). |
year |
int
|
Season year. |
Source code in pyopenf1/models/session.py
pyopenf1.models.session.Meeting
Bases: BaseModel
A Formula 1 meeting (Grand Prix or testing weekend).
Attributes:
| Name | Type | Description |
|---|---|---|
circuit_key |
int
|
Unique circuit identifier. |
circuit_short_name |
str
|
Short circuit name. |
country_code |
str
|
ISO 3-letter country code. |
country_key |
int
|
Unique country identifier. |
country_name |
str
|
Full country name. |
date_end |
datetime
|
Meeting end timestamp. |
date_start |
datetime
|
Meeting start timestamp. |
gmt_offset |
str
|
GMT offset string. |
is_cancelled |
bool
|
Whether the meeting was cancelled. |
location |
str
|
Circuit location name. |
meeting_key |
int
|
Unique meeting key. |
meeting_name |
str
|
Human-readable meeting name. |
meeting_official_name |
str
|
Official FIA meeting name. |
year |
int
|
Season year. |
Source code in pyopenf1/models/session.py
Drivers
pyopenf1.models.driver.Driver
Bases: BaseModel
Detailed information about a driver in a specific session.
Attributes:
| Name | Type | Description |
|---|---|---|
broadcast_name |
str
|
Broadcast-style name (e.g. "M VERSTAPPEN"). |
driver_number |
int
|
Unique driver number. |
first_name |
str
|
Driver's first name. |
full_name |
str
|
Full name (e.g. "Max VERSTAPPEN"). |
headshot_url |
str | None
|
URL to driver's headshot image. |
last_name |
str
|
Driver's last name. |
meeting_key |
int
|
Unique meeting key. |
name_acronym |
str
|
Three-letter acronym (e.g. "VER"). |
session_key |
int
|
Unique session key. |
team_colour |
str | None
|
Hex colour code of the team (without #). |
team_name |
str
|
Full team name. |
Source code in pyopenf1/models/driver.py
Timing
pyopenf1.models.timing.Lap
Bases: BaseModel
Detailed data for a single lap from the /laps endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
date_start |
datetime | None
|
Lap start timestamp. |
driver_number |
int
|
Unique driver number. |
duration_sector_1 |
float | None
|
Sector 1 duration in seconds. |
duration_sector_2 |
float | None
|
Sector 2 duration in seconds. |
duration_sector_3 |
float | None
|
Sector 3 duration in seconds. |
i1_speed |
int | None
|
Speed trap 1 in km/h. |
i2_speed |
int | None
|
Speed trap 2 in km/h. |
is_pit_out_lap |
bool
|
Whether this is a pit-out lap. |
lap_duration |
float | None
|
Total lap duration in seconds. |
lap_number |
int
|
Lap number. |
meeting_key |
int
|
Unique meeting key. |
segments_sector_1 |
list[int] | None
|
Mini-sector segment values for sector 1. |
segments_sector_2 |
list[int] | None
|
Mini-sector segment values for sector 2. |
segments_sector_3 |
list[int] | None
|
Mini-sector segment values for sector 3. |
session_key |
int
|
Unique session key. |
st_speed |
int | None
|
Speed trap speed in km/h. |
Source code in pyopenf1/models/timing.py
pyopenf1.models.timing.Interval
Bases: BaseModel
Real-time interval data from the /intervals endpoint.
Available during races only, updated approximately every 4 seconds.
Attributes:
| Name | Type | Description |
|---|---|---|
date |
datetime
|
Timestamp of the interval measurement. |
driver_number |
int
|
Unique driver number. |
gap_to_leader |
float | None
|
Gap to the race leader in seconds, or None. |
interval |
float | None
|
Interval to the car ahead in seconds, or None. |
meeting_key |
int
|
Unique meeting key. |
session_key |
int
|
Unique session key. |
Source code in pyopenf1/models/timing.py
pyopenf1.models.timing.Position
Bases: BaseModel
Driver position data from the /position endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
date |
datetime
|
Timestamp of the position update. |
driver_number |
int
|
Unique driver number. |
meeting_key |
int
|
Unique meeting key. |
position |
int
|
Current position. |
session_key |
int
|
Unique session key. |
Source code in pyopenf1/models/timing.py
Race
pyopenf1.models.race.RaceControl
Bases: BaseModel
A race control message from the /race_control endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
category |
str
|
Message category (Flag, SafetyCar, SessionStatus, etc.). |
date |
datetime
|
Timestamp of the message. |
driver_number |
int | None
|
Related driver number, if applicable. |
flag |
str | None
|
Flag type (GREEN, YELLOW, etc.), if applicable. |
lap_number |
int | None
|
Related lap number, if applicable. |
meeting_key |
int
|
Unique meeting key. |
message |
str
|
Full text of the race control message. |
qualifying_phase |
str | None
|
Qualifying phase, if applicable. |
scope |
str | None
|
Scope of the message (Track, Driver, Sector). |
sector |
int | None
|
Sector number, if applicable. |
session_key |
int
|
Unique session key. |
Source code in pyopenf1/models/race.py
pyopenf1.models.race.Pit
Bases: BaseModel
Pit stop data from the /pit endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
date |
datetime
|
Timestamp of pit entry. |
driver_number |
int
|
Unique driver number. |
lane_duration |
float | None
|
Total time in the pit lane (s). |
lap_number |
int
|
Lap number of pit entry. |
meeting_key |
int
|
Unique meeting key. |
pit_duration |
float | None
|
Total pit duration (s). |
session_key |
int
|
Unique session key. |
stop_duration |
float | None
|
Stationary stop time (s). |
Source code in pyopenf1/models/race.py
pyopenf1.models.race.Stint
Bases: BaseModel
Stint data from the /stints endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
compound |
str
|
Tyre compound (SOFT, MEDIUM, HARD, etc.). |
driver_number |
int
|
Unique driver number. |
lap_end |
int | None
|
Last lap of the stint. |
lap_start |
int
|
First lap of the stint. |
meeting_key |
int
|
Unique meeting key. |
session_key |
int
|
Unique session key. |
stint_number |
int
|
Stint number within the session. |
tyre_age_at_start |
int
|
Tyre age in laps at stint start. |
Source code in pyopenf1/models/race.py
pyopenf1.models.race.Overtake
Bases: BaseModel
Overtake data from the /overtakes endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
date |
datetime
|
Timestamp of the overtake. |
meeting_key |
int
|
Unique meeting key. |
overtaken_driver_number |
int
|
Driver who was overtaken. |
overtaking_driver_number |
int
|
Driver who overtook. |
position |
int
|
Position at which the overtake occurred. |
session_key |
int
|
Unique session key. |
Source code in pyopenf1/models/race.py
Championship
pyopenf1.models.championship.ChampionshipDriver
Bases: BaseModel
Driver championship standing from /championship_drivers.
Attributes:
| Name | Type | Description |
|---|---|---|
driver_number |
int
|
Unique driver number. |
meeting_key |
int
|
Unique meeting key. |
points_current |
float
|
Current points tally. |
points_start |
float
|
Points before this meeting. |
position_current |
int
|
Current championship position. |
position_start |
int
|
Position before this meeting. |
session_key |
int
|
Unique session key. |
Source code in pyopenf1/models/championship.py
pyopenf1.models.championship.ChampionshipTeam
Bases: BaseModel
Team championship standing from /championship_teams.
Attributes:
| Name | Type | Description |
|---|---|---|
meeting_key |
int
|
Unique meeting key. |
points_current |
float
|
Current points tally. |
points_start |
float
|
Points before this meeting. |
position_current |
int
|
Current championship position. |
position_start |
int
|
Position before this meeting. |
session_key |
int
|
Unique session key. |
team_name |
str
|
Full team name. |
Source code in pyopenf1/models/championship.py
Results
pyopenf1.models.results.SessionResult
Bases: BaseModel
Post-session result from the /session_result endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
dnf |
bool
|
Did not finish. |
dns |
bool
|
Did not start. |
dsq |
bool
|
Disqualified. |
driver_number |
int
|
Unique driver number. |
duration |
float | None
|
Fastest lap / race duration in seconds. |
gap_to_leader |
float | str | None
|
Gap to leader in seconds or laps. |
number_of_laps |
int | None
|
Number of laps completed. |
meeting_key |
int
|
Unique meeting key. |
position |
int
|
Final position. |
session_key |
int
|
Unique session key. |
Source code in pyopenf1/models/results.py
pyopenf1.models.results.StartingGrid
Bases: BaseModel
Starting grid position from the /starting_grid endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
driver_number |
int
|
Unique driver number. |
lap_duration |
float | None
|
Qualifying lap duration in seconds. |
meeting_key |
int
|
Unique meeting key. |
position |
int
|
Grid position. |
session_key |
int
|
Unique session key. |
Source code in pyopenf1/models/results.py
Weather
pyopenf1.models.weather.Weather
Bases: BaseModel
Track weather data from the /weather endpoint.
Updated approximately every minute.
Attributes:
| Name | Type | Description |
|---|---|---|
air_temperature |
float
|
Air temperature in Celsius. |
date |
datetime
|
Timestamp of the weather reading. |
humidity |
float
|
Relative humidity percentage. |
meeting_key |
int
|
Unique meeting key. |
pressure |
float
|
Atmospheric pressure in hPa. |
rainfall |
int
|
Rainfall indicator (0 = dry). |
session_key |
int
|
Unique session key. |
track_temperature |
float
|
Track surface temperature in Celsius. |
wind_direction |
int
|
Wind direction in degrees. |
wind_speed |
float
|
Wind speed in m/s. |
Source code in pyopenf1/models/weather.py
Team Radio
pyopenf1.models.team_radio.TeamRadio
Bases: BaseModel
A team radio communication from the /team_radio endpoint.
Attributes:
| Name | Type | Description |
|---|---|---|
date |
datetime
|
Timestamp of the radio message. |
driver_number |
int
|
Unique driver number. |
meeting_key |
int
|
Unique meeting key. |
recording_url |
str
|
URL to the MP3 recording. |
session_key |
int
|
Unique session key. |