Live and historical exchange rates from the European Central Bank — authoritative, free, updated daily. 30+ currencies with full metadata. One endpoint for current rates, one for conversion, one for time-series history.
30+ CurrenciesECB Official RatesDaily UpdatesHistorical DataInstant ConversionInverse RateHigh/Low/ChangeFree Upstream
Data source
Powered by Frankfurter — an open-source project serving European Central Bank exchange rates since 2010. ECB rates are the most authoritative free forex reference rates in the world, used by EU regulators for official financial reporting. Updated every business day at 16:00 CET. Historical data available back to 1999-01-04. APlicious adds auth, caching, currency metadata (names, symbols, flags), and consistent JSON.
5 businesses you could build
Currency conversion is a universal need — every product that crosses a border needs it.
Every SaaS that sells to international customers needs to show prices in local currency. PriceGlobal is a JavaScript snippet that detects the visitor's country via their IP, fetches the latest ECB exchange rate, and renders the price in their local currency — updated daily. No more 'why does this show USD?' support tickets. Sell as a monthly embed to SaaS landing pages and pricing pages.
150 SaaS products × $29. Every bootstrapped SaaS founder selling internationally faces this. Stripe handles billing currency but doesn't handle display-layer conversion on your marketing site. This fills that gap with one script tag.
All 3 Currency endpoints
Three focused GET endpoints. ECB data, zero licensing friction.
/api/v1/currency/ratesLive Exchange Rates
GET
Current ECB exchange rates for any base currency, with full metadata for 30+ currencies: name, symbol, and flag emoji. Returns all rates from the specified base, or filter with ?symbols=USD,GBP,INR. Data updated daily at 16:00 CET by the European Central Bank.
base?symbols?
/api/v1/currency/convertCurrency Conversion
GET
Converts any amount between two currencies using the latest ECB rate. Returns the converted amount, the rate used, the inverse rate, and the rate date. Works for all 30+ supported ECB currencies.
Historical ECB exchange rates for any currency pair. Returns daily rates with a summary: high, low, latest, and % change over the period. ECB data available back to 1999-01-04.
fromtoperiod?
Starter code
Copy and paste. Works anywhere fetch runs.
javascript
const API_KEY = 'your_api_key_here';
const BASE = 'https://aplicious.com/api/v1/currency';
// Get all rates from USD
const { data } = await fetch(
`${BASE}/rates?base=USD`,
{ headers: { 'x-api-key': API_KEY } }
).then(r => r.json());
// Print top currencies
data.rates.slice(0, 5).forEach(r => {
console.log(`${r.flag} ${r.code}: ${r.rate} (${r.name})`);
});
// Convert $1,000 to INR
const conversion = await fetch(
`${BASE}/convert?from=USD&to=INR&amount=1000`,
{ headers: { 'x-api-key': API_KEY } }
).then(r => r.json());
console.log(`$1,000 = ₹${conversion.data.converted_amount.toLocaleString('en-IN')}`);
console.log(`Rate: ${conversion.data.rate} · Date: ${conversion.data.date}`);
// USD/EUR rate history for the last month
const history = await fetch(
`${BASE}/history?from=USD&to=EUR&period=1mo`,
{ headers: { 'x-api-key': API_KEY } }
).then(r => r.json());
const { summary } = history.data;
console.log(`USD/EUR 1mo: High ${summary.high} · Low ${summary.low} · Change ${summary.change_pct}%`);
Start building with the Currency namespace
Free tier: 250 calls/month. No credit card. One key for all 21 namespaces.