Getting Started with OpenEV Data¶
Welcome! This guide will help you get started with OpenEV Data, whether you want to use the data, contribute to the project, or run the API locally.
Choose Your Path¶
Best for: Data scientists, researchers, analysts, developers
Access pre-compiled EV datasets directly from our GitHub Releases:
Download from: GitHub Releases
Available Formats:
| Format | Best For |
|---|---|
| CSV | Spreadsheets, data analysis, pandas |
| JSON | Web apps, JavaScript/TypeScript projects |
| SQLite | Local queries, mobile apps, embedded databases |
| PostgreSQL | Production databases, cloud deployments |
| XML | Enterprise integrations, legacy systems |
Simply download the format you need - no installation required!
Next Steps: Quick Start →
Best for: Projects needing custom vehicle data
Fork the repository to create and maintain your own vehicle database:
- Fork the Repository
- Go to open-ev-data-dataset
-
Click the "Fork" button
-
Clone Your Fork
-
Add Your Custom Data
- Add vehicle JSON files to
src/following the Schema Reference -
Run validation:
npm run validate -
Generate Your Dataset
- Use the ETL pipeline to generate output files
- Configure GitHub Actions for automated releases
Next Steps: Dataset Documentation →
Best for: EV enthusiasts, engineers, manufacturers
Help us maintain the most accurate EV database:
Ways to Contribute:
- Add Vehicle Data
- Submit specifications for new EVs
-
Check the Dataset Documentation
-
Correct Existing Data
- Report inaccuracies
-
Provide reliable sources
-
Improve Documentation
- Fix typos and clarify instructions
-
Add examples and tutorials
-
Develop Features
- Work on the API or ETL pipeline
- Check the API Documentation
Next Steps: Contributing Guide →
Quick Start: Using the Data¶
Download Your Preferred Format¶
- Go to GitHub Releases
- Download the latest release in your preferred format
- Start using the data immediately!
Example: Load SQLite Database¶
use rusqlite::{Connection, Result};
fn main() -> Result<()> {
let conn = Connection::open("OpenEV Data (SQLite).db")?;
let mut stmt = conn.prepare(
"SELECT make_slug, model_slug FROM vehicles WHERE make_slug = ?"
)?;
let vehicles = stmt.query_map(["tesla"], |row| {
Ok((row.get::<_, String>(0)?, row.get::<_, String>(1)?))
})?;
for vehicle in vehicles {
println!("{:?}", vehicle?);
}
Ok(())
}
Example: Load CSV Data¶
Example: Load JSON Data¶
Running the API Locally¶
[!NOTE] There is no public API hosted online. To use the API, you need to run it locally using Docker or build it from source.
Quick Start with Docker¶
The fastest way to run the API locally:
git clone https://github.com/open-ev-data/open-ev-data-dataset.git
cd open-ev-data-dataset
docker-compose up -d
This will:
- Download the latest dataset SQLite database
- Start the API server on http://localhost:8080
Access the API:
Stop the stack:
Build from Source¶
For API development:
git clone https://github.com/open-ev-data/open-ev-data-api.git
cd open-ev-data-api
cargo build
cargo run
See the API Documentation for more details.
Prerequisites¶
Choose based on your path:
No prerequisites! Just download the files from GitHub Releases.
Optional:
- SQLite viewer for
.dbfiles (e.g., DB Browser for SQLite) - JSON viewer/editor
- Spreadsheet software for CSV (Excel, LibreOffice Calc, Google Sheets)
- PostgreSQL client for
.sqlfiles
Development Installation¶
Multi-Repository Workspace¶
For contributors working across multiple repositories, we provide a pre-configured workspace:
mkdir open-ev-data
cd open-ev-data
git clone https://github.com/open-ev-data/open-ev-data-dataset.git
git clone https://github.com/open-ev-data/open-ev-data-api.git
git clone https://github.com/open-ev-data/open-ev-data.github.io.git
git clone https://github.com/open-ev-data/.github.git
Then open the workspace file:
Benefits:
- Unified search across all repositories
- Cross-repository navigation
- Consistent settings
- Organized sidebar
See the Project Setup Guide for detailed development setup.
Next Steps¶
Ready to dive deeper? Here are some recommended paths:
-
Step-by-step tutorial
-
Understand the data structure
-
Start contributing
-
Learn about the dataset
Get Help¶
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: You're reading it!
Community¶
Join our community:
- Follow development on GitHub
- Read our Code of Conduct
- Check project updates in the Changelogs