Decode and generate VINs over JSON, with the NCIC make, colour and style codes that title and DMV work needs. No signup, no key, no quota beyond a rate limit that exists to keep the service up.
Every path below hangs off https://vinfoundry.com/api/v1. Requests need no authentication header, and there is nothing to sign up for.
| Method | Path | What it does |
|---|---|---|
| GET | /vin/generate | Generate up to 100 VINs, filtered. |
| GET | /vin/decode/{vin} | Decode one VIN, with NCIC codes. |
| POST | /vin/decode | Decode up to 100 VINs in one request. |
| GET | /vin/validate/{vin} | Check structure and check digit. No database lookup. |
| GET | /reference/makes | Makes in the dataset, with counts. |
| GET | /reference/models | Models available for a make. |
| GET | /reference/years | Model years available. |
| GET | /reference/body-styles | Body styles, with counts. |
| GET | /reference/fuel-types | Fuel types, with counts. |
| GET | /reference/wmi/{wmi} | What a WMI covers. |
| GET | /ncic/makes | NCIC make codes (VMA). |
| GET | /ncic/colors | NCIC colour codes (VCO). |
| GET | /ncic/styles | NCIC style codes (VST). |
| GET | /ncic/make/{nameOrCode} | Resolve a make either direction. |
| GET | /health | Liveness. |
POST /vin/decode has a tighter budget of 30 a minute, and takes at most 100 VINs per request.X-RateLimit-Limit, -Remaining and -Reset; a 429 adds Retry-After. All four are exposed through CORS, so browser code can read them.Decoding and generation both run on NHTSA's VPIC database, which covers US-market vehicles only — cars sold or registered in the United States, model years 1980 to 2026. A brand never sold here is not in VPIC and so is not available here either, and neither is any pre-1981 vehicle, which predates the 17-character VIN.
Generated VINs use a genuine manufacturer prefix with a randomised serial, so they are structurally valid and decode correctly. The response reports synthetic: true on every one.
baseUrl variable.