← Docs

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

GET
api.parseapi.com/vin/{vin}
Year, make, model, trim, body and vehicle type
Explore
Parameters 2
vinstring · path · required

The VIN as you have it. Spaces and punctuation fold out

deepboolean · query · optional

Technical vehicle specifications, assembly details and model-level recall campaigns. Included on paid plans.

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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?

Example response
{
  "vin": "1HGCM82633A004352",
  "valid": true,
  "year": 2003,
  "make": "Honda",
  "model": "Accord",
  "trim": "EX-V6",
  "body": "coupe",
  "type": "passenger car"
}

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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?

Example response
{
  "vin": "1HGCM82633A004352",
  "valid": true,
  "year": 2003,
  "make": "Honda",
  "model": "Accord",
  "trim": "EX-V6",
  "body": "coupe",
  "type": "passenger car"
}

Run uses the free demo on API 2.0.0. Copied code uses your API key when signed in, or YOUR_API_KEY when signed out.

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?

Example response
{
  "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?

Example response
{
  "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