GET /vin/{vin}
VIN Decoder API
Decode a VIN. Year, make, model, trim, and vehicle type.
Try it
{
"vin": "1HGCM82633A004352",
"valid": true,
"year": 2003,
"make": "Honda",
"model": "Accord",
"trim": "EX-V6",
"body": "coupe",
"type": "passenger car",
?deep=true
}1M requests · $20/mo. Get started
What comes back.
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.cylinders
Engine cylinders, or null
deep.fuel
Primary fuel (gasoline, diesel, electric)
deep.drive
Drive type (fwd, rwd, awd, 4wd), or null
deep.transmission
Transmission style (automatic, manual, cvt), or null
deep.plant_country
Assembly plant country, 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
1
Pass the VIN
17 characters. Spaces and case do not matter. Junk and a failed check digit answer valid false, never a 404.
2
Get the build
Year, make, model, trim, body, and vehicle type. Blank filings are null, never a guess.
3
Deep adds specifications
Engine, drivetrain, technical specifications, assembly details, and model-level recall campaigns. Paid plans.
Coverage
US-market vehicle specifications from official filings. 17-character VINs with a matching check digit.
- 1981
- model years back to
- Paid deep
- specifications and recalls
Pass a VIN. Spaces and case do not matter. Get the vehicle identity: year, make, model, trim, body, and type. The data reflects official manufacturer filings.
Paid deep adds the engine, drivetrain, technical specifications, manufacturer, assembly plant, and recall campaigns for the decoded year, make, and model. Junk and a failed check digit answer valid: false as a 200. Fields the filing leaves blank are null. Recall campaigns do not establish whether a specific VIN still needs a repair.
SPEED
How long /vin takes.
Median time to first byte over the last seven days. Warm requests, measured every 30 minutes. Live verification and other request variants can take longer.
US
52ms
EU
132ms
APAC
167ms
LatAm
150ms
ME
152ms
Make your first request.
One key works across the APIs. Copy a request in your language and get JSON back.
curl "https://api.parseapi.com/vin/1HGCM82633A004352" \
-H "X-API-Key: YOUR_API_KEY" \
-H "Parse-Version: 2.0.0"// Example response · 200{"vin": "1HGCM82633A004352", "valid": true, "year": 2003, "make": "Honda", "model": "Accord", "trim": "EX-V6", "body": "coupe", "type": "passenger car" }
API referenceSDKsKeys and authentication
Every response field
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
- What is the check digit?
- The API checks position 9 against the other 16 characters using the VIN check-digit algorithm. A failed check answers valid: false as a 200. The check catches many transcription errors, but it is not proof that a vehicle exists.
- Which VINs are supported?
- 17-character VINs with a matching check digit. Vehicle specifications come from US-market manufacturer filings for the matching VIN pattern.
- Where does the data come from?
- The manufacturer's own government filings. Year, make, model, and the rest are what the maker filed for that VIN pattern, decoded from official sources.
- Why are some fields null?
- Each specification comes from the matching manufacturer filing. A field returns null when that filing does not include it.
- What does deep add?
- Technical vehicle specifications, manufacturer and assembly details, and model-level recall campaigns. Each recall includes campaign, date, component, and summary. Included on paid plans.
- Does a recall mean this vehicle still needs a repair?
- The response lists campaigns for the year, make, and model. It does not establish that this specific VIN is affected or whether its repair was completed.
- Market value or accident history?
- This decodes vehicle specifications and lists recall campaigns. Ownership, title, and valuation require separate vehicle-history data.
17 characters. One vehicle.
Vehicle identity on every plan. Specifications and recalls on paid plans.
Start includes 1M API requests a month for $20/mo.