ECB Currency Exchange Rates Scraper, Daily and Historical FX avatar

ECB Currency Exchange Rates Scraper, Daily and Historical FX

Pricing

from $5.00 / 1,000 results

Go to Apify Store
ECB Currency Exchange Rates Scraper, Daily and Historical FX

ECB Currency Exchange Rates Scraper, Daily and Historical FX

Get daily and historical foreign exchange rates from ECB reference feeds, filtered by base currency, target currencies and date range, priced per result.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

M Usama

M Usama

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

What does ECB Currency Exchange Rates Scraper do?

It returns daily and historical foreign exchange rates published by the European Central Bank (via the open Frankfurter API), one record per date and currency pair. Each record has the rate, the inverse rate, the previous business day rate and the percent change. Filter by base currency, target currencies and date range so runs stay small. Pricing is per result.

Data source

Public JSON from the Frankfurter API (api.frankfurter.dev), which republishes ECB euro foreign exchange reference rates and other central bank feeds; rates update once per business day around 16:00 CET.

Why use it?

  • Convert invoices, prices or ledgers at the official rate for a given day.
  • Feed a dashboard or spreadsheet with a daily FX series through a Schedule.
  • Backtest or research currency moves with a clean, deduplicated history.
  • Replace manual downloads of ECB files and stale exports.

How to use it

  1. Open the Actor and set the filters.
  2. Click Start. Download results as JSON, CSV or Excel, or read them through the API.
  3. Add a Schedule and an Integration (Slack, Google Sheets, webhook) to get new records automatically.

Input

FieldDescription
baseCurrencyISO code to convert from. Default EUR.
targetCurrenciesList of ISO codes to return. Empty returns every available currency.
dateFromFirst day, YYYY-MM-DD. Empty means 14 days before dateTo.
dateToLast day, YYYY-MM-DD. Empty means today (latest published rate).
maxResultsHard stop for the run. You are billed per result, so this caps the cost.
proxyConfigurationApify proxy is optional, the API does not need it.

Example input:

{ "baseCurrency": "EUR", "targetCurrencies": ["USD", "GBP", "JPY"], "dateFrom": "2026-09-01", "dateTo": "2026-09-30" }

Output

Every record has the same shape:

{
"id": "2026-10-13:EUR:AUD",
"date": "2026-10-13",
"base": "EUR",
"quote": "AUD",
"pair": "EUR/AUD",
"rate": 1.6033,
"inverseRate": 0.62371359,
"previousDate": "2026-10-12",
"previousRate": 1.6032,
"changePct": 0.0062,
"source": "Frankfurter (ECB reference rates)",
"scrapedAt": "2026-10-14T08:26:12.461Z"
}
FieldMeaning
idStable key (date:base:quote), safe for deduplication between runs
rateUnits of quote per one unit of base
inverseRateUnits of base per one unit of quote
previousRate, previousDateRate on the prior business day in the data
changePctPercent change versus previousRate

Pricing

Pay per event: a small fee when a run starts, then a fixed price per result returned. You only pay for records that pass your filters. Set maxResults to cap any run.

Limitations

  • Business days only. Weekends and ECB holidays have no rate.
  • Roughly 30 currencies are published, and history starts in 1999 for most of them.
  • Reference rates, not tradable bid or ask quotes.

FAQ

Is this legal? The Actor reads public data the source publishes for any visitor without a login. You are responsible for how you use the data.

Something is missing or broken? Open an issue in the Issues tab; response time is usually under a day.