VIN decoder API: decode any VIN into clean JSON.
A simple VIN lookup API over HTTPS. Send a 17 character VIN number and get the vehicle as it was built: year, make, model, trim, engine, transmission, drivetrain, body style, plant and safety equipment. One request, one key, structured fields you can store and search.
Free on a new account: 5 × VIN Decode, 1 × Vehicle History and 1 × Window Sticker. No card required.
import os, requests
res = requests.get(
"https://api.autoparse.io/v1/vin/decode/2G1FK1EJ6A9133857",
headers={"x-api-key": os.environ["AUTOPARSE_API_KEY"]},
timeout=30,
)
res.raise_for_status()
print(res.json())What is the VIN Decoder API?
The Autoparse VIN Decoder API is a REST endpoint that turns a 17 character Vehicle Identification Number into structured vehicle data. You send one GET request to /v1/vin/decode/{vin} with your API key in the x-api-key header, and the response is JSON containing the year, make, model and trim, plus engine, transmission, drivetrain, body style, assembly plant and safety equipment. Field names and types are consistent across vehicles, so there is no free text to parse before you store or search the data. A successful decode costs 1 credit, and a VIN with no record, a provider error or a timeout is never billed. You can start without a card, then move to a monthly subscription or pay-as-you-go credits that never expire. The API reference lists every parameter, response field and error code.
Structured data, not documents.
Core identification
Year, make, model and trim, plus manufacturer and vehicle type.
Powertrain
Engine model, fuel type, cylinders, displacement, transmission style and driven wheels.
Body and exterior
Body style, door count and gross vehicle weight rating.
Assembly plant
The factory city, region and country where the vehicle was built.
Safety equipment
Seat belts, tire pressure monitoring and airbag coverage by row.
Normalized output
Consistent field names and types, so there is no free text to parse.
What comes back.
A shortened real response for one VIN. Arrays and nested objects are trimmed here; the API reference shows every field.
{
"vin": "2G1FK1EJ6A9133857",
"body": "Coupe",
"make": "Chevrolet",
"trim": "2SS",
"year": 2010,
"model": "Camaro",
"plant": "Oshawa, Ontario, Canada",
"engine": {
"fuel": "Gasoline",
"model": "L99",
"cylinders": 8,
"injection": "Sequential Fuel Injection (SFI)",
"other_info": "Alum",
"manufacturer": "GM"
}
}Built for the real workflow.
Listing forms
Prefill year, make, model and trim as soon as a seller types a VIN, and cut manual entry errors.
Inventory and search
Normalize every vehicle on the way in, then filter by body style, drivetrain or fuel type.
Insurance and lending
Confirm the vehicle on an application matches the VIN before quoting or approving.
Fleet and service tools
Look up the exact engine and equipment for parts matching and maintenance schedules.
Three steps to your first call.
- Create an account and generate an API key.
- Call GET /v1/vin/decode/{vin} with your key in the x-api-key header.
- Read the JSON response. A VIN with no record, a provider error or a timeout is never billed.
Before you ship, read how to authenticate, how credits are charged, the rate limits and the error codes.
From about $0.053 per request on the largest volumes. Subscribe for a monthly allowance or buy credit packs that never expire. Not found, upstream errors and timeouts are never billed.
VIN Decoder API, answered.
What does a VIN decoder API return?
It returns the specifications encoded in a 17 character VIN: model year, make, model, trim, engine, transmission, drivetrain, body style, assembly plant and safety equipment, as structured JSON.
How do I decode a VIN with the API?
Send a GET request to the decode endpoint with the VIN in the path and your API key in the x-api-key header. The documentation has ready to run samples in curl, Node.js, Python and C#.
Am I charged if a VIN cannot be decoded?
No. If the VIN has no record, the data provider fails or the request times out, you are not charged. Credits are only spent when you receive data.
How do I check a VIN with an API?
Call the VIN check endpoint, GET /v1/vin/decode/{vin}, with your API key. The web service validates the VIN number format, looks up the vehicle and returns the decoded specification as JSON, so one request both checks and decodes the VIN.
Is this a VIN lookup API I can call from any language?
Yes. It is a plain REST web service over HTTPS, so any language that can send a GET request can use it. There is no SDK to install and no OAuth flow, only an API key in the x-api-key header.
What format does a valid VIN have?
A VIN is exactly 17 characters of digits and capital letters, and never uses the letters I, O or Q. The API validates the format before it does any lookup.
Vehicle History API
Pull a vehicle history report by VIN: owners, title brands, accidents, odometer readings, recalls and service events as structured JSON.
Window Sticker API
Retrieve the original Monroney window sticker for any VIN: base MSRP, destination charge, factory options, packages and EPA fuel economy as JSON.
Documentation
Quickstart, authentication, credits, rate limits and errors.