Frankfurter FX Rates Scraper avatar

Frankfurter FX Rates Scraper

Pricing

from $30.00 / 1,000 results

Go to Apify Store
Frankfurter FX Rates Scraper

Frankfurter FX Rates Scraper

Scrape currency exchange rates from Frankfurter open API. Latest rates, historical rates, and time-series for 30+ currencies sourced from the European Central Bank. No API key required.

Pricing

from $30.00 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

ParseForge Banner

💱 Frankfurter FX Rates Scraper

🚀 Pull European Central Bank reference exchange rates in seconds. Filter by base currency, target currencies, single date, or full historical time series. No API key, no registration, no manual CSV wrangling.

🕒 Last updated: 2026-05-12 · 📊 8 fields per record · 30+ currencies sourced from the ECB · Daily refresh on banking days · History back to 1999-01-04

The Frankfurter FX Rates Scraper extracts foreign exchange data from the Frankfurter open API, a free service that mirrors the European Central Bank reference rates published every working day. You can pull the latest rate for any supported pair, look up a specific historical date, or stream a full time series between two dates. The actor handles base currency conversion, target symbol filtering, and weekend or holiday gaps gracefully by clamping requests to the ECB earliest publication date of 1999-01-04.

Every record is a flat JSON object with the rate, its inverse, a timestamp, ISO currency codes, and the human-readable currency names (for example United States Dollar, Australian Dollar). When the requested item count exceeds the daily currency count, the actor auto-promotes a latest request to a timeseries request so you always get the rows you asked for. The result is a clean, predictable feed ready to push into a database, BI tool, AI agent, or downstream conversion pipeline.

🎯 Target audience💼 Primary use cases
Fintech and treasury teamsDaily FX rate ingestion for accounting and reporting
Quant and analytics teamsHistorical back-testing across multi-year currency series
SaaS pricing and billingMulti-currency price localization and conversion
Travel and e-commerceReal-time checkout currency conversion
Data journalists and researchersLong-horizon studies of currency movements

📋 What the Frankfurter FX Rates Scraper does

  • 🗓️ Three modes for any time horizon. Choose latest, historical (single date), or timeseries (date range) and let the actor build the correct API path.
  • 💵 Base currency selection. Pivot any of the 30+ supported codes as the base, with full ISO 4217 enum coverage in the input schema.
  • 🎯 Target currency filtering. Pass a short list like USD, GBP, JPY to return only the rows you need, or leave it empty for every available currency.
  • 🔁 Inverse rate computed for you. Each record includes inverseRate rounded to eight decimal places, so you never need a second calculation step.
  • 📈 Smart auto-promotion. If you ask for more rows than the latest snapshot can supply, the scraper switches to a multi-day series and clamps to the ECB earliest date.
  • 🌍 Dynamic currency discovery. The actor reads the live currency list from Frankfurter at runtime, so newly added currencies are picked up automatically.

Each record carries the trade date, base and target codes, full currency names, the rate, the inverse rate, and the scrapedAt timestamp. The schema stays the same across all three modes, which makes it simple to union historical and live data in the same table.

💡 Why it matters: Reliable FX data is a building block for invoicing, financial reporting, portfolio analytics, and any product that displays prices in multiple currencies. By tapping the ECB reference set through Frankfurter, you get an authoritative, free, and license-friendly feed without locking yourself into a paid API contract.


🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing how to configure a base currency, select targets, run a time-series pull, and route results into Google Sheets.


⚙️ Input

FieldTypeDescription
modeenumOne of latest, historical, or timeseries. Default latest.
baseCurrencyenumBase ISO code. 31 supported codes including EUR, USD, GBP, JPY, CHF. Default EUR.
targetCurrenciesarrayOptional list of target ISO codes. Leave empty for all available currencies.
datestringSingle date in YYYY-MM-DD format. Only used in historical mode.
startDatestringRange start in YYYY-MM-DD. Only used in timeseries mode.
endDatestringRange end in YYYY-MM-DD. Only used in timeseries mode.
maxItemsintegerFree users 10, paid users up to 1,000,000.

Example: latest USD to a short list of targets.

