Quick Start Guide¶
This guide will get you up and running with OpenEV Data in 5 minutes.
Option 1: Use Pre-Built Datasets¶
The fastest way to get started is to download pre-compiled datasets.
Step 1: Download¶
Go to the latest release and download your preferred format:
vehicles.json- Complete canonical datasetvehicles.db- SQLite databasevehicles.sql- PostgreSQL schema + datavehicles.csv- Flattened tabular formatvehicles.xml- XML representation
Step 2: Use the Data¶
Option 2: Use the REST API¶
Query the API directly without downloading anything.
Step 1: Make a Request¶
Step 2: Explore Endpoints¶
List all Tesla vehicles:
Search for EVs with specific range:
Get all manufacturers:
Option 3: Clone and Build Locally¶
For contributors or developers who want to work with the source data.
Step 1: Clone Repository¶
Step 2: Install Dependencies¶
Step 3: Validate Data¶
Step 4: Explore the Data¶
Browse the src/ directory to see the layered structure:
src/
tesla/
model_3/
base.json # Shared specifications
2024/
model_3.json # Base 2024 trim
model_3_long_range.json # Long Range variant
Common Use Cases¶
Compare Vehicle Specifications¶
import requests
makes = ['tesla', 'byd', 'nissan']
for make in makes:
url = f"https://api.open-ev-data.org/v1/vehicles?make={make}"
response = requests.get(url)
vehicles = response.json()['vehicles']
avg_range = sum(v['range']['rated'][0]['range_km']
for v in vehicles) / len(vehicles)
print(f"{make.title()}: {avg_range:.0f} km average range")
Find Compatible Charging Stations¶
import requests
url = "https://api.open-ev-data.org/v1/vehicles/tesla/model_3/2024"
vehicle = requests.get(url).json()
charge_ports = vehicle['charge_ports']
for port in charge_ports:
print(f"Port: {port['connector']}")
print(f"Location: {port['location']['side']} {port['location']['position']}")
print(f"Kind: {port['kind']}")
print()
Calculate Charging Time¶
import requests
url = "https://api.open-ev-data.org/v1/vehicles/byd/seal/2024"
vehicle = requests.get(url).json()
dc_charging = vehicle['charging']['dc']
print(f"Max DC Power: {dc_charging['max_power_kw']} kW")
print(f"Voltage Class: {dc_charging['architecture_voltage_class']}")
if 'charge_time' in dc_charging:
for time_spec in dc_charging['charge_time']:
print(f"{time_spec['from_soc']}% → {time_spec['to_soc']}%: "
f"{time_spec['time_minutes']} minutes")
Next Steps¶
-
Complete API reference
-
Learn about the dataset structure
-
Help improve the database
-
Complete development environment setup
Troubleshooting¶
API Returns Empty Results¶
Check if the vehicle exists:
Verify the correct slugs (lowercase, underscores):
Database File Won't Open¶
Ensure you have SQLite 3.45+ installed:
Download the file again if corrupted:
Validation Fails¶
Check Node.js version:
Reinstall dependencies:
Get Help¶
Still stuck? We're here to help: