Skip to content

No-code5 min read

How to Build a Real-Time Currency Converter in Webflow

Learn how to build a real-time currency converter in Webflow with the free Frankfurter API.

In this tutorial, Sandro, co-founder of Gemeos Webflow agency, shows you how to build a real-time currency converter in Webflow with the free Frankfurter API.

Example

—

APICostRatesSupported currencies
Frankfurter (this tutorial)Free, no key requiredECB, daily30+ major currencies
ExchangeRate-APIFree up to 1500/monthHourly160+ currencies
Open Exchange RatesFreemiumHourly170+ currencies

1. Build the structure in a Webflow Embed

Add an Embed to your page with the converter's HTML structure.

<div>
  <div style="display:flex;gap:12px;margin-bottom:12px;">
    <input type="number" style="flex:1;">
    <select>
      <option>EUR</option>
      <option>USD</option>
      <option>GBP</option>
    </select>
  </div>
  <div style="display:flex;gap:12px;">
    <div style="flex:1;">—</div>
    <select>
      <option>USD</option>
      <option>EUR</option>
      <option>GBP</option>
    </select>
  </div>
</div>
(function() {
  var CURRENCIES = ['EUR','USD','GBP','CHF','CAD','AUD','JPY','AED','MAD','TND'];
  var amountInput = document.getElementById('amount-input');
  var fromSelect = document.getElementById('from-currency');
  var toSelect = document.getElementById('to-currency');
  var result = document.getElementById('converted-amount');
  if (!amountInput || !fromSelect || !toSelect || !result) return;

  // Populate the selects
  [fromSelect, toSelect].forEach(function(sel) {
    var current = sel.value;
    sel.innerHTML = '';
    CURRENCIES.forEach(function(c) {
      var opt = document.createElement('option');
      opt.value = c; opt.textContent = c;
      if (c === current) opt.selected = true;
      sel.appendChild(opt);
    });
  });
  toSelect.value = 'USD';

  var rates = {};

  function convert() {
    var amount = parseFloat(amountInput.value) || 0;
    var from = fromSelect.value;
    var to = toSelect.value;
    if (from === to) { result.textContent = amount.toFixed(2) + ' ' + to; return; }
    if (rates[from] && rates[from][to]) {
      var converted = amount * rates[from][to];
      result.textContent = converted.toFixed(2) + ' ' + to;
    }
  }

  function loadRates(base) {
    if (rates[base]) { convert(); return; }
    result.textContent = 'Loading...';
    fetch('https://api.frankfurter.dev/v1/latest?from=' + base)
      .then(function(r) { return r.json(); })
      .then(function(data) {
        rates[base] = data.rates;
        rates[base][base] = 1;
        convert();
      })
      .catch(function() { result.textContent = 'Loading error'; });
  }

  amountInput.addEventListener('input', convert);
  fromSelect.addEventListener('change', function() { loadRates(fromSelect.value); });
  toSelect.addEventListener('change', convert);

  loadRates('EUR');
})();

Conclusion

A currency converter can be added to Webflow in just a few minutes, with no backend. Use cases:

  • International pricing pages with automatic conversion
  • E-commerce stores with customers in multiple countries
  • Landing pages for services billed in foreign currencies

Published on May 20, 2026

Sandro DA SILVA

Growth Marketer, Webflow expert, and jack-of-all-trades. Sandro handles commercial operations, ensures projects run smoothly, and addresses marketing-related issues (SEO, Tracking, Copywriting, etc).

You might be interested in these tutorials

Related tutorials

See all

You're going to working with us, guaranteed

Ready to launch your business?

get a quote

Let’s f*****G GO !!