About this endpoint
What it does
Decodes a VIN and returns a JSON object with the decoded vehicle details, validation flags, and metadata about the lookup result. The request accepts the VIN as a query parameter and can optionally include a model year to refine decoding.
Query Parameter(s)
| Attribute | Type | Mandatory | Description |
|---|---|---|---|
| vin | String | Yes | The 17-character VIN to decode. |
| modelYear | Integer | No | Optional model year hint for decoding. Minimum: 1981. |
Response
Returns a JSON object with required top-level fields vin (string), valid (boolean), vehicle (object), validation (object), source (string), and cached (boolean). The source field is fixed to nhtsa-vpic.
| Parameter | Type | Mandatory | Description |
|---|---|---|---|
| vin | String | Yes | The VIN that was decoded. |
| valid | Boolean | Yes | Indicates whether the VIN is valid. |
| cached | Boolean | Yes | Indicates whether the response was served from cache. |
| source | String | Yes | Fixed value: nhtsa-vpic. |
| vehicle | Object | Yes | Decoded vehicle details. Includes make, model, modelYear, series, trim, bodyClass, vehicleType, doors, driveType, fuelType, engine, transmission, and plant. |
| vehicle.make | String | Yes | Vehicle make. May be null. |
| vehicle.model | String | Yes | Vehicle model. May be null. |
| vehicle.modelYear | Integer | Yes | Vehicle model year. May be null. |
| vehicle.series | String | Yes | Vehicle series. May be null. |
| vehicle.trim | String | Yes | Vehicle trim. May be null. |
| vehicle.bodyClass | String | Yes | Vehicle body class. May be null. |
| vehicle.vehicleType | String | Yes | Vehicle type. May be null. |
| vehicle.doors | Integer | Yes | Number of doors. May be null. |
| vehicle.driveType | String | Yes | Drive type. May be null. |
| vehicle.fuelType | String | Yes | Fuel type. May be null. |
| vehicle.transmission | String | Yes | Transmission description. May be null. |
| vehicle.engine | Object | Yes | Engine details, or null. Includes cylinders, displacementL, and horsepower. |
| vehicle.engine.cylinders | Integer | Yes | Engine cylinders. May be null. |
| vehicle.engine.displacementL | Number | Yes | Engine displacement in liters. May be null. |
| vehicle.engine.horsepower | Integer | Yes | Engine horsepower. May be null. |
| vehicle.plant | Object | Yes | Plant details, or null. Includes city, country, and company. |
| vehicle.plant.city | String | Yes | Plant city. May be null. |
| vehicle.plant.country | String | Yes | Plant country. May be null. |
| vehicle.plant.company | String | Yes | Plant company. May be null. |
| validation | Object | Yes | Validation details. Includes checkDigitValid and warnings. |
| validation.checkDigitValid | Boolean | Yes | Indicates whether the VIN check digit is valid. May be null. |
| validation.warnings | String Array | Yes | Validation warnings returned by the decoder. |



