Currency Rates Scraper — Live & Historical Exchange Rates, FX
Pricing
from $0.14 / 1,000 rates
Currency Rates Scraper — Live & Historical Exchange Rates, FX
Currency exchange rates without an API key: today's rates for 165 currencies, or the European Central Bank's daily series back to 1999 — one row per pair per day, week, month or year, with the inverse rate, a converted amount and the move in percent. CSV/JSON export and API.
Pricing
from $0.14 / 1,000 rates
Rating
0.0
(0)
Developer
Chorelet
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Exchange rates for any pair, today or any day since 1999 — without an API key. Ask for USD → EUR, GBP, JPY and get one row per pair with the rate, the inverse rate, a converted amount and the move in percent. Ask for a date range and get the same row for every day the rate was published, ready for a chart, a model or an invoice.
Two sources, picked for you: the European Central Bank's reference rates (29 currencies, every business day back to 4 January 1999 — the series the euro started with) and an open global feed of 165 currencies for today's rates, including the ones the ECB never publishes: lari, hryvnia, naira, dirham, peso.
Daily rows are the raw series; weekly, monthly and yearly collapse it into one row per period with that period's open, high, low and average.
No key, no account, no login.
Why this Actor
- Today and 1999 in the same Actor. Most rate scrapers give you a snapshot; this one also returns the ECB's full daily series — about 7,100 days per pair — in a single request.
- Weekly, monthly and yearly rows with open, high, low and average, so a decade of a pair is 130 rows instead of 2,800.
- 165 currencies, not just the majors: the open global feed covers lari, hryvnia, naira, dirham and the rest, and the Actor switches to it on its own when you ask for one.
- No key and no account — the European Central Bank's published rates and an open feed, both free to use commercially.
Sample output
One item of the dataset (long values shortened):
{"date": "2026-09-07","pair": "USD/EUR","rate": 0.86044,"inverseRate": 1.1621960857,"converted": 0.86044,"changePct": 0,"quoteName": "Euro","source": "ecb"}
What you get
- The whole series in one run: 27 years of daily rates for a pair arrive in a single request, roughly 7,100 rows, and nothing is paged or rate-limited
- One row per pair per day:
date,pair,rate,inverseRate,converted,changePct— the shape a spreadsheet, a chart or a database expects - Periods, not just days: weekly, monthly and yearly rows carry
open,high,low,averageand how many trading days went into them - Conversion at full precision — the amount is multiplied out of the unrounded rate, not read off an API that rounds to five digits
- The currencies the ECB retired are still there for the days they existed: drachma, Cypriot pound, tolar, kroon, litas — useful for anything that reaches back past the euro
- Both currency names on every row, so a CSV reads without a lookup table
Input example
{"baseCurrencies": ["USD","EUR"],"quoteCurrencies": ["EUR","GBP","JPY"],"interval": "daily","amount": 1,"source": "auto","maxRows": 10000}
How much does it cost?
Pay per rate — no subscription, no minimum, no charge for platform usage.
| Volume | Price |
|---|---|
| 1,000 rates | $0.20 |
| 10,000 rates | $2.00 |
| 100,000 rates | $20.00 |
The Apify free plan includes $5 of usage every month — about 25,000 rates with this Actor, no card needed. Nothing else is charged: platform usage is included in the price, and Apify Bronze, Silver and Gold subscribers get 10%, 20% and 30% off these prices.
Use it from code, n8n, Make, Zapier or an AI agent
Run the Actor and download the dataset in one call (JSON by default; add &format=csv or xlsx):
curl -X POST "https://api.apify.com/v2/acts/chorelet~currency-rates-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"baseCurrencies": ["USD", "EUR"], "quoteCurrencies": ["EUR", "GBP", "JPY"], "interval": "daily", "amount": 1, "source": "auto", "maxRows": 10000}'
Python:
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("chorelet/currency-rates-scraper").call(run_input={"baseCurrencies": ["USD", "EUR"], "quoteCurrencies": ["EUR", "GBP", "JPY"], "interval": "daily", "amount": 1, "source": "auto", "maxRows": 10000})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
- n8n, Make, Zapier — use the Apify node/module: run the Actor, then "get dataset items".
- Google Sheets, Slack, webhooks — add an integration on the run's Integrations tab.
- AI agents — the Actor is available as a tool through the Apify MCP server; the dataset schema describes every field for the model.
- Schedules — run it hourly, daily or weekly from the Schedules tab.
FAQ
Do I need an API key?
No. The rates come from the ECB's published reference rates (through the Frankfurter API) and from exchangerate-api's open endpoint. Neither needs a key or an account.
How far back does the history go?
To 4 January 1999, the first day the ECB published euro reference rates. One request covers the whole span: 1999 to today for one pair is about 7,100 rows.
Why is there no row for a Saturday?
The ECB publishes on working days only, around 16:00 CET. Ask for a weekend or a holiday and you get the rate in force on that day — the one set on the previous working day.
Which source is used?
auto takes the ECB whenever you ask for dates or when every currency you listed is one it publishes, and the global feed otherwise. The log says which was chosen, and every row carries a source column. You can also force either one.
Can it convert an amount?
Yes — set Amount to convert and every row gets a converted column. The multiplication happens on the unrounded rate, so 100 USD comes out as 75.753 GBP where an API that rounds first says 75.751.
Can I get rates for the euro's predecessors?
Yes, for the days they existed: ask for GRD, CYP, SIT, EEK, LTL, LVL, MTL, SKK or ROL with a date range inside their lifetime.
Is it suitable for trading?
It is end-of-day reference data, not a live tick feed: the ECB publishes once per working day and the global feed updates daily. For accounting, invoicing, reporting and research it is exactly the right source — it is what auditors and tax offices accept.
Support
Questions, missing fields or a source that changed? Open an issue on the Issues tab or write to support@chorelet.app — problems are usually fixed within a day, and the Actor is checked every morning by an automated test run. If the Actor saved you time, a short review on its Store page helps other people find it.