Decode any VIN at the edge.
Full NHTSA vPIC decoding runs inside the Worker, with no round trip to NHTSA. It is a port of NHTSA's own spVinDecode over the official monthly dump, checked against NHTSA's SQL and the live API on every update.
The same request from your terminal:
curl -s "https://your-worker.example/api/v1/vin/1HGCM82633A004352"
Fast, checked, compatible
Built to replace calls to vpic.nhtsa.dot.gov without changing your client.
No round trip
Every decode is answered in the Worker from bundled vPIC data, in a few milliseconds. It keeps working when NHTSA is slow or down.
Checked against NHTSA
Each update restores NHTSA's original dump in PostgreSQL and compares this decoder with NHTSA's own SQL functions, then with the live API, before any data is committed.
Drop-in for vPIC
DecodeVinValues, DecodeVin and DecodeVINValuesBatch return vPIC's JSON shape. Point your client at this host and keep the rest.
API
JSON over HTTPS, CORS open, no API key. Responses carry X-Vpic-Data-Version so you know which dump answered.
- GET
/api/v1/vin/:vinClean JSON: typed fields plus every decoded attribute - GET
/api/v1/vin/:vin/unifiedDecode plus US EPA and EU RDW reference data - GET
/vehicles/DecodeVinValues/:vin?format=jsonDrop-in for the vPIC API (add clean=true to drop empty values) - POST
/vehicles/DecodeVINValuesBatch/vPIC batch decode, up to 50 VINs per request - GET
/api/v1/makesEvery make in the bundled dataset - GET
/api/v1/models?make=toyotaModels of a make - GET
/api/v1/vin/:vin/compareThis decoder against the live vPIC API, field by field
const res = await fetch("https://your-worker.example/api/v1/vin/1HGCM82633A004352");
const { data } = await res.json();
console.log(data.modelYear, data.make, data.model); // 2003 HONDA Accord
How correctness is kept
Data updates weekly, and an update is a git commit, so it can be reviewed and reverted like code. Serving vPICList_lite_2026_09.
- The data equals NHTSA's dumpEvery table in the repository is compared row by row with the original dump restored in PostgreSQL.
- The decoder equals NHTSA's SQLThousands of VINs, and every helper function, are decoded by NHTSA's functions and by this decoder; any unexplained difference stops the update.
- The result matches the live APIA fixed sample is compared field by field with the live vPIC API before data is committed or deployed.
- Defects in NHTSA's dump are documentedWhere the dump's code is wrong and the live API shows the right answer, the decoder follows the live API and the finding is written down with its evidence.