Validates a 17-character Vehicle Identification Number (VIN) as defined by ISO 3779. Checks that the VIN contains only permitted characters (letters A–Z excluding I, O, Q, and digits 0–9) and verifies the NHTSA check digit algorithm. When valid, the response includes the parsed WMI, VDS, and VIS sections, the detected production region and country, the manufacturer name (if known), and the possible model year or years. Spaces and hyphens in the input are stripped automatically.
Production region inferred from the first one or two WMI characters. Possible values: North America, South America, Europe, Asia, Africa, Oceania
country
string | null
Country of manufacture inferred from the first two WMI characters, or null if not in the built-in directory
manufacturer
string | null
Manufacturer name if the WMI is in the built-in directory, or null for unknown WMIs
modelYear
number[] | null
Possible model years decoded from position 10. Returns an array of 1 or 2 values because the encoding repeats on a 30-year cycle (e.g. [1983, 2013]). Returns null if the character at position 10 is not a recognised model year code.
checkDigit
object
Result of the NHTSA check digit calculation. See the checkDigit object below.
The checkDigit object
Field
Type
Description
value
string
The actual character at position 9 of the VIN
calculated
string
The check digit computed by the NHTSA weighted-sum algorithm. A value of X represents 10.
valid
boolean
Whether value matches calculated
applicable
boolean
Whether the check digit standard applies to this VIN. true for North American (WMI starts with 1–5) and Chinese (WMI starts with H or L) vehicles. For other regions, position 9 is a manufacturer-specific attribute — the algorithm is always computed but the result may not match.