Embed a QR code generator on your website
Drop a working QR code generator widget into any page with one line of HTML or JavaScript. It's free, it works inside an iframe, and it doesn't require a CDN, a signup, or a build step.
11 QR types. Static codes, no JavaScript required in the iframe. Visitors generate, download, and go. The snippet includes a crawlable attribution link to ProQR.codes.
Copy the snippet for your QR type
Url QR code generator widget
<iframe src="https://proqr.codes/embed/url" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="url"></div>
<script src="https://proqr.codes/embed.js" async></script>
Product QR code generator widget
<iframe src="https://proqr.codes/embed/product" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="product"></div>
<script src="https://proqr.codes/embed.js" async></script>
Wifi QR code generator widget
<iframe src="https://proqr.codes/embed/wifi" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="wifi"></div>
<script src="https://proqr.codes/embed.js" async></script>
Text QR code generator widget
<iframe src="https://proqr.codes/embed/text" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="text"></div>
<script src="https://proqr.codes/embed.js" async></script>
Email QR code generator widget
<iframe src="https://proqr.codes/embed/email" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="email"></div>
<script src="https://proqr.codes/embed.js" async></script>
Phone QR code generator widget
<iframe src="https://proqr.codes/embed/phone" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="phone"></div>
<script src="https://proqr.codes/embed.js" async></script>
Sms QR code generator widget
<iframe src="https://proqr.codes/embed/sms" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="sms"></div>
<script src="https://proqr.codes/embed.js" async></script>
Geo QR code generator widget
<iframe src="https://proqr.codes/embed/geo" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="geo"></div>
<script src="https://proqr.codes/embed.js" async></script>
Vcard QR code generator widget
<iframe src="https://proqr.codes/embed/vcard" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="vcard"></div>
<script src="https://proqr.codes/embed.js" async></script>
Calendar QR code generator widget
<iframe src="https://proqr.codes/embed/calendar" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="calendar"></div>
<script src="https://proqr.codes/embed.js" async></script>
App QR code generator widget
<iframe src="https://proqr.codes/embed/app" width="340" height="460" style="border:0" loading="lazy" title="QR code generator"></iframe>
<p>Free QR code generator by <a href="https://proqr.codes/?utm_medium=widget&utm_source=embed">ProQR.codes</a></p>
<div data-proqr-embed="app"></div>
<script src="https://proqr.codes/embed.js" async></script>
How it works
- Pick the QR type you want (URL, Wi-Fi, vCard, and 8 others).
- Copy the HTML or JS snippet above.
- Paste it into your page. Done.
The HTML snippet is a plain iframe with no dependencies. It works in WordPress, Webflow, Squarespace, Notion, raw HTML, or anywhere else that accepts an embed.
The JS loader (embed.js) injects the iframe automatically for each data-proqr-embed div on the page. One script tag handles multiple widgets.
Frequently asked questions
Is the embed really free?
Yes. Visitors use it to generate and download QR codes at no cost and with no account required. The only condition is the attribution link to ProQR.codes that comes with the snippet.
Can I remove the attribution link?
The attribution is what keeps this free. You can style around it, but removing it entirely isn't supported.
Do the QR codes expire?
No. The embed generates static QR codes that encode the data directly. They don't pass through a redirect, so there's no expiry date and no dependency on our servers after the code is downloaded.
Can visitors save or edit the code they create?
After generating a code in the widget, visitors see a "Save and edit this code" link. That takes them to ProQR.codes where they can create a free account to make the code dynamic, trackable, and editable. Dynamic and trackable codes are free with an account.
What QR types does the embed support?
URL, Product, Wi-Fi, Plain text, Email, Phone, SMS, Geo coordinates, vCard, Calendar event, and App store links. File and menu types need an account because they host uploaded files.