exchangerate.host FX Rates Scraper
Pricing
from $24.38 / 1,000 results
exchangerate.host FX Rates Scraper
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.
Pricing
from $24.38 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
0
Monthly active users
14 days ago
Last modified
Categories
Share
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
- Create a free Apify account with $5 in credit.
- Open the exchangerate.host FX Rates Scraper.
- Set your inputs and any filters, then click Start.
- 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.
