Free Bitcoin price widget for your website

A small, self-updating live Bitcoin ticker you can paste into any site: WordPress, Ghost, Webflow, Squarespace, a plain HTML page, anything that accepts custom code. It weighs almost nothing, needs no API key, sets no cookies and stores nothing in the visitor's browser.

Live preview

This is the real widget, running right now:

Option 1: HTML snippet (recommended)

Self-contained markup plus a short script. Because it renders inside your page rather than in a frame, it inherits your layout, resizes naturally on mobile, and the credit link is a normal followable link.

HTML + JavaScript
<!-- Live Bitcoin price by BitcoinNow.io -->
<div id="bitcoinnow-widget" style="display:inline-flex;align-items:center;gap:11px;
     width:280px;max-width:100%;padding:11px 13px;background:#151a21;
     border:1px solid #283039;border-radius:14px;color:#e8edf2;line-height:1.25;
     font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif">
  <span style="width:32px;height:32px;flex:0 0 32px;border-radius:50%;background:#f7931a;
        color:#fff;display:flex;align-items:center;justify-content:center;
        font-weight:700;font-size:18px">&#8383;</span>
  <span style="flex:1 1 auto;min-width:0">
    <span style="display:block">
      <b id="bitcoinnow-price" style="font-size:17px">&mdash;</b>
      <span id="bitcoinnow-change" style="font-size:12px;font-weight:700"></span>
    </span>
    <a href="https://bitcoinnow.io/?utm_source=widget" target="_blank" rel="noopener"
       style="font-size:11px;color:#9aa7b4;text-decoration:none">via BitcoinNow.io</a>
  </span>
</div>
<script>
(function () {
  var u = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd&include_24hr_change=true";
  function go() {
    fetch(u).then(function (r) { return r.ok ? r.json() : null; }).then(function (d) {
      if (!d || !d.bitcoin || typeof d.bitcoin.usd !== "number") return;
      var p = d.bitcoin.usd, c = d.bitcoin.usd_24h_change;
      document.getElementById("bitcoinnow-price").textContent =
        "$" + p.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
      var el = document.getElementById("bitcoinnow-change");
      if (typeof c === "number" && isFinite(c)) {
        el.textContent = (c > 0 ? "+" : "") + c.toFixed(2) + "%";
        el.style.color = c >= 0 ? "#16c784" : "#ea3943";
      }
    }).catch(function () {});
  }
  go(); setInterval(go, 60000);
})();
</script>

Option 2: iframe embed

Simpler to paste and fully isolated from your own CSS, which is handy on platforms that strip inline scripts. Fixed at 280×74 pixels.

iframe
<iframe src="https://bitcoinnow.io/widget.html"
        title="Live Bitcoin price"
        width="280" height="74"
        style="border:0;overflow:hidden"
        scrolling="no" loading="lazy"></iframe>

Please keep the credit link. The widget is free to use on personal and commercial sites, and the only thing asked in return is that you leave the small “via BitcoinNow.io” link in place. That link is what pays for keeping the widget free.

Good to know

  • Prices come from the free CoinGecko public API and refresh every 60 seconds while the page is open.
  • If the API is unreachable the widget stays silent and keeps showing the last value it received; it will never render an error box on your page.
  • No cookies, no local storage, no tracking, no external stylesheet or font.
  • The displayed figure is a cross-exchange average for information only. It is not a tradable quote and not financial advice.