Free USD to CAD Converter Widget

Show the live Bank of Canada exchange rate on your own site. One line of code, no API key, no signup, no usage limits. Free for personal and commercial sites.

Quick install

Copy this snippet into your page where you want the widget to appear:

<div class="usd2cad-widget"></div> <script src="https://usd2cad.ca/embed/widget.js" async></script>

Live preview — three styles

Pick the one that fits your layout. Style is set with a single data-style attribute.

Default — card

<div class="usd2cad-widget" data-style="default" data-amount="100"></div>

Compact — single line

<div class="usd2cad-widget" data-style="compact" data-amount="500"></div>

Dark — for dark themes

<div class="usd2cad-widget" data-style="dark" data-amount="1000"></div>

Options

AttributeValuesDefaultWhat it does
data-styledefault / compact / darkdefaultVisual variant
data-amountAny positive number100Pre-filled amount in USD

How it works

Multiple widgets on the same page

Place as many <div class="usd2cad-widget"> as you want — they all share the same rate fetch.

Need CAD to USD instead?

Use the matching widget at cad2usd.ca/embed/ — same install pattern, defaults to CAD→USD.

Licensing

Free to embed on any website, commercial or personal, with attribution. The "Powered by USD2CAD.ca" link inside the widget must remain visible. Custom unbranded versions are available — contact us.

FAQ

Does it work without JavaScript?

No — the widget needs JavaScript to fetch the live rate. We recommend pairing it with a static fallback rate inside a <noscript> tag if SEO on the host page matters.

Will it slow down my site?

No. The script is loaded with async, runs in < 50 ms, and the rate request happens after the page is interactive.

Can I change the colors?

The widget uses Shadow DOM so external CSS can't override it directly. For custom styling, get in touch — we maintain a paid version that exposes CSS variables.

How fresh is the rate?

It matches the Bank of Canada's most recent business-day publication, refreshed every 30 minutes server-side.

Does it work on AMP pages?

Not directly — AMP forbids arbitrary scripts. For AMP, use an <amp-iframe> pointing at /embed/iframe.html (coming soon).