A comprehensive, open-source database of electric vehicles with detailed specifications, built with YAML + JSON Schema + Datasette + Streamlit.
YAML Source Files β JSON Schema Validation β SQLite Database β Datasette API + Streamlit Dashboards
- YAML: Human-readable, git-friendly source format with comments
- JSON Schema: Industry-standard validation ensures data quality
- SQLite: Single-file database, portable, fast, perfect for datasets
- Datasette: Instant API and web UI for SQLite databases
- Streamlit: Python-native dashboards for data visualization
manufacturers/
ββ tesla.yaml
ββ volkswagen.yaml
vehicle-models/
ββ tesla-model-3.yaml (base info)
ββ volkswagen-id4.yaml
vehicle-variants/
ββ tesla-model-3-rwd-2024.yaml (detailed specs)
ββ tesla-model-3-long-range-awd-2024.yaml
ββ volkswagen-id4-pure-2024.yaml
market-availability/
ββ tesla-model-3-rwd-2024-germany.yaml (pricing)
ββ tesla-model-3-rwd-2024-usa.yaml
ββ volkswagen-id4-pure-2024-poland.yaml
- Manufacturer - Company info (name, country, website)
- Vehicle Model - Base model (dimensions, seating, body style)
- Vehicle Variant - Specific trim with full specs (battery, range, charging, performance)
- Market Availability - Region-specific pricing and options
This structure handles:
- β Multiple trims/versions per model
- β Market-specific variants
- β Changes over time (model years)
- β Missing/incomplete data gracefully
- Comprehensive Specs: Battery, range, charging, performance, dimensions
- Real-World Data: Actual consumption, charging curves, not just claimed specs
- Market Specifics: Pricing, incentives, availability by country
- Data Quality Tracking: Every field marked with source and confidence level
- Version History: Track changes across model years
- SQL Queryable: Complex queries via Datasette
- Visual Dashboards: Interactive comparisons via Streamlit
- API Access: JSON API for developers
- Open License: CC BY-SA 4.0 - free to use, share, and build upon
Vehicles: 530+ variants across 180 models from 45 manufacturers Markets: Germany, Spain, Poland, France, Netherlands, Italy (plus initial US/UK data)
Live counts: /v1/stats.json
or the notes of the latest release.
- β Full validation pipeline - All YAML files validated with JSON Schema in CI
- β SQLite database - Automated builds via GitHub Actions
- β GitHub Releases - Pre-built database downloadable from every push
- β Static JSON API - Generated per push, served via GitHub Pages
- β Datasette support - Full SQL access with canned queries
- β Streamlit dashboard - 6 pages (Home, Browse, Compare, Analytics, Data Explorer, Documentation)
- β Docs - API docs, contributing guide, FAQ
The latest pre-built SQLite database is available from GitHub Releases:
# Download latest database
wget https://github.com/gaia-charge/evdb/releases/latest/download/evdb.db
# Or with curl
curl -L -o evdb.db https://github.com/gaia-charge/evdb/releases/latest/download/evdb.db- Python 3.10+
- pip
# Clone repository
git clone https://github.com/gaia-charge/evdb.git
cd evdb
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install pre-commit hooks (optional)
pre-commit installpython scripts/validate.py --directory data/python scripts/build-sqlite.py --input-dir data/ --output evdb.dbdatasette evdb.db --metadata metadata.json
# Open http://localhost:8001streamlit run streamlit_app.py
# Open http://localhost:8501Features:
- π Home - Database statistics and quick search
- π Browse Vehicles - Advanced filtering with 7 filters and 8 sort modes
- βοΈ Compare - Side-by-side comparison of 2-4 vehicles with visualizations
- π Analytics - Interactive charts for range, charging, price, and market analysis
- πΎ Data Explorer - SQL query interface with 8 example queries
- π Documentation - Embedded API docs, contributing guide, and FAQ
- CONTRIBUTING.md - Complete guide to adding vehicles and data
- API_DOCS.md - Comprehensive API documentation with examples
- FAQ.md - Frequently asked questions
We need your help! Contributions welcome:
- π Vehicle specifications - Battery, range, charging, performance
- π Real-world data - Actual consumption and range tests
- π° Market pricing - Regional pricing and options
- π New markets - UK, Norway, China, Japan, Australia
- π§ Code improvements - Scripts, validation, features
- π Translations - Help internationalize the database
See CONTRIBUTING.md for the complete guide including:
- π How to add a vehicle (step-by-step)
- β Validation and testing workflow
- π Data quality standards
- π Pull request process
- π― Priority vehicles we need
TL;DR:
- Fork β Clone β Create branch
- Copy template from
templates/ - Fill in specs (see CONTRIBUTING.md)
- Validate:
python scripts/validate.py --file your-file.yaml - Submit pull request
All contributions must include source attribution. Data is licensed under CC BY-SA 4.0.
evdb/
βββ data/ # YAML source files
β βββ manufacturers/
β βββ vehicle-models/
β βββ vehicle-variants/
β βββ market-availability/
β βββ reference/
β βββ connectors.yaml
β βββ platforms.yaml
βββ schemas/ # JSON Schema validation
β βββ manufacturer.schema.json
β βββ vehicle-model.schema.json
β βββ vehicle-variant.schema.json
β βββ market-availability.schema.json
βββ scripts/ # Build and validation tools
β βββ validate.py # JSON Schema validation
β βββ build-sqlite.py # YAML -> SQLite build
β βββ generate-api.py # SQLite -> static JSON API
β βββ analyze_missing_data.py # Data completeness report
βββ templates/ # YAML templates for contributors
βββ streamlit_app.py # Streamlit dashboard (6 pages)
βββ .github/workflows/ # CI/CD pipelines
βββ metadata.json # Datasette configuration
βββ requirements.txt # Python dependencies
Static JSON API served from GitHub Pages β see API_DOCS.md for all endpoints.
# All manufacturers
curl https://gaia-charge.github.io/evdb/v1/manufacturers.json
# All vehicles (summary)
curl https://gaia-charge.github.io/evdb/v1/vehicles.json
# One vehicle, full specs + market pricing
curl https://gaia-charge.github.io/evdb/v1/vehicles/tesla-model-3-long-range-awd-2024.json
# Pre-built queries
curl https://gaia-charge.github.io/evdb/v1/queries/long-range.json
# Database statistics
curl https://gaia-charge.github.io/evdb/v1/stats.jsonSELECT
m.name as manufacturer,
vm.name as model,
vv.variant_name,
vv.dc_charge_power_kw as max_dc,
vv.dc_charge_time_10_80_min as charge_time_min
FROM vehicle_variants vv
JOIN vehicle_models vm ON vv.model_id = vm.id
JOIN manufacturers m ON vm.manufacturer_id = m.id
WHERE vv.dc_charge_power_kw >= 150
ORDER BY vv.dc_charge_time_10_80_min ASC
LIMIT 20;SELECT
m.name, vm.name, vv.variant_name,
ma.price_base, ma.currency,
vv.range_wltp_km
FROM vehicle_variants vv
JOIN vehicle_models vm ON vv.model_id = vm.id
JOIN manufacturers m ON vm.manufacturer_id = m.id
JOIN market_availability ma ON vv.id = ma.variant_id
WHERE ma.market_code = 'DE'
AND ma.price_base < 40000
AND vv.range_wltp_km > 400
ORDER BY vv.range_wltp_km DESC;- Data: CC BY-SA 4.0
- Code: MIT License
- API: https://gaia-charge.github.io/evdb/v1/index.json
- Database download: https://github.com/gaia-charge/evdb/releases/latest
- GitHub: https://github.com/gaia-charge/evdb
Inspired by comprehensive EV databases like ev-database.org, but with a focus on:
- Open data (not proprietary)
- Git-based workflow (trackable changes)
- API-first design (easy integration)
- Community contributions (crowdsourced accuracy)
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: evdb@gaiacharge.com (coming soon)
Built with β€οΈ for the EV community
Data is power. Open data is power for everyone.