NHTSA vPIC API
Free NHTSA vPIC API with no key: decode any VIN, list vehicle makes and models, and get manufacturer and specification data. Tested curl example.
Endpoint tested and returned HTTP 200 on 19 Aug 2026
What is the NHTSA vPIC API?
The NHTSA vPIC API is a free, key-free US government API that decodes Vehicle Identification Numbers and provides make, model, manufacturer and specification data for vehicles sold in the United States.
vPIC (Vehicle Product Information Catalog) is the authoritative free VIN decoder. Feed it a 17-character VIN and it returns the manufacturer, make, model, year, body class, engine configuration, plant of manufacture and dozens of other attributes.
Because it is run by the US Department of Transportation and VIN structure is federally mandated, coverage is complete for US-market vehicles and the data is reliable in a way that commercial VIN APIs charging per lookup often are not.
Quick facts
- Base URL
https://vpic.nhtsa.dot.gov/api/vehicles- Authentication
- No API key required.
- Rate limit
- No published hard limit; batch endpoints exist for bulk decoding.
- Pricing
- Free public domain US government data.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the NHTSA vPIC API
Every request below was executed against the live API on 19 Aug 2026, and the response shown is the real body it returned — not an illustration.
1. List every vehicle make
GET https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json
curl 'https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json'const res = await fetch("https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://vpic.nhtsa.dot.gov/api/vehicles/getallmakes?format=json", timeout=20)
res.raise_for_status()
print(res.json()){
"Count": 12337,
"Message": "Response returned successfully",
"SearchCriteria": null,
"Results": [
{
"Make_ID": 12858,
"Make_Name": "#1 ALPINE CUSTOMS"
},
{
"Make_ID": 4877,
"Make_Name": "1/OFF KUSTOMS, LLC"
},
{
"Make_ID": 11257,
"Make_Name": "102 IRONWORKS, INC."
},
{
"Make_ID": 12255,
"Make_Name": "12832429 CANADA INC."
},
{
"Make_ID": 13053,
"Make_Name": "137 INDUSTRIES INC."
},
{
"Make_ID": 6387,
"Make_Name": "17 CREEK ENTERPRISES"
},
{
"Make_ID": 12948,
"Make_Name": "1955 CUSTOM BELAIR"
},
{
"Make_ID": 9172,
"Make_Name": "1M CUSTOM CAR TRANSPORTS, INC."
},
{
"Make_ID": 6124,
"Make_Name": "1ST CHOICE MANUFACTURING INC"
},
{
"Make_ID": 12972,
"Make_Name": "2 GOLDEN EAGLES"
},
{
"Make_ID": 6488,
"Make_Name": "2-G TRAILER CO LLC"
},
{
"Make_ID": 11399,
"Make_Name": "24/7 ONSITE CAMERAS INC"
},
{
"Make_ID": 608,
"Make_Name": "280 TRAILERS"
},
{
"Make_ID": 10123,
"Make_Name": "3 CUSTOM SOLUTIONS"
},
{
"Make_ID": 11253,
"Make_Name": "3 STAR MFG LTD"
},
{
"Make_ID": 8792,
"Make_Name": "3&1 ENTERPRISES, LLC DBA IMPACT TRAILERS"
},
{
"Make_ID": 13576,
"Make_Name": "321TRAILERS"
},
{
"Make_ID": 7388,
"Make_Name": "33 EAST MAINTENANCE INC"
},
{
"Make_ID": 10005,
"Make_Name": "357 GOLF CARTS"
},Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
format | string | Required | Set to `json`; the API defaults to XML. json |
DecodeVin/<vin> | path | Optional | Decode a specific VIN. 1HGCM82633A004352 |
GetModelsForMake/<make> | path | Optional | All models for a make. honda |
modelyear | integer | Optional | Restrict results to a model year. 2020 |
Response fields
Countinteger- Number of results returned.
Messagestring- Status message from the service.
Resultsarray- The data array; shape depends on the endpoint called.
Results[].Make_Name / Model_Namestring- Make and model names on catalogue endpoints.
Results[].Variable / Valuestring- On VIN decode, each decoded attribute as a name/value pair.
What you can build with the NHTSA vPIC API
- Decode a VIN at point of sale or during insurance quoting
- Populate make and model dropdowns from authoritative data
- Validate that a VIN is genuine and internally consistent
- Enrich fleet records with manufacturer specifications
Common errors and how to fix them
XML returned instead of JSON
The `format=json` parameter was omitted.
Fix: Always append ?format=json — XML is the default output.
Empty Value fields on VIN decode
Not every attribute is populated for every vehicle.
Fix: Filter out entries where Value is null or empty before displaying.
Non-US vehicles decode poorly
vPIC covers the US market.
Fix: Vehicles never sold in the US may return sparse results; use a commercial decoder for full international coverage.
NHTSA vPIC API — frequently asked questions
Is there a free VIN decoder API?
Yes. NHTSA's vPIC API decodes VINs with no API key and no cost, and is the authoritative source for US-market vehicles.
Why is the response XML?
XML is the default. Append ?format=json to every request to get JSON instead — this is the most common integration mistake.
Can it decode VINs for cars sold outside the US?
Partially. The first characters identify the manufacturer globally, but detailed attributes are only populated for vehicles sold in the US market.
Can I decode many VINs at once?
Yes, the DecodeVINValuesBatch endpoint accepts multiple VINs in a single POST, which is far more efficient than looping.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
Alternatives to NHTSA vPIC API
If NHTSA vPIC does not fit, these transport & vehicle apis cover similar ground. Every one was called before publishing, and each links to its own reference page with a working curl command and the response it returned.
| API | What it does | Auth | CORS | Last verified |
|---|---|---|---|---|
| NHTSA Recalls | Free NHTSA recalls API with no key: look up open safety recalls by make, model and year, with remedy details and Park It warnings. Tested curl example. | No key | No | 19 Aug 2026 |
| Transport for London | Free Transport for London API: live tube line status, arrivals, journey planning, bike hire and stop points across London. No key for light use. Tested example. | No key | Yes | 19 Aug 2026 |
| OpenSky Network | Free OpenSky Network API: live aircraft positions, altitude, velocity and callsigns worldwide from crowd-sourced ADS-B receivers. Tested curl example. | No key | No | 19 Aug 2026 |
| Jolpica F1 (Ergast) | Free Formula 1 API with no key: race results, driver and constructor standings, qualifying, lap times and pit stops from 1950 onwards. Tested curl example. | No key | No | 19 Aug 2026 |
| OpenVan Fuel Prices | Free global fuel price API with no key: petrol, diesel, LPG and CNG prices for over 120 countries with local currency, weekly change and named sources. Tested example included. | No key | Yes | 21 Aug 2026 |
| Overpass (OpenStreetMap) | Free Overpass API with no key: query OpenStreetMap for any feature — shops, roads, amenities — by tag and bounding box. Immensely powerful. Tested example. | No key | No | 20 Aug 2026 |
NHTSA vPIC is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 19 Aug 2026; always check the official documentation before relying on this API in production, as terms and limits can change.