ParseForge Scrapers

exchangerate.host FX Rates Scraper

parseforge/exchangerate-host-scraper

BusinessDeveloper toolsAutomation

Scrapes live and historical exchange rates from exchangerate.host for any base currency and up to 165+ targets. Returns each rate as a flat row with base, target, value, and timestamp.

Run this scraper See the API call
Total users
2
Monthly active
0
Total runs
114
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

exchangerate.host FX Rates Scraper

Scrape live and historical exchange rates for 165+ currencies from exchangerate.host, up to a million per run. Every rate comes with the base, target, and timestamp. No API key or registration. Export to CSV, JSON, Excel, or XML.

Free FX rate APIs often throttle, require keys, or limit the currencies you can pull in one call. This Actor reads the public exchangerate.host endpoints directly, lets you pick any base currency and filter to specific targets, and returns each rate as a clean row. It works for both the latest live rates and any single historical date.

Who uses it What they scrape exchangerate.host for
Fintech developers Populating a currency conversion table with fresh rates every hour.
E-commerce operators Pulling daily rates to update multi-currency pricing on a store.
Data analysts Building a time series of historical FX rates for backtesting models.
Travel platforms Feeding a fare calculator with the latest exchange rates for 165+ currencies.

What it does

This Actor collects exchange rates from exchangerate.host for a chosen base currency and date, and returns each rate as a flat row.

  • ๐Ÿ’ฑ Latest live rates: pull the most recent exchange rates for your base currency, refreshed throughout the day.
  • ๐Ÿ“… Historical single date: request rates for any past business day by providing a YYYY-MM-DD date.
  • ๐ŸŽฏ Target currency filter: return only the currencies you need, or leave empty to get all 165+ in one run.
  • ๐Ÿ“Š Flat row output: every rate is a single row with base, target, rate value, and timestamp, ready for spreadsheets.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with exchangerate.host data

๐Ÿ’ฑ Keep a multi-currency store up to date.

An e-commerce manager runs the Actor daily with base USD and target EUR, GBP, CAD to update product prices before the morning pricing batch.

๐Ÿ“ˆ Backtest a trading strategy.

A quant pulls historical EUR/USD rates for every business day of 2023, one date per run, and feeds the CSV into a Python backtesting script.

๐Ÿงพ Build an invoice tool.

A freelance developer uses the Actor to fetch the latest GBP to INR rate and embeds it in an invoicing microservice that bills clients in their local currency.

๐ŸŒ Power a travel fare calculator.

A travel startup runs the Actor every hour for base USD against 50 destination currencies, then caches the rates to show live converted prices on search results.

Why choose this scraper

What you get
No API key Reads public endpoints with zero registration or token management.
165+ currencies Covers all ISO 4217 codes the source supports, from majors to exotics.
Latest or historical One Actor handles both live rates and any single past date.
Flat, predictable schema Every run returns the same columns, no nested JSON to unpack.

How it compares

No other Store actor targets exchangerate.host the same way, so the honest comparison is with the alternatives teams actually weigh.

exchangerate.host FX Rates Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When exchangerate.host changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor with a base currency, an optional list of target currencies, and a date for historical mode. Filters run on the API side so only the rates you request land in your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "mode": "latest",
  "baseCurrency": "USD",
  "maxItems": 10
}

A larger pull:

{
  "mode": "latest",
  "baseCurrency": "USD",
  "maxItems": 200
}

Pricing

Pay-per-result: $0.0325 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.25
1,000 results $32.50
10,000 results $325.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the exchangerate.host FX Rates Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to exchangerate.host through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/exchangerate-host-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting an empty dataset?

Check that your base currency is a valid ISO 4217 code and that the target currencies list, if used, contains supported codes. For historical mode, verify the date format is YYYY-MM-DD and the date is not in the far future.

The run failed with an error.

Look at the run log. Common causes are an invalid currency code or a date the source cannot resolve. Try the default USD base with no target filter and latest mode to isolate the issue.

I only got one row but I expected many.

If you set a target currencies filter, the Actor returns only those pairs. Leave the field empty to get all 165+ rates. Also check the maxItems setting is high enough.

The rates look stale.

The Actor returns whatever the exchangerate.host API provides at call time. Rates are typically updated once per business day. Run the Actor during market hours for the freshest data.

Can I get rates for a range of dates?

This Actor handles one date per run. To collect a range, schedule multiple runs with different date inputs, or use Apify's API to loop through dates programmatically.

FAQ

Question Answer
Do I need an API key for exchangerate.host? No. This Actor reads the free public endpoints that do not require authentication. You can start scraping immediately.
How many currencies can I pull in one run? The source supports 165+ ISO 4217 codes. You can return all of them by leaving target currencies empty, or filter to a subset.
Can I get rates for a specific date in the past? Yes. Switch the mode to Historical, set the date field to YYYY-MM-DD, and the Actor will return rates for that day if the source has them.
What base currencies are supported? Any ISO 4217 code the source covers, such as USD, EUR, GBP, JPY, or CHF. The default is USD.
How fresh are the latest live rates? The Actor calls the exchangerate.host latest endpoint directly. Rates are updated by the source throughout the trading day; the Actor returns whatever is current at call time.
Can I schedule this to run every hour? Yes. Use Apify's scheduler to run the Actor on a cron expression, and it will pull fresh rates each time.
What output formats do I get? You can export your dataset to CSV, JSON, Excel, or XML from the Apify run console.
Does this work for cryptocurrency rates? exchangerate.host focuses on fiat currencies. If the source adds crypto pairs, the Actor will return them, but check the source documentation for current coverage.
What happens if I request a date with no data, like a weekend? The source typically returns the last available business day rate. The Actor will pass through whatever the API responds with.
Is there a rate limit? The public exchangerate.host endpoints are rate-limited by the source. The Actor makes one request per run, so normal usage stays well within limits.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by exchangerate.host. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
mode string (2 options) Latest live rates or historical for a specific date latest
baseCurrency string ISO 4217 code (e.g. USD, EUR, GBP). 165+ supported. USD
targetCurrencies array Filter to specific targets. Leave empty to return all 165+ rates. []
date string YYYY-MM-DD (only used in historical mode) not set
maxItems integer How many exchange rates to collect per run. 10

Pricing

from $24.38 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.02438 to $0.0325

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~exchangerate-host-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run exchangerate.host FX Rates Scraper on Apify All scrapers