Vehicle
VIN Lookup
GET
VIN Lookup
Decode Vehicle Identification Numbers (VINs) and query vehicle data from the NHTSA vPIC API. Supports single/batch VIN decode, WMI decode, makes & models, manufacturers, vehicle variables, and Canadian vehicle specifications.
type:
Decode a 17-digit VIN or partial VIN (use
type:
Decode up to 50 VINs at once. One per line; optional format:
type:
Decode a World Manufacturer Identifier (3 or 6 characters).
type:
Search makes, models, and vehicle types.
type:
Search manufacturers, WMIs, and parts documentation.
type:
Get the list of vehicle variables or values for a specific variable.
type:
Get Canadian Vehicle Specifications (1971+). Uses
Or with a dummy query (some clients omit empty query):
For batch,
Errors return JSON, e.g.
Headers
Your API key
Parameters
All requests require atype parameter. Other parameters depend on the operation. Use the fields below in the Try it panel; the tables describe which apply to each type.
Operation type
VIN (decode/batch), WMI code (wmi), or search term (makes, manufacturers, variables). Not used for canadian.
Model year 1981+. For type=decode only. Recommended for partial VINs.
If true, include extended NHTSA variables. For type=decode only.
Sub-operation. Required for type=makes, manufacturers, variables.
Model year. For type=makes (manufacturer, models) and type=canadian (required).
e.g. Passenger Car, Truck. For type=makes (models) and type=manufacturers (wmis).
Manufacturer type filter. For type=manufacturers, search_type=all.
Start date. Required for type=manufacturers, search_type=parts.
End date. Required for type=manufacturers, search_type=parts.
Parts doc type. For type=manufacturers, search_type=parts. Default: 565.
Page number. For type=manufacturers. Default: 1.
Make. Required for type=canadian.
Model name. For type=canadian.
Units for type=canadian. Metric or Imperial (Imperial is sent as US to the API). Default: Metric.
type: decode
Decode a 17-digit VIN or partial VIN (use * for missing characters).
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | VIN (6–17 chars) or partial VIN |
| model_year | int | No | Model year (1981+). Recommended for pre-1980. |
| extended | bool | No | true for extended NHTSA variables. Default: false. |
type: batch
Decode up to 50 VINs at once. One per line; optional format: VIN, model_year.
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | VINs, one per line. Max 50. |
type: wmi
Decode a World Manufacturer Identifier (3 or 6 characters).
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | WMI code (e.g. 1FT, JHM) |
type: makes
Search makes, models, and vehicle types.
| Parameter | Type | Required | Description |
|---|---|---|---|
| search_type | string | Yes | all, manufacturer, vehicletype, models, vehicletypes |
| query | string | No* | Manufacturer/make/vehicle type (see search_type). *Required except for all. |
| year | int | No | Model year (for manufacturer, models) |
| vehicle_type | string | No | e.g. Passenger Car, Truck (for models) |
type: manufacturers
Search manufacturers, WMIs, and parts documentation.
| Parameter | Type | Required | Description |
|---|---|---|---|
| search_type | string | Yes | all, details, wmis, parts |
| query | string | No* | Manufacturer name or ID. *Required for details, wmis. |
| mfr_type | string | No | e.g. Completed Vehicle Manufacturer (for all) |
| from_date | string | No* | YYYY-MM-DD. *Required for parts. |
| to_date | string | No* | YYYY-MM-DD. *Required for parts. |
| parts_type | string | No | 565 or 566. Default: 565. (for parts) |
| vehicle_type | string | No | (for wmis) |
| page | int | No | Page number. Default: 1. |
type: variables
Get the list of vehicle variables or values for a specific variable.
| Parameter | Type | Required | Description |
|---|---|---|---|
| search_type | string | Yes | list (all variables) or values (values for one variable) |
| query | string | No* | Variable name (e.g. Vehicle Type, Make). *Required for values. |
type: canadian
Get Canadian Vehicle Specifications (1971+). Uses year and make; query is not used.
| Parameter | Type | Required | Description |
|---|---|---|---|
| year | int | Yes | Model year (1971+) |
| make | string | Yes | Make (e.g. Honda, Toyota) |
| model | string | No | Model name |
| units | string | No | Metric or Imperial (Imperial is sent as US to the API). Default: Metric. |
Response
Returns JSON. Structure depends ontype (object for decode/wmi, array for makes/manufacturers/variables/list, etc.).
Example: Decode VIN
Example: WMI Decode
Example: Get All Makes
Example: Models by Make
Example: Variable List
Example: Variable Values
Example: Canadian Vehicle Specifications
Example: Batch Decode
query can also be sent in the request body as form data or in a POST with a JSON body if your client supports it; the backend reads query from request.args.
Error Responses
| Code | Description |
|---|---|
| 400 | Bad request: missing/invalid query (when required), invalid type or search_type, or validation error (e.g. from_date/to_date required for parts). |
| 403 | Invalid or missing X-API-KEY. |
| 429 | Rate limit exceeded. |
| 500 | vPIC or internal error. |
{"error": "query parameter is required"}.VIN Lookup