{
"mode": "latest",
"baseCurrency": "USD",
"targetCurrencies": ["EUR", "GBP", "JPY", "CHF"],
"maxItems": 10
}

Example: full 2024 time series for EUR to USD.

{
"mode": "timeseries",
"baseCurrency": "EUR",
"targetCurrencies": ["USD"],
"startDate": "2024-01-01",
"endDate": "2024-12-31",
"maxItems": 1000
}

⚠️ Good to Know: Frankfurter mirrors ECB publication, so rates are only updated on banking days. Weekend and holiday requests return the most recent business-day rate. Historical coverage starts on 1999-01-04 (the launch of the euro reference series).


📊 Output

Each record is a flat JSON object with the fields below.

🧾 Schema

FieldTypeExample
📅 datestring2026-05-12
💵 baseCurrencystringUSD
🏷️ baseCurrencyNamestringUnited States Dollar
🎯 targetCurrencystringAUD
🏷️ targetCurrencyNamestringAustralian Dollar
📈 ratenumber1.3846
📉 inverseRatenumber0.72223025
⏱️ scrapedAtstring2026-05-12T16:29:54.177Z

📦 Sample records


✨ Why choose this Actor

Capability
🆓No API key. The Frankfurter source is open and free, and this actor inherits that.
🏦Authoritative source. Numbers come from the European Central Bank reference set.
🕰️Deep history. Daily rates from 1999-01-04 to today, in a single uniform schema.
🔁Inverse rate included. No second calculation step for reverse pairs.
🎚️Three modes, one schema. latest, historical, and timeseries share the same record shape.
🌐Dynamic currency list. New currencies added by the ECB appear automatically.
🔌Integrates everywhere. Pipe to Sheets, Airtable, Slack, BigQuery, Snowflake, or your AI agent.

📊 31 currencies, 6,800+ banking days of history, 1 free actor.


📈 How it compares to alternatives

ApproachCostCoverageRefreshFiltersSetup
⭐ Frankfurter FX Rates Scraper (this Actor)Free tier available30+ ECB currencies, 1999-todayDaily on banking daysBase, target, date, rangeOne JSON input
Paid live FX APIs$50-500 per monthOften broader, includes cryptoSub-second to dailyPer-vendor SDKAccount, key, SDK
Official bank publicationsFreePer-issuer, fragmentedDailyManualBrowser or PDF parsing
Legacy community dumpsFreeStale snapshotsNoneNoneCSV download

For finance teams that need ECB reference rates without contract overhead, this actor is the shortest path from request to row.


🚀 How to use

  1. 🔐 Create a free Apify account. Sign up at Apify and claim the $5 starter credit.
  2. 🎚️ Open the actor and pick a mode. Choose latest for a snapshot, historical for one date, or timeseries for a range.
  3. 💱 Set the currencies. Pick a base, then add optional target codes or leave the list empty for all 30+.
  4. ▶️ Run it. Free users get a 10-row preview, paid users can pull up to 1,000,000 records per run.
  5. 📤 Export. Download JSON, CSV, or Excel, or push results into Google Sheets, Airtable, Slack, Notion, or a database via Apify integrations.

⏱️ Total time from sign-up to first dataset: about 90 seconds.


💼 Business use cases

🏦 Finance and treasury

  • Daily FX reference rate ingestion for ledgers
  • End-of-period revaluation of foreign-currency balances
  • Hedging analytics on multi-year time series
  • Audit trails with timestamped, sourced records

🛒 E-commerce and SaaS

  • Multi-currency checkout and pricing
  • Currency-aware invoicing for international customers
  • Localized subscription tiers and trials
  • Real-time conversion widgets on product pages

📊 Analytics and BI

  • Time-series dashboards across currency pairs
  • Quant research on macro currency cycles
  • Volatility and correlation studies between pairs
  • Backfill of finance data warehouses

✈️ Travel and remittance

  • Currency converter features in apps
  • Cross-border fee calculators
  • Trip budgeting tools with daily rate refreshes
  • Display rates for travel comparison sites

🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

