Currency Exchange Rates Scraper - Live & Historical FX by Date avatar

Currency Exchange Rates Scraper - Live & Historical FX by Date

Pricing

from $0.90 / 1,000 results

Go to Apify Store
Currency Exchange Rates Scraper - Live & Historical FX by Date

Currency Exchange Rates Scraper - Live & Historical FX by Date

$0.9/1K πŸ”₯ Fast currency exchange scraper! Live & historical FX rates for 30+ currencies. No key needed. JSON, CSV, Excel or API in seconds. Enter currency pairs & pull thousands of rates for finance & billing ⚑

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

ninhothedev

ninhothedev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Currency Exchange Rates Scraper (multi-source: Frankfurter + ECB)

Get clean live & historical currency exchange rates: latest rates, single-day historical, and full time-series across 30+ currencies (ECB reference rates). As JSON, CSV or Excel. Free, no API key, no proxy.

Multi-source by design. Rates are fetched through a host fallback chain (Frankfurter β†’ ECB) and the first host that answers wins, so an outage at any single provider no longer fails your run. See Data sources & reliability.

πŸ’΅ Pricing

Pay per result β€” $0.0003 per item (~$0.30 / 1,000). No subscription, no proxy needed. You only pay for the data you scrape, and new Apify accounts include free monthly credits so you can test it for $0.

πŸ”Ž What can it extract?

  • Latest exchange rates for any base currency
  • Historical rates on any single past day
  • Time-series of rates across a date range (one series per currency)
  • 30+ currencies (USD, EUR, GBP, JPY, CHF, AUD, CAD, CNY, …)
  • Powered by European Central Bank (ECB) reference rates, reached through four independent hosts with automatic failover
  • A source field on every row telling you which host served it

πŸš€ How do I use it?

  1. Click Try for free.
  2. Choose a mode (latest / historical / timeseries) and set the input (see examples below).
  3. Click Start and download results as JSON, CSV or Excel β€” or pull them via the API / schedule them daily.

βš™οΈ Input examples

Latest USD rates for EUR, GBP, JPY:

{
"mode": "latest",
"base": "USD",
"symbols": ["EUR", "GBP", "JPY"]
}

Historical (single day):

{
"mode": "historical",
"base": "EUR",
"symbols": ["USD"],
"date": "2024-01-02"
}

Time-series (date range):

{
"mode": "timeseries",
"base": "USD",
"symbols": ["EUR", "GBP"],
"startDate": "2024-01-01",
"endDate": "2024-01-31"
}

πŸ“¦ Output examples

latest / historical β€” one item per target currency:

{
"base": "USD",
"target": "EUR",
"rate": 0.87673,
"amount": 1.0,
"date": "2026-06-29",
"source": "frankfurter-dev",
"scraped_at": "2026-06-30T08:30:00+00:00"
}

timeseries β€” one item per currency, with a series[] array:

{
"base": "USD",
"target": "EUR",
"start_date": "2024-01-01",
"end_date": "2024-01-31",
"series": [
{ "date": "2024-01-02", "rate": 0.91274 },
{ "date": "2024-01-03", "rate": 0.91583 }
],
"scraped_at": "2026-06-30T08:30:00+00:00"
}

🎯 Use cases

  • Ecommerce pricing β€” convert and localize prices, keep multi-currency catalogs in sync
  • Finance β€” monitor FX movements, build dashboards and alerts
  • Accounting β€” book invoices and expenses at the correct daily rate
  • Analytics β€” feed clean rate time-series into BI tools, models and reports

πŸ”Œ Data sources & reliability

Every row carries a source field naming the host that actually answered.

What happened (and what was fixed)

api.frankfurter.dev sits behind Cloudflare and began returning HTTP 522 (origin connection timed out) to datacenter IP ranges, including Apify's runners, while still serving 200 to residential connections. A 522 is an edge-to-origin failure, so retrying the same host does not help.

The fix is a host fallback chain, not a proxy. The same ECB reference rates are published by several independent hosts, so the actor walks them in order and uses the first that answers:

#HostsourceNotes
1api.frankfurter.devfrankfurter-devcanonical Frankfurter host
2api.frankfurter.appfrankfurter-applegacy host; terminates on a different Cloudflare edge, so it can succeed when #1's edge is failing
3data-api.ecb.europa.euecb-sdmxthe ECB SDMX API β€” the original source Frankfurter republishes, with no Cloudflare in front
4ecb.europa.eu/.../eurofxref-daily.xmlecb-xmlECB daily reference XML (latest mode only)

Which host won is logged on every run, and if all four fail the run fails loudly with each host's actual HTTP status rather than returning an empty dataset.

One schema, whichever host answers

The ECB tiers publish EUR-denominated rates only. Rather than pushing a different shape, the actor performs the cross-rate rebasing locally β€” rate(base β†’ target) = eurRate(target) / eurRate(base) β€” so an ECB-served row is byte-identical in structure to a Frankfurter-served one and your base currency keeps working. Verified live: for USD β†’ EUR/GBP/JPY the Frankfurter and ECB paths agree to within Frankfurter's own 5-decimal rounding.

How this differs from ecb-exchange-rates-scraper

The account also ships ECB Exchange Rates Scraper, which is a straight mirror of the ECB's published EUR reference rates. This actor is the multi-source convenience tool, and stays that way:

This actorecb-exchange-rates-scraper
Base currencyany (cross-rates computed for you)EUR only
Modeslatest, historical single day, time-series rangeslatest reference rates
Hosts4, with automatic failoverECB only
Best forapps, billing and analytics that need arbitrary pairs and rangesa faithful, single-source ECB mirror

The ECB hosts are a resilience tier here, not the product.

πŸ’° How much will it cost?

You pay only the per-result price (no proxy cost): 100 β†’ ~$0.03 Β· 1,000 β†’ ~$0.30 Β· 10,000 β†’ ~$3

πŸ†š Why this one

FeatureThis actorOthers
Latest + historical + time-seriesβœ…latest only
Multi-host failover (survives a provider outage)βœ…βŒ
Any base currency (cross-rates computed)βœ…EUR/USD only
30+ ECB reference currenciesβœ…partial
No API key, no proxyβœ…sometimes
Pay per result, free to testβœ…subscription

❓ FAQ

API key or proxy? No β€” neither is needed. Which rates? ECB reference rates, fetched via Frankfurter with automatic failover to the ECB's own API. What is the source field? The host that served that row. What if a provider is down? The actor tries the next host automatically; it only fails if all four are unreachable. Weekends/holidays? ECB does not publish on those days; the API returns the most recent working-day rate. All currencies? Leave symbols empty to get every available currency.

πŸ›Ÿ Support

Found a bug or need an extra field? Open an issue on the actor β€” fixes and new fields ship fast.

Data via the free Frankfurter API and the European Central Bank's public SDMX API and daily reference XML. All are ECB reference rates. No personal data is collected.


Keywords: currency scraper, exchange rates, forex, fx rates, currency converter, historical exchange rates, ECB rates, frankfurter, multi-source failover, ecommerce pricing, finance, accounting, analytics, JSON CSV Excel