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

NameTypeDescription
vinstring 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/1HGBH41JXMN109186

Responses

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

FieldTypeDescription
data.vinstringThe input VIN, normalized to uppercase.
data.yearinteger | nullModel year.
data.makestring | nullManufacturer name (e.g., "HONDA").
data.modelstring | nullModel name (e.g., "Accord").
data.trimstring | nullTrim level when reported by NHTSA.
data.seriesstring | nullSeries designation when reported.
data.engine.displacement_lstring | nullEngine displacement in liters.
data.engine.modelstring | nullManufacturer engine model code.
data.plant_countrystring | nullCountry where the vehicle was assembled.