What the NHTSA VIN Decoder API does
The NHTSA VIN Decoder API is a free tool run by the National Highway Traffic Safety Administration that lets you pull detailed vehicle information from a 17-character VIN (Vehicle Identification Number). You send the API a VIN, and it returns data about the vehicle's make, model, year, engine type, transmission, safety features, and known recalls or complaints.
The API is designed for developers and researchers who want to build VIN lookup into their own websites or applications. If you just need to look up one vehicle, the NHTSA also runs a simpler web-based VIN decoder at safercar.gov that doesn't require coding knowledge. The API is the backbone that powers that tool and many others.
The data comes from NHTSA's own records, which manufacturers are required to submit. This means the information is official and current, but it only includes what the manufacturer reported at the time of production — it won't tell you about aftermarket modifications, accident history, or service records.
Key Takeaways
- The NHTSA VIN Decoder API is free and returns vehicle specifications, safety features, and known recalls tied to that VIN.
- You need basic coding knowledge to use the API directly, or you can use the free web tool at safercar.gov if you just want to look up one vehicle.
- The API returns only what the manufacturer reported at production — not accident history, title status, or service records.
- Developers can build the API into their own tools without paying fees, but NHTSA asks that you follow their terms of service and not overload their servers.
How to access the NHTSA VIN Decoder API
The API endpoint is public and requires no authentication key. You make a request to NHTSA's server with a VIN, and the server sends back data in JSON format (a standard format for web data). The base URL is https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVin/ followed by the VIN you want to look up.
A basic request looks like this: you append the VIN to the URL, optionally add a model year for more precise results, and specify that you want JSON back. For example, a request for a 2015 Honda Civic might be https://vpic.nhtsa.dot.gov/api/vehicles/DecodeVin/2HGCV52387H515425?format=json. The server responds with a JSON object containing all the decoded information.
NHTSA's official documentation is at vpic.nhtsa.dot.gov/api/, where you'll find the full specification, example requests, and response formats. The documentation also lists rate limits (how many requests you can make per second) and best practices for using the service responsibly.
What information the API returns
The decoded data includes the vehicle's make, model, model year, body type, engine displacement, fuel type, transmission type, number of doors, gross vehicle weight rating, and whether it has features like all-wheel drive or a hybrid system. It also returns the plant where the vehicle was manufactured and the sequential number assigned during production.
The API does not return accident history, title status, ownership records, service history, mileage, or whether the vehicle has been in a flood or fire. Those records come from different sources — title history from state DMVs, accident history from insurance claims databases, and service records from dealerships or repair shops. If you need that information, you'll have to look elsewhere.
The API also does not return recall information directly in the main decode response. However, NHTSA runs a separate recalls API that you can query with the same VIN to pull a list of all open recalls, safety bulletins, and complaints filed against that vehicle. Many developers use both APIs together to give users a complete picture.
Using the API in your own process
If you're building a website or app that needs VIN lookup, you can call the NHTSA API from your backend code. Most programming languages have libraries that make HTTP requests straightforward — Python has the requests library, JavaScript has fetch, and so on. You send the request, parse the JSON response, and display the results to your user.
NHTSA asks that you follow a few rules: don't make more than 10 requests per second from a single IP address, cache results when possible to avoid repeated queries for the same VIN, and include a user agent header that identifies your process. If you're building something that will make thousands of requests, contact NHTSA first to discuss your use case.
You don't need permission or a license to use the API, and there are no fees. NHTSA publishes the API as a public service. However, you should read their terms of service to understand what you can and cannot do with the data — for example, you generally cannot resell the raw data or claim it as your own.
When to use the API versus the web tool
Use the web tool at safercar.gov if you're looking up a single vehicle for personal reasons — buying a used car, checking recalls on your own vehicle, or researching a specific model. It's faster than learning to code and requires no technical setup.
Use the API if you're a developer building a tool that needs to decode many VINs, integrate VIN lookup into a larger process, or offer VIN lookup as a feature to your users. The API is also better if you need to automate the process or combine VIN data with other information sources.
Some third-party services (like Carfax, AutoCheck, or dealer management systems) have built their own VIN lookup tools on top of the NHTSA API. If you're using one of those services, you're already benefiting from this data without seeing the API itself.
Common issues and limitations
The most common problem is a VIN that doesn't decode. This usually means the VIN is invalid (wrong format or contains a typo), or it's for a vehicle older than NHTSA's database covers. NHTSA's records go back to 1981 for most vehicles, but some older or imported vehicles may not be in the system.
Another issue is incomplete data. Some vehicles, especially older ones or those from smaller manufacturers, may have sparse information in the database. The API will return what it has, but some fields may be blank or marked as "Not Applicable."
If you're building an process, remember that the API can be slow during peak traffic times, and NHTSA occasionally performs maintenance. You should build error handling into your code so that if the API is unavailable, your process doesn't crash. Also, the data reflects what the manufacturer reported — if there was an error in that original report, the API will return the error too.
Other NHTSA tools for vehicle research
NHTSA runs several related tools beyond the VIN decoder. The Complaints and Defects database lets you search for safety complaints filed by owners about specific vehicles. The Recalls database shows all active recalls and safety bulletins. The Crash Test Results database shows how vehicles performed in NHTSA's New Car Assessment Program (NCAP) crash tests.
These tools are all free and accessible through safercar.gov. Some also have APIs available for developers. If you're researching a vehicle, it's worth checking all of them — the VIN decoder tells you what the vehicle is, but the complaints and recalls databases tell you what problems owners and regulators have found with it.
Frequently Asked Questions
Can I use the NHTSA VIN Decoder API commercially?
Yes, you can build it into a commercial process or service. NHTSA does not charge fees or require a license. However, you cannot resell the raw data as your own product, and you must follow NHTSA's terms of service. Read the full terms at vpic.nhtsa.dot.gov before launching a commercial tool.
What's the difference between the VIN decoder and the recalls API?
The VIN decoder returns the vehicle's specifications — make, model, engine type, and so on. The recalls API returns safety issues and recalls tied to that vehicle. Many developers use both together so users see both what the vehicle is and what problems have been reported.
Will the VIN decoder tell me if a car has been in an accident?
No. The NHTSA VIN decoder only returns manufacturer data from production. Accident history comes from insurance claims databases (Carfax, AutoCheck) or state records. You'll need a separate tool to check that information.
What do I do if the VIN doesn't decode?
First, check that the VIN is correct — it should be 17 characters with no spaces. If it's correct and still doesn't decode, the vehicle may be too old for NHTSA's database (pre-1981), imported without full documentation, or there may be an error in the manufacturer's original report. Try searching NHTSA's complaints database by make and model instead.
Do I need an API key to use the NHTSA VIN Decoder?
No. The API is public and requires no authentication. You can start making requests when ready. However, NHTSA does ask that you follow rate limits (no more than 10 requests per second) and identify your process in the request header.