VIN Decoder Online
Decode a 17-character VIN: validity, check digit, manufacturer and country (13 000 WMIs), model year, plant code, optional full NHTSA vPIC details.
Result
Press “Run” to see the result.
Send vin (or /v1/vin-decode/<VIN>). The API checks the length and alphabet (I, O and Q are never used), computes the check digit of position 9 (mandatory for North American vehicles, a warning elsewhere), splits the WMI / VDS / VIS sections, finds the manufacturer, its country and the vehicle type in the NHTSA list of World Manufacturer Identifiers (13 000 entries, incl. 6-character WMIs of small makers and Vietnamese makers such as VinFast), gives the country of origin from the ISO 3780 ranges of the first two characters, the model year from position 10 (the 30-year cycle is resolved with the position 7 rule for North American light vehicles, other candidates listed), the plant code and serial number.
online=true also asks NHTSA vPIC (public, no key) for make, model, trim, body class, engine, fuel, plant, safety equipment… – detailed mainly for vehicles sold in the USA; answers are cached 30 days. vins decodes up to 50 VINs at once (10 with online).
The offline decode does not tell the model of non-US vehicles: VDS coding is manufacturer-specific. Data: NHTSA vPIC (US government work, public domain), refreshed weekly.
Use this in your code
curl "https://apibox.io.vn/v1/vin-decode?vin=1HGCM82633A004352" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/vin-decode?vin=1HGCM82633A004352', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/vin-decode?vin=1HGCM82633A004352",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/vin-decode?vin=1HGCM82633A004352');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));API documentation → Get a free API key
FAQ
Why is the check digit only a warning for my car?
The check digit is required in North America (VINs starting with 1–5 or 7). European and Asian makers often do not use it, so a mismatch there is reported as a warning.
Why can the model year be ambiguous?
Position 10 repeats every 30 years (A = 1980, 2010, 2040). For North American cars position 7 settles it; otherwise the most recent year is chosen and all candidates are listed.
Where do the online details come from?
From NHTSA's free vPIC DecodeVinValues service. It is most complete for vehicles built for the US market.