Finance & Data

Currency & FX API

The Currency & Exchange Rates API returns live and historical FX data as clean JSON.

6 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

The primary latest endpoint returns a base currency's rates against every symbol with the ECB reference timestamp, and you can convert an amount, pull historical and timeseries rates, measure fluctuation and list supported currencies. It is built for fintech apps, pricing tools and finance dashboards that need reliable exchange-rate data from one endpoint. One ReefAPI key, one shared credit pool, the standard envelope.

Live example

Real request and response JSON

Captured from the indexed primary action, latest, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/currency/v1/latest",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "base": "EUR"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "currency",
    "endpoint": "latest",
    "mode": "live",
    "latency_ms": 274.1,
    "record_count": 29,
    "bytes": 1547,
    "cache_hit": false,
    "completeness_pct": 100,
    "requests": 1,
    "attribution": "Data source: European Central Bank (ECB) euro foreign-exchange reference rates, freely available at https://www.ecb.europa.eu. Published for information purposes only; not intended for transaction/settlement use.",
    "unavailable": null
  },
  "data": {
    "base": "EUR",
    "date": "[redacted-phone]",
    "timestamp": 1784296800,
    "rates": {
      "USD": 1.1435,
      "JPY": 185.65,
      "CZK": 24.205,
      "DKK": 7.4756,
      "GBP": 0.85098,
      "HUF": 363.53,
      "PLN": 4.3473,
      "RON": 5.2406,
      "SEK": 11.0405,
      "CHF": 0.9228,
      "ISK": 143.4,
      "NOK": 11.039,
      "TRY": 53.907,
      "AUD": 1.6394,
      "BRL": 5.8499,
      "CAD": 1.6035,
      "CNY": 7.7501,
      "HKD": 8.9653,
      "IDR": 20519.71,
      "ILS": 3.4843,
      "INR": 110.102,
      "KRW": 1698.46,
      "MXN": 19.9926,
      "MYR": 4.6826,
      "NZD": 1.9609,
      "PHP": 70.441,
      "SGD": 1.4765,
      "THB": 38.462,
      "ZAR": 18.8768
    },
    "amount": 1,
    "source": "ECB"
  }
}
Actions

What the Currency & FX API does

ActionDescriptionConcrete use caseKey params
latestlatest reference rates for a base (default EUR) → all or selected target currencies (+ unix timestamp)Fintech apps call latest to get latest reference rates for a base (default EUR) → all or selected target currencies (+ unix t….base, symbols
convertconvert an amount from→to at the latest rate (or a given historical date); returns rate + resultPortfolio dashboards call convert to convert an amount from→to at the latest rate (or a given historical date);.from, to, amount, date
historicalreference rates on a past date (YYYY-MM-DD; weekend/holiday → last working day) since 1999-01-04Analysts call historical to get reference rates on a past date (YYYY-MM-DD; weekend/holiday → last working day) since 1999-01-04.date, base, symbols
timeseriesrates over a date range (working days) for a base → selected/all targets; {date:{CUR:val}}Data teams call timeseries to get rates over a date range (working days) for a base → selected/all targets; {date:{CUR:val}}.start, end, base, symbols
fluctuationper-currency change over a date range: {CUR:{start_rate,end_rate,change,change_pct}} (derived from the range endpoints)Fintech apps call fluctuation to get per-currency change over a date range.start, end, base, symbols
currenciesthe current ECB reference currency set (code → name)Portfolio dashboards call currencies to get the current ECB reference currency set (code → name).none
Code samples

Call latest from your stack

curl -X POST https://api.reefapi.com/currency/v1/latest \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"base":"EUR"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.currency.latest with {"base":"EUR"}.
Use cases

Who uses this API and why

  • Fintech and pricing tools call convert to show product prices in a user's local currency.
  • Finance dashboards use timeseries and fluctuation to chart and monitor rate movements.
  • Accounting workflows use historical to book transactions at the correct dated exchange rate.
FAQ

Questions developers ask before integrating

What is the Currency & FX API?

Currency & FX API is a ReefAPI endpoint group for exchange rates, conversion and historical rates. It returns live JSON through POST requests under /currency/v1.

Is the Currency & FX API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Currency & FX calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Currency & FX login or account?

No login to Currency & FX is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the Currency & FX data?

The page example is captured from a live latest call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the Currency & FX API use?

Currency & FX actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call Currency & FX from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call currency actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Currency & FX API a Currency & FX scraper?

It is the managed alternative to a DIY Currency & FX scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same exchange rates, conversion and historical rates back as clean JSON.

Why does my Currency & FX scraper keep getting blocked?

Most Currency & FX scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.

docs / currency

Currency & FX

Exchange rates, conversion and historical rates.

base /currency/v16 endpoints
post/currency/v1/latest1 credit

latest reference rates for a base (default EUR) → all or selected target currencies (+ unix timestamp)

ParameterAllowed / rangeDescription
base = EURoptionalEUR · USD · JPY · GBP · CHF · AUD · CAD · CNY · HKD · NZD · SEK · NOK · DKK · CZK · HUF · PLN · RON · BGN · TRY · ISK · ILS · INR · IDR · KRW · MYR · PHP · SGD · THB · ZAR · MXN · BRL · RUB · HRK · GRD · CYP · EEK · LTL · LVL · MTL · SIT · SKK · ROL · TRLBase currency the rates are expressed in (ISO-4217). Defaults to EUR. Retired codes (RUB/HRK/legacy euro-joiners) work only for historical dates that predate their discontinuation.
symbolsoptionalOptional comma-separated target currencies to return (e.g. 'USD,GBP,JPY'). Omit to return every currency in the ECB set. Unknown codes are reported under 'unavailable', not rejected.
Try in playground →
post/currency/v1/convert1 credit

convert an amount from→to at the latest rate (or a given historical date); returns rate + result

ParameterAllowed / rangeDescription
fromrequiredEUR · USD · JPY · GBP · CHF · AUD · CAD · CNY · HKD · NZD · SEK · NOK · DKK · CZK · HUF · PLN · RON · BGN · TRY · ISK · ILS · INR · IDR · KRW · MYR · PHP · SGD · THB · ZAR · MXN · BRL · RUB · HRK · GRD · CYP · EEK · LTL · LVL · MTL · SIT · SKK · ROL · TRLSource currency to convert FROM (ISO-4217).
torequiredEUR · USD · JPY · GBP · CHF · AUD · CAD · CNY · HKD · NZD · SEK · NOK · DKK · CZK · HUF · PLN · RON · BGN · TRY · ISK · ILS · INR · IDR · KRW · MYR · PHP · SGD · THB · ZAR · MXN · BRL · RUB · HRK · GRD · CYP · EEK · LTL · LVL · MTL · SIT · SKK · ROL · TRLTarget currency to convert TO (ISO-4217).
amount = 1optional0–Amount of the source currency to convert (default 1).
dateoptionalOptional historical date (YYYY-MM-DD) to convert at; omit for the latest published rate.
Try in playground →
post/currency/v1/historical1 credit

reference rates on a past date (YYYY-MM-DD; weekend/holiday → last working day) since 1999-01-04

ParameterAllowed / rangeDescription
daterequiredReference date (YYYY-MM-DD), since 1999-01-04. A weekend/holiday resolves to the last working day (echoed as requested_date).
base = EURoptionalEUR · USD · JPY · GBP · CHF · AUD · CAD · CNY · HKD · NZD · SEK · NOK · DKK · CZK · HUF · PLN · RON · BGN · TRY · ISK · ILS · INR · IDR · KRW · MYR · PHP · SGD · THB · ZAR · MXN · BRL · RUB · HRK · GRD · CYP · EEK · LTL · LVL · MTL · SIT · SKK · ROL · TRLBase currency the rates are expressed in (ISO-4217). Defaults to EUR. Retired codes (RUB/HRK/legacy euro-joiners) work only for historical dates that predate their discontinuation.
symbolsoptionalOptional comma-separated target currencies to return (e.g. 'USD,GBP,JPY'). Omit to return every currency in the ECB set. Unknown codes are reported under 'unavailable', not rejected.
Try in playground →
post/currency/v1/timeseries2 credits

rates over a date range (working days) for a base → selected/all targets; {date:{CUR:val}}

ParameterAllowed / rangeDescription
startrequiredRange start date (YYYY-MM-DD, inclusive). Only ECB working days inside the range are returned.
endrequiredRange end date (YYYY-MM-DD, inclusive).
base = EURoptionalEUR · USD · JPY · GBP · CHF · AUD · CAD · CNY · HKD · NZD · SEK · NOK · DKK · CZK · HUF · PLN · RON · BGN · TRY · ISK · ILS · INR · IDR · KRW · MYR · PHP · SGD · THB · ZAR · MXN · BRL · RUB · HRK · GRD · CYP · EEK · LTL · LVL · MTL · SIT · SKK · ROL · TRLBase currency the rates are expressed in (ISO-4217). Defaults to EUR. Retired codes (RUB/HRK/legacy euro-joiners) work only for historical dates that predate their discontinuation.
symbolsoptionalOptional comma-separated target currencies to return (e.g. 'USD,GBP,JPY'). Omit to return every currency in the ECB set. Unknown codes are reported under 'unavailable', not rejected.
Try in playground →
post/currency/v1/fluctuation2 credits

per-currency change over a date range: {CUR:{start_rate,end_rate,change,change_pct}} (derived from the range endpoints)

ParameterAllowed / rangeDescription
startrequiredRange start date (YYYY-MM-DD, inclusive). Only ECB working days inside the range are returned.
endrequiredRange end date (YYYY-MM-DD, inclusive).
base = EURoptionalEUR · USD · JPY · GBP · CHF · AUD · CAD · CNY · HKD · NZD · SEK · NOK · DKK · CZK · HUF · PLN · RON · BGN · TRY · ISK · ILS · INR · IDR · KRW · MYR · PHP · SGD · THB · ZAR · MXN · BRL · RUB · HRK · GRD · CYP · EEK · LTL · LVL · MTL · SIT · SKK · ROL · TRLBase currency the rates are expressed in (ISO-4217). Defaults to EUR. Retired codes (RUB/HRK/legacy euro-joiners) work only for historical dates that predate their discontinuation.
symbolsoptionalOptional comma-separated target currencies to return (e.g. 'USD,GBP,JPY'). Omit to return every currency in the ECB set. Unknown codes are reported under 'unavailable', not rejected.
Try in playground →
post/currency/v1/currencies1 credit

the current ECB reference currency set (code → name)

Try in playground →