Endpoint reference
VIN Decoder
Decode a 17-character Vehicle Identification Number into its structured attributes — year, make, model, engine, and country of assembly. Backed by NHTSA's vPIC dataset and cached locally on first decode for fast subsequent lookups.
GET
/api/v1/vin/{vin}- Required ability
vin:decode- Rate limit
- 30 requests / minute per token
Path parameters
| Name | Type | Description |
|---|---|---|
vin | string | The 17-character Vehicle Identification Number. Case-insensitive. Cannot contain the letters I, O, or Q. |
Request
curl -H "Authorization: Bearer $TRYVIN_API_KEY" \
-H "Accept: application/json" \
https://try.vin/api/v1/vin/1HGBH41JXMN109186Responses
200 OK Successful decode
{
"data": {
"vin": "1HGBH41JXMN109186",
"year": 2021,
"make": "HONDA",
"model": "Accord",
"trim": null,
"series": null,
"engine": {
"displacement_l": "2.0",
"model": null
},
"plant_country": "UNITED STATES (USA)"
}
}422 Unprocessable Invalid VIN format
{
"message": "Invalid VIN. A Vehicle Identification Number is exactly 17 characters and cannot contain the letters I, O, or Q.",
"errors": {
"vin": [
"VIN must be 17 characters and exclude the letters I, O, and Q."
]
}
}404 Not Found VIN not on file
{
"message": "VIN could not be decoded. It may be invalid or not yet on file with NHTSA."
}Response fields
| Field | Type | Description |
|---|---|---|
data.vin | string | The input VIN, normalized to uppercase. |
data.year | integer | null | Model year. |
data.make | string | null | Manufacturer name (e.g., "HONDA"). |
data.model | string | null | Model name (e.g., "Accord"). |
data.trim | string | null | Trim level when reported by NHTSA. |
data.series | string | null | Series designation when reported. |
data.engine.displacement_l | string | null | Engine displacement in liters. |
data.engine.model | string | null | Manufacturer engine model code. |
data.plant_country | string | null | Country where the vehicle was assembled. |