Corgi VIN Decoder
Corgi is Cardog's open-source VIN decoder - fast, offline, and now community-extensible.
Quick Start
npm install @cardog/corgi
import { createDecoder } from '@cardog/corgi'
const decoder = await createDecoder()
const result = await decoder.decode('1HGCM82633A123456')
console.log(result.components.vehicle)
// { make: 'Honda', model: 'Accord', year: 2003, ... }
Community Patterns
The NHTSA VPIC database covers US-market vehicles, but many international manufacturers are missing. Community patterns let anyone contribute VIN decoding rules for unsupported WMIs.
How It Works
- Create a YAML file defining the WMI and its patterns
- Add test VINs with expected decode results
- Submit a PR - our CI validates the patterns
- On release, patterns merge into the published database
Example Pattern
wmi: XP7
manufacturer: Tesla
make: Tesla
country: Germany
vehicle_type: Passenger Car
years:
from: 2022
to: null
patterns:
- pattern: "Y*****"
element: Model
value: Model Y
- pattern: "*D****"
element: Drive Type
value: All-Wheel Drive
test_vins:
- vin: XP7YGCED3PB000001
expected:
make: Tesla
model: Model Y
Current Community Patterns
| WMI | Manufacturer | Region | Models |
|---|---|---|---|
| LRW | Tesla Shanghai | China | Model 3, Model Y |
| XP7 | Tesla Berlin | Germany | Model Y |
Contributing
We'd love contributions for:
- Chinese EVs - BYD, NIO, XPeng, Li Auto
- European variants - Market-specific WMIs
- JDM vehicles - Japan-only models
See the contribution guide for full documentation.
Corgi vs Cardog API
| Feature | Corgi (OSS) | Cardog API |
|---|---|---|
| VIN Decoding | Basic specs | Full vehicle data |
| Offline | Yes | No |
| Market Values | No | Yes |
| Recalls | No | Yes |
| Listings | No | Yes |
| Price | Free | Usage-based |
Corgi is perfect for basic VIN validation and decoding. For comprehensive vehicle intelligence, use the Cardog API.
Platform Support
- Node.js - Native SQLite with better-sqlite3
- Browser - sql.js with gzipped database fetch
- Cloudflare Workers - D1 database adapter
- CLI -
npx @cardog/corgi decode <VIN>