Live demo
This is the widget itself, rendered on this page. Try a VIN, for example 1HGCM82633A004352 (a 2003 Honda Accord).
Embed it
Paste this where you want the decoder to appear:
<div class="vdc-vin-widget"></div> <script src="https://vindecodercheck.com/widget.js" async></script>
That is the whole integration. The script finds every vdc-vin-widget div on the page, so several widgets need only the one script tag.
Attributes
| Attribute | Meaning |
|---|---|
| data-vin | Pre-fill a VIN and decode it as soon as the widget loads, e.g. data-vin="1HGCM82633A004352". |
| data-endpoint | Override the API base URL. Defaults to https://vindecodercheck.com/api/vin/; useful if you proxy the API through your own domain with an IPNOVA key. |
How it works
- The widget renders inside a Shadow DOM with self-contained styles, so nothing leaks in or out of your page's CSS.
- Decodes call the free VIN decoder API directly from the visitor's browser (CORS is open), so each visitor spends their own allowance of 100 decodes a day, not yours.
- Data comes from the official NHTSA vPIC database (US public domain), served from our permanent cache after a VIN's first decode.
- Full 17-character VINs decode completely; partial VINs of 11 or more characters decode structurally.
- Results link to the vehicle's specs-and-recalls page on VinDecoderCheck when we have one.
- VINs are never logged. Build facts only: no ownership, title or accident data, ever.
- Dynamic pages can call window.VDCWidget.render() after inserting new widget divs.
Terms
Free for any site, commercial or not, on one condition: the "Data by VinDecoderCheck" attribution link the widget renders stays visible and clickable. If you need higher volumes or want the data server-side, use the VIN decoder API with a free key from api.ipnova.com.