Scrapers.lat logo scrapers.lat
Business

NHTSA VIN Decoder & Vehicle Specs Scraper

Decode any vehicle VIN into full specifications using the official US NHTSA vPIC database. Get make, model, year, trim, body class, engine, cylinders, horsepower, fuel type and plant. Export to JSON, CSV or Excel.

69 fields per record JSON · CSV · Excel · API Pay per use
nhtsa-vin-decoder-scraper.json 200 OK
{
  "vin": "1HGCR2F3XFA027534",
  "make": "HONDA",
  "makeId": 474,
  "model": "Accord",
  "modelId": 1861,
  "modelYear": "2015",
  "trim": "LX",
  "bodyClass": "Sedan/Saloon",
  "vehicleType": "PASSENGER CAR"
}
What you get

Every run returns clean, typed records, ready for your CRM, spreadsheet or database.

  • One clean record per result, deduped and normalized
  • Stable schema in JSON, CSV or Excel, or read it via the Apify API
  • Pay per use in the cloud, nothing to install or maintain
Fields it returns
VinMakeMake IdModelModel IdModel YearTrimBody ClassVehicle TypeDoorsEngine CylindersDisplacement LDisplacement CCDisplacement CI
Sample output

A real example record, exactly the shape you receive.

VinMakeMake IdModel
1HGCR2F3XFA027534HONDA474Accord
5YJ3E1EA7KF317634TESLA441Model 3
GET /nhtsa-vin-decoder-scraper
{
  "vin": "1HGCR2F3XFA027534",
  "make": "HONDA",
  "makeId": 474,
  "model": "Accord",
  "modelId": 1861,
  "modelYear": "2015",
  "trim": "LX",
  "bodyClass": "Sedan/Saloon",
  "vehicleType": "PASSENGER CAR"
}

Frequently asked questions

What kind of VIN can I decode?

Full 17-character VINs return the most complete specifications. Partial VINs also work if you replace the unknown characters with an asterisk, for example 5UXWX7C5*BA, which is useful when you only have the standardized part of the VIN.

Does it work for older vehicles?

Yes. The vPIC database covers vehicles across many model years, and the model year is derived from the VIN itself. For partial or wildcard VINs where the year cannot be read from the VIN, you can supply a Model Year hint to improve accuracy.

Why do different vehicles return a different set of fields?

The actor only includes fields the database actually has data for on each specific vehicle. A simple sedan and a fully optioned SUV will not carry the same fields, so empty values are dropped instead of filling your output with blank columns.

Can I decode many VINs in one run?

Yes. Paste your full list of VINs, one per line, and the actor decodes each one and returns a single dataset. Use Max Items to cap how many are processed if you only need a sample.

How do I know a VIN decoded correctly?

Every record carries errorCode and errorText. A code of 0 means the VIN decoded clean. Other codes flag issues such as an incomplete VIN or characters the manufacturer did not submit, so you can filter on them.

Ready when you are.

Run the scraper live on Apify right now, or have us build one tailored to exactly what you need.