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

AttributeMeaning
data-vinPre-fill a VIN and decode it as soon as the widget loads, e.g. data-vin="1HGCM82633A004352".
data-endpointOverride 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.