Understanding VINs

VIN structure and standards — what the 17 characters mean.

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:

RegionFormat
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

SectionPositionsMeaning
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)

First characterRegion
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:

PositionContent
4Vehicle line, platform, or model series
5Safety and restraint system type
6–7Body style and series information
8Engine type and size
9Calculated validation digit

Vehicle Identifier Section (VIS)

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

PositionContent
10Single character encoding the vehicle's model year
11Manufacturing plant identifier
12–17Production sequence number (12–14 double as manufacturer ID for small manufacturers)

Model year encoding

The 10th position encodes the model year using a repeating pattern (letters exclude I, O, Q):

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

The same codes covered 1980–2009 in the previous cycle (A–Y for 1980–2000, 1–9 for 2001–2009).

Check digit calculation

The 9th position contains a check digit that validates the VIN:

  1. Transliterate letters to numbers:

    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
  2. Apply weights per position:

    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
  3. Calculate: sum the products and divide by 11. The remainder is the check digit (X if 10).

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

Decoding VINs with the API

The v2 surface decodes a VIN to its graph identity — display names, entity refs, nano/squish grains, and links to the instrument, recalls, and listings for that vehicle:

bash
curl "https://api.cardog.app/v2/vin/1HGCM82633A123456" \
  -H "x-api-key: $CARDOG_API_KEY"

See the VIN reference for the full response shape, batch decoding, and the VIN → recalls / listings / instrument bridges.

Where to find a VIN on the 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