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

  1. Create a YAML file defining the WMI and its patterns
  2. Add test VINs with expected decode results
  3. Submit a PR - our CI validates the patterns
  4. 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

WMIManufacturerRegionModels
LRWTesla ShanghaiChinaModel 3, Model Y
XP7Tesla BerlinGermanyModel 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

FeatureCorgi (OSS)Cardog API
VIN DecodingBasic specsFull vehicle data
OfflineYesNo
Market ValuesNoYes
RecallsNoYes
ListingsNoYes
PriceFreeUsage-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>

Was this page helpful?