v1 · legacyPreserved docs for the previous API generation — v1 endpoints keep working, but new work should target v2. See v2 VIN guide.

Understanding VINs

A comprehensive guide to Vehicle Identification Numbers (VINs), their structure, and decoding.

A Vehicle Identification Number (VIN) is a unique 17-character code that identifies a specific vehicle. Based on ISO standards 3779 and 3780, VINs are crucial for accurate vehicle identification and tracking.

VIN Standards

VINs follow standards established by the International Organization for Standardization (ISO):

  • ISO 3779: Defines the VIN structure
  • ISO 3780: Establishes the World Manufacturer Identifier system

Different regions have compatible but distinct implementations:

RegionStructure
North America (>2,000 vehicles/year)WMI + Vehicle attributes + Check digit + Model year + Plant code + Sequential number
North America (≤2,000 vehicles/year)WMI + 9 + Vehicle attributes + Check digit + Model year + Plant code + Manufacturer ID + Sequential number
European Union (>500 vehicles/year)WMI + Vehicle characteristics + Vehicle identification
European Union (≤500 vehicles/year)WMI + 9 + Vehicle characteristics + Manufacturer ID + Vehicle identification

VIN Structure Overview

SectionPositionsDescription
WMI1-3World Manufacturer Identifier — region and manufacturer codes
VDS4-8Vehicle Descriptor Section — vehicle attributes and platform
Check Digit9Validation digit (required in North America and China)
VIS10-17Vehicle Identifier Section — unique vehicle details
text
1HD1KB4157Y123456
│││││││││││└──────┘
│││││││││││ Serial number (12-17)
│││││││││││
││││││││││└─ Plant code (11)
│││││││││└── Model year (10)
│││││││└──── Check digit (9)
││││││└───── Engine type (8)
│││││└────── Body type (7)
││││└─────── Series (6)
│││└──────── Restraint system (5)
││└───────── Platform (4)
│└────────── Make (2-3)
└─────────── Region (1)

World Manufacturer Identifier (WMI)

The first three characters identify the manufacturer and region. For manufacturers producing fewer than 1,000 vehicles per year, the third digit is '9', with additional identification in positions 12-14.

Region Codes (First Character)

CodeRegion
A-CAfrica
J-RAsia
S-ZEurope
1-5, 7North America
6Oceania
8-9South America

Common examples:

  • 1, 4, 5, 7: United States
  • 2: Canada
  • 3A-3W: Mexico
  • J: Japan
  • K: Korea
  • L: China
  • W: Germany
  • VF-VR: France
  • SA-SM: United Kingdom

Vehicle Descriptor Section (VDS)

Characters 4-9 describe the vehicle's attributes and include a check digit. The VDS format varies by manufacturer but typically includes:

ElementPositionDescription
Platform4Vehicle line, platform, or model series
Restraint5Safety and restraint system type
Body6-7Body style and series information
Engine8Engine type and size
Check Digit9Calculated validation digit

Vehicle Identifier Section (VIS)

The final eight characters (10-17) uniquely identify the specific vehicle:

ElementPositionDescription
Model Year10Single character encoding the vehicle's model year
Plant Code11Manufacturing plant identifier
Sequential Number12-17Production sequence number, with positions 12-14 used for additional manufacturer identification in some cases

Model Year Encoding

The 10th position encodes the model year using a specific pattern:

CharactersYears
A-Y1980-2000 (excluding I, O, Q)
1-92001-2009
A-Y2010-2030 (excluding I, O, Q)
1-92031-2039
text
Code Year  Code Year  Code Year
A    2010  L    2020  Y    2030
B    2011  M    2021  1    2031
C    2012  N    2022  2    2032
D    2013  P    2023  3    2033
E    2014  R    2024  4    2034
F    2015  S    2025  5    2035
G    2016  T    2026  6    2036
H    2017  V    2027  7    2037
J    2018  W    2028  8    2038
K    2019  X    2029  9    2039

Check Digit Calculation

The 9th position contains a check digit that validates the VIN's authenticity. Here's how it's calculated:

  1. Transliterate Letters: Convert letters to numbers using this system:
text
A=1 B=2 C=3 D=4 E=5 F=6 G=7 H=8 J=1
K=2 L=3 M=4 N=5 P=7 R=9 S=2 T=3 U=4
V=5 W=6 X=7 Y=8 Z=9
  1. Apply Weights: Multiply each digit by its weight factor:
text
Position: 1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17
Weight:   8  7  6  5  4  3  2  10 0  9  8  7  6  5  4  3  2
  1. Calculate: Sum products and divide by 11. The remainder is the check digit (X if 10).

Note: The letters I, O, and Q are never used in VINs to avoid confusion with numbers.

Using VINs with the API

js
// Decode a VIN using our API
const response = await fetch(
  'https://api.cardog.app/v1/vin/corgi/1HD1KB4157Y123456',
  {
    headers: {
      'x-api-key': 'your-api-key'
    }
  }
)

const result = await response.json()
console.log('Vehicle:', result.components.vehicle)

Response:

Example

3 keys
"response": {
"vin": "1HD1KB4157Y123456",
"valid": true,
"components": {
"vehicle": {4 items},
"wmi": {4 items},
"checkDigit": {3 items}
}
}

VIN Physical Locations

VINs are typically found in several locations on a vehicle:

  • Lower corner of the windshield (driver's side)
  • Under the hood near the latch
  • Front end of the vehicle frame
  • Driver's side door pillar

The Cardog API can help identify the exact VIN locations for specific makes and models.

Next Steps