Search by task, endpoint, field, or error.
VIN Decoder API
Decode a VIN into year, make, model, and vehicle type.
Decode a 17-character VIN. Core gives validity, year, make, model, trim, body and vehicle type. Spaces and case do not matter. Junk or a failed ISO 3779 check digit answers valid: false as a 200, never a 404. The data comes from the manufacturer's own filings with official sources. Fields the filing leaves blank are null. Foreign-market VINs decode partially.
?deep=true adds technical specifications, assembly details and deep.recalls on paid plans: open recall campaigns for the decoded year, make, and model. Each row carries the campaign number, report date, component, and the summary verbatim. [] when none are open. Decode and recalls are the whole product. Market value, ownership history, and title checks are not.
Decode
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.vin("1HGCM82633A004352");
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"vin": "1HGCM82633A004352",
"valid": true,
"year": 2003,
"make": "Honda",
"model": "Accord",
"trim": "EX-V6",
"body": "coupe",
"type": "passenger car"
}import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.vin("1hgcm826 33a-004352");
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"vin": "1HGCM82633A004352",
"valid": true,
"year": 2003,
"make": "Honda",
"model": "Accord",
"trim": "EX-V6",
"body": "coupe",
"type": "passenger car"
}import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.vin("1HGCM82613A004352");
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"vin": "1HGCM82613A004352",
"valid": false,
"year": null,
"make": null,
"model": null,
"trim": null,
"body": null,
"type": null
}Deep examples run with your own key. Check this API’s included units and pricing before running.
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.vin("1HGCM82633A004352", { deep: true });
console.log(result);Run on your server with a secret key. Calling from a browser or app?
{
"vin": "1HGCM82633A004352",
"valid": true,
"year": 2003,
"make": "Honda",
"model": "Accord",
"trim": "EX-V6",
"body": "coupe",
"type": "passenger car",
"deep": {
"recalls": [
{
"campaign": "19V499000",
"date": "2019-06-27",
"component": "AIR BAGS:FRONTAL:DRIVER SIDE:INFLATOR MODULE",
"summary": "Honda (American Honda Motor Co.) is recalling certain 2003 Acura 3.2CL, 2002-2003 3.2TL, 2003-2006 MDX, 2001-2007 Honda Accord..."
}
],
"series": null,
"doors": 2,
"cylinders": 6,
"displacement": 3,
"fuel": "gasoline",
"horsepower": 240,
"drive": null,
"transmission": "automatic",
"manufacturer": "American Honda Motor Co., Inc.",
"plant_city": "Marysville",
"plant_state": "Ohio",
"plant_country": "United States",
"gvwr": "Class 1C: 4,001 - 5,000 lb (1,814 - 2,268 kg)"
}
}Response fields
- vin
- Normalized VIN, uppercase, no spaces. Invalid input still echoes the fold
- valid
- 17 characters and the ISO 3779 check digit both pass
- year
- Model year
- make
- Make (Honda, BMW)
- model
- Model name as the manufacturer filed it
- trim
- Trim level, or null
- body
- Body style (sedan, coupe, suv, pickup)
- type
- Vehicle type (passenger car, truck, motorcycle, bus, trailer)
Deep fields
- deep.series
- Series, or null
- deep.doors
- Door count, or null
- deep.cylinders
- Engine cylinders, or null
- deep.displacement
- Engine displacement in liters, or null
- deep.fuel
- Primary fuel (gasoline, diesel, electric)
- deep.horsepower
- Engine horsepower when published, or null
- deep.drive
- Drive type (fwd, rwd, awd, 4wd), or null
- deep.transmission
- Transmission style (automatic, manual, cvt), or null
- deep.manufacturer
- Manufacturer of record
- deep.plant_city
- Assembly plant city, or null
- deep.plant_state
- Assembly plant state or region, or null
- deep.plant_country
- Assembly plant country, or null
- deep.gvwr
- Gross vehicle weight rating class as filed, or null
- deep.recalls
- Open recall campaigns for the decoded year, make, and model. campaign, date, component, summary verbatim. [] when none, null when the registry did not answer. Paid plans
Build with VIN
All tutorials →Questions? Email