VIN decoder API avatar
VIN decoder API

Pricing

Pay per event

Go to Apify Store
VIN decoder API

VIN decoder API

Developed by

njoylab

njoylab

Maintained by Community

Decode and validate VINs at scale. Extract WMI/manufacturer, country/region, model year, plant, and sequence. ISO 3779 check digit with configurable policy (auto/require/ignore). Accepts an array of VINs, outputs a structured dataset with validity views.

5.0 (1)

Pricing

Pay per event

0

2

1

Last modified

6 days ago

VIN Extractor

Decode and validate Vehicle Identification Numbers (VINs) at scale. The Actor accepts an array of VINs and returns structured details such as manufacturer (WMI), model year, plant, country/region, and check‑digit status. When available, it enriches results.

Usage

Provide input in Apify Console (or via API) as JSON:

{
"vins": [
"1HGCM82633A004352",
"WBA3A5C50DF123456"
]
}

Console output example (sectioned format):

Processing 2 VIN(s)...
VIN: 1HGCM82633A004352
Valid: yes
Structure valid: yes
Identity: WMI=1HG VDS=CM8263 VIS=3A004352
Origin: USA | Manufacturer=Honda
Model: Make=Honda | Model=Accord | Year=2003 | Type=Passenger Car | Body=Sedan | Doors=4
Build: Plant=A | Sequence=004352
Check digit: expected=3 actual=3 (match; required=yes)

Check digit policy

Control how the check digit affects validity using checkDigitPolicy in INPUT:

{
"vins": ["VF1ABCD12C1234567"],
"checkDigitPolicy": "auto" // one of: auto | require | ignore
}
  • auto (default): required only for North America (1–5).
  • require: required for all VINs (invalid if mismatch).
  • ignore: never required (validity based on structure only; mismatch still shown).

Output

One dataset item per VIN with these key fields (non‑exhaustive):

  • vin: Original VIN; wmi, vds, vis.
  • valid: Overall validity per policy; invalid (inverse).
  • validStructure: Length/charset checks; validCheckDigit: Check‑digit match; checkDigitRequired (true/false).
  • checkDigit.expected, checkDigit.actual, checkDigit.match.
  • manufacturer, country, countryCode (2‑char, if resolved), region, origin (country or region).
  • year (model year), plant (11th char), sequence (last 6).
  • Enrichment (when available): make, model, vehicleType, bodyClass, doors.
  • extra: the full grouped decode (object of groups and fields).

Example dataset item

{
"vin": "5YJSA1E14HF000001",
"valid": false,
"validStructure": true,
"checkDigitRequired": true,
"wmi": "5YJ",
"vds": "SA1E14",
"vis": "HF000001",
"checkDigit": {
"expected": "8",
"actual": "4",
"match": false
},
"validCheckDigit": false,
"region": "North America",
"country": "United States",
"manufacturer": "TESLA, INC.",
"year": 2017,
"plant": "F",
"sequence": "000001",
"origin": "United States",
"countryCode": "5Y",
"make": "Tesla",
"model": "Model S",
"vehicleType": "Passenger Car",
"bodyClass": "Hatchback/Liftback/Notchback",
"doors": "5",
"extra": {
"General": {
"Make": "Tesla",
"Manufacturer Name": "TESLA, INC.",
"Model": "Model S",
"Model Year": "2017",
"Plant City": "FREMONT",
"Vehicle Type": "Passenger Car",
"Plant Country": "UNITED STATES (USA)",
"Plant State": "CALIFORNIA"
},
"Exterior / Body": {
"Body Class": "Hatchback/Liftback/Notchback",
"Doors": "5"
},
"Engine": {
"Fuel Type - Primary": "Electric",
"Electrification Level": "BEV (Battery Electric Vehicle)",
"Other Engine Info": "Single Motor - Standard"
}
}
}

Output views

  • Overview: General details and errors.
  • Validity: Focus on validStructure, validCheckDigit, checkDigitRequired.
  • Invalid VINs: Quick triage of failures and mismatches.

Notes & Limitations

  • Check digit per ISO 3779; requirement per region/policy as above.
  • Manufacturer resolution via WMI tables, broad but not exhaustive.
  • Country resolution prefers 2‑char prefix when available, then first‑char region fallback.

Categories

  • Data extraction
  • Validation
  • Automotive / VIN decoding
  • Data quality & compliance