Python SDK for endurance racing data — WEC, ELMS, ALMS, Le Mans Cup, IMSA
Project description
openwec
Python SDK for endurance racing data — WEC, ELMS, ALMS, Le Mans Cup, IMSA.
Inspired by FastF1, OpenWEC gives you lap-by-lap timing data, stint analytics, and race results from endurance racing as pandas DataFrames — in one line.
→ openwec.com — Live dashboard
→ api.openwec.com/docs — API reference
→ github.com/palomacdev/openwec — Source
Installation
pip install openwec
# With plotting support
pip install openwec[plotting]
Quick start
import openwec
# Configure — public endpoints work without a key
# Request a free key at https://openwec.com/api-keys
openwec.configure(
api_key="your-key-here" # required for laps and analytics
)
# Load any session
session = openwec.Session("WEC", 2026, "Le Mans", "Race")
print(session)
# Session(WEC 2026 LE MANS — Race, id=6556)
# Results as a DataFrame (no key needed)
results = session.results()
print(results[["position", "car_number", "car_class", "team", "drivers"]].head(10))
# Lap-by-lap data (key required)
laps = session.laps(car="7")
print(laps[["lap_number", "lap_time_s", "s1_s", "s2_s", "s3_s"]].head())
# Stints and pace (key required)
stints = session.stints(car_class="HYPERCAR")
pace = session.pace(car_class="HYPERCAR")
# Pit window estimate
pit_window = session.pit_window(car="7")
# Plots (requires matplotlib)
session.plot_lap_evolution(car="7")
session.plot_stint_chart(car_class="HYPERCAR")
session.plot_gap_to_leader(car_class="HYPERCAR")
Coverage
| Series | Seasons |
|---|---|
| FIA WEC | 2012–2026 |
| ELMS | 2012–2026 |
| ALMS (Asian) | 2022–2026 |
| Le Mans Cup | 2017–2026 |
| IMSA | 2014–2026 |
1.77M+ laps across all series.
API key
Public endpoints (results, driver profiles, team profiles) require no key.
Lap-by-lap data and analytics endpoints require a free API key.
→ Request a key at openwec.com/api-keys
Session methods
| Method | Returns | Key required |
|---|---|---|
.results() |
DataFrame | No |
.laps(car=None) |
DataFrame | Yes |
.stints(car_class=None) |
DataFrame | Yes |
.pace(car_class=None) |
DataFrame | Yes |
.gaps(car_class=None) |
DataFrame | Yes |
.pit_window(car=None) |
DataFrame | Yes |
.plot_lap_evolution(car) |
Figure | Yes |
.plot_stint_chart() |
Figure | Yes |
.plot_gap_to_leader() |
Figure | Yes |
License
MIT — data sourced from Al Kamel Systems public timing exports.
Not affiliated with ACO, FIA, or any racing organization.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openwec-0.1.1.tar.gz.
File metadata
- Download URL: openwec-0.1.1.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f935b696d940625cbd98b0c98322358979bc8ea36bf35348d8c51c0944f5af5
|
|
| MD5 |
5d535066f1ccac79d43e7d19f0c6f8d6
|
|
| BLAKE2b-256 |
bacdeedc96cca35cacf3da62c9e77696fdb79caf6613955b91ec5d49c41648c5
|
File details
Details for the file openwec-0.1.1-py3-none-any.whl.
File metadata
- Download URL: openwec-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da381e3a100857b83dceff3b11dca619718cccd7ec8c0feadc95e04ae52b822b
|
|
| MD5 |
45c4c5d42c36b21174117155912ac7d4
|
|
| BLAKE2b-256 |
ddb15f07d56007f84ec7dfa9a734d755daa7cfa0600dc0370edd5d983645c55c
|