Skip to content
Fluctuation

Currency fluctuation API

How much did a currency move? /v1/fluctuation returns the start rate, end rate, absolute change and percentage change between any two dates since 1999 – for every currency in one request, on every plan including Free.

ReturnsΔ and Δ %
HistorySince 1999
FormatsJSON · CSV
PlansAll
GET /v1/fluctuation · text/csv
curl -G "https://api.fxapi.com/v1/fluctuation" \
  -d date_from=2026-01-01 -d date_to=2026-09-30 \
  -d base_currency=USD \
  -d currencies=EUR,JPY,TRY -d format=csv \
  -H "apikey: $FXAPI_KEY"
date_from,date_to,base_currency,currency,start_rate,end_rate,change,change_pct
2026-01-01,2026-09-30,USD,EUR,…,…,…,…
2026-01-01,2026-09-30,USD,JPY,…,…,…,…
2026-01-01,2026-09-30,USD,TRY,…,…,…,…

“The euro gained 4% against the dollar this quarter” is a sentence finance teams, product managers and dashboards produce all the time. The fxapi currency fluctuation API gives you that number directly: for each currency it returns the rate at the start and end of a period and how much it changed, in absolute terms and as a percentage – without downloading and differencing a time series yourself.

Parameters and response

ParameterRequiredDescription
date_fromyesFirst day, YYYY-MM-DD, 1999-01-01 or later
date_toyesLast day, on or after date_from, yesterday at the latest
base_currencynoBase currency, default USD
currenciesnoComma-separated targets – default: all
typenofiat, metal or crypto
formatnojson (default) or csv

For every currency the response contains start_rate, end_rate, change (end_rate − start_rate) and change_pct (percent of start_rate, four decimals). Rates are end-of-day values in UTC. Reference: fluctuation docs.

Reading the sign. Values are quoted as “units of target per one unit of base”. With base_currency=USD, a positive change for EUR means one dollar buys more euros – the dollar strengthened against the euro.

What to build with it

  • Top movers – call once with all currencies and sort by change_pct to power a “biggest movers this week” widget.
  • FX exposure alerts – compare the rate at contract signature with yesterday’s rate and alert when a threshold is crossed.
  • Variance commentary – explain how much of a revenue change came from currency movements in monthly or quarterly reports; pair with average rates.
  • Pricing reviews – trigger a price-list review for markets where the local currency moved more than X%.
  • Newsletters and content – generate monthly currency recaps automatically.

JavaScript: alert when a currency moves more than 3%

const params = new URLSearchParams({
  date_from: "2026-09-01",
  date_to: "2026-09-30",
  base_currency: "EUR",
  currencies: "USD,GBP,CHF,PLN,SEK",
});

const res = await fetch(`https://api.fxapi.com/v1/fluctuation?${params}`, {
  headers: { apikey: process.env.FXAPI_KEY },
});
if (!res.ok) throw new Error(`fxapi ${res.status}`);
const { data } = await res.json();

for (const [code, f] of Object.entries(data)) {
  if (Math.abs(f.change_pct) >= 3) {
    console.log(`EUR/${code} moved ${f.change_pct}% (${f.start_rate} → ${f.end_rate})`);
  }
}

Fluctuation vs. time series vs. averages

QuestionBest endpoint
How much did it move between two dates?/v1/fluctuation
What did the path look like?/v1/range
What was the typical rate in a period?/v1/average
What was the rate on one date?/v1/historical

All four share currency codes and base-currency handling, so you can combine them freely. Fluctuation, averages and historical rates are included in the free plan.

This endpoint is part of the fxapi FX rates API – the same key, response format and 190+ currencies across every endpoint.

Frequently asked questions

How is the fluctuation calculated?
fxapi takes each currency’s end-of-day rate (UTC) on date_from and on date_to. change is end minus start; change_pct is the change as a percentage of the start rate, rounded to four decimals.
Is the fluctuation endpoint free?
Yes. /v1/fluctuation is available on every plan, including the Free plan with 300 requests a month. Each call costs one request.
Which dates can I compare?
Any two dates from 1999-01-01 up to yesterday, with date_to on or after date_from. If no rates are stored for one of the days, the API returns 404.
Can I get fluctuation for every currency at once?
Yes. Leave out currencies and the response includes every supported currency, relative to your base_currency.
What is the difference between fluctuation and a time series?
Fluctuation compares two points. A time series returns every point in between. Use fluctuation for movers lists and alerts, a time series for charts and models.
Free plan · no credit card

Get your free exchange rate API key

300 requests a month, latest and historical rates, fluctuation and averages – free forever. Upgrade when you need faster updates or more requests.