🎓 Research and academia

  • Empirical datasets for papers, thesis work, and coursework
  • Longitudinal studies tracking changes across snapshots
  • Reproducible research with cited, versioned data pulls
  • Classroom exercises on data analysis and ethical scraping

🎨 Personal and creative

  • Side projects, portfolio demos, and indie app launches
  • Data visualizations, dashboards, and infographics
  • Content research for bloggers, YouTubers, and podcasters
  • Hobbyist collections and personal trackers

🤝 Non-profit and civic

  • Transparency reporting and accountability projects
  • Advocacy campaigns backed by public-interest data
  • Community-run databases for local issues
  • Investigative journalism on public records

🧪 Experimentation

  • Prototype AI and machine-learning pipelines with real data
  • Validate product-market hypotheses before engineering spend
  • Train small domain-specific models on niche corpora
  • Test dashboard concepts with live input

🔌 Automating Frankfurter FX Rates Scraper

Drive this actor from your own stack with a few lines of code.

Schedules let you run the actor every banking day, every hour, or any cron pattern you need. Pair a daily schedule with a webhook to land each run straight into your warehouse.


❓ Frequently Asked Questions

💰 Is there a cost to run this Actor?

The actor itself is free to use on Apify. You pay only for the platform compute and storage you consume during a run. New accounts come with $5 of starter credit, which covers many small runs.

🔑 Do I need a Frankfurter API key?

No. The Frankfurter service is fully open and unauthenticated. The actor reaches the upstream directly with no key, token, or registration step.

📅 How far back does the history go?

The European Central Bank reference series starts on 1999-01-04. The actor clamps earlier requests to that date and logs a warning so you do not silently miss rows.

🕒 How often are rates updated?

The ECB publishes reference rates around 16:00 CET on banking days. Weekends and ECB holidays return the most recent business-day value rather than a new rate.

💱 Which currencies are supported?

Around 31 currencies including EUR, USD, GBP, JPY, CHF, AUD, CAD, CNY, INR, BRL, MXN, SEK, NOK, DKK, PLN, HUF, CZK, RON, TRY, ZAR, HKD, SGD, KRW, THB, ILS, PHP, MYR, IDR, NZD, ISK, BGN. The list is fetched live at runtime, so any new code added upstream appears automatically.

🤝 Can I use this Actor for commercial use?

Yes. The data is public reference data from the ECB. You are responsible for following the upstream terms and any local rules that apply to your use of currency information.

💳 Do I need a paid Apify plan?

A paid plan is not required. Free accounts can preview up to 10 rows per run. Paid plans unlock up to 1,000,000 rows per run plus larger storage and compute budgets.

🆘 What if a run fails?

Open the run in the Apify console to inspect the log, the input, and any partial dataset. Network errors, upstream rate limits, and invalid date ranges are surfaced as error items in the dataset rather than as silent crashes.

Currency reference rates published by central banks are public information. This actor accesses the open Frankfurter API only, so the data flow is the same one any browser or curl request would produce. Compliance with the source terms and local law remains your responsibility.

🔄 What is the difference between latest, historical, and timeseries?

latest returns the most recent published rates for one date. historical returns rates for a single date you supply. timeseries returns rates for every banking day in a range. All three modes share the same record schema.

🧪 Can I limit the run to a few currencies?

Yes. Set targetCurrencies to a short list like ["USD", "GBP", "JPY"]. The base currency is set separately and is not included in the output rows.


🔌 Integrate with any app

Stream results into the tools your team already uses.

  • Make - low-code automation across thousands of apps
  • Zapier - trigger and route data into 6,000+ services
  • n8n - self-hosted workflow runner with native Apify support
  • Slack - notifications when runs complete or hit anomalies
  • Google Sheets - one-click dataset to spreadsheet sync
  • BigQuery and Snowflake - warehouse loads via webhook or schedule

💡 Pro Tip: browse the complete ParseForge collection for more data feeds across finance, research, and developer ecosystems.


🆘 Need Help? Open our contact form and a human will reply within one business day.


This Actor accesses publicly available data only. By using it you accept the responsibility to comply with the source's Terms of Service, rate limits, and applicable laws including data-protection regulations. The data is scraped on-demand from the upstream public API and is not cached or pre-stored by this Actor.