Exchange Rate & Currency Data Scraper
Pricing
from $1.50 / 1,000 results
Exchange Rate & Currency Data Scraper
Get real-time and historical exchange rates for 160+ currencies powered by ECB data. Latest rates with auto failover, historical lookups, and time series analysis. No API key needed. For e-commerce, forex, and financial dashboards.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
cloud9
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
17 hours ago
Last modified
Categories
Share
Get real-time and historical exchange rates for 160+ currencies powered by ECB data. Latest rates with auto failover, historical lookups, and time series analysis. No API key needed. For e-commerce, forex, and financial dashboards.
The dataset holds two row shapes depending on mode.
latestandhistoricalreturn one row per run with a nestedratesobject;timeSeriesreturns one flat row per date and currency (base,date,currency,rate). Billing is per row, sotimeSeriescosts more than the other two modes.
Use cases
- Convert multi-currency e-commerce revenue into one reporting currency
- Refresh product prices daily in international storefronts
- Backfill historical FX rates for accounting reconciliation
- Chart currency trends over a custom date range
- Add live FX conversion to invoices or dashboards
Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mode | string | Yes | "latest" | Scraping mode: latest rates, historical rates for a specific date, or time series over a date range Allowed: latest, historical, timeSeries. |
baseCurrency | string | No | "USD" | Base currency code (e.g., USD, EUR, JPY) |
targetCurrencies | string | No | "EUR,JPY,GBP" | Comma-separated target currency codes to include (e.g., EUR,JPY,GBP). Leave empty to include all available currencies. |
date | string | No | "2024-01-01" | Date for historical mode (YYYY-MM-DD format) |
startDate | string | No | "2024-01-01" | Start date for time series mode (YYYY-MM-DD format) |
endDate | string | No | "2024-12-31" | End date for time series mode (YYYY-MM-DD format) |
Example input
{"mode": "latest","baseCurrency": "USD","targetCurrencies": "EUR,JPY,GBP","date": "2024-01-01","startDate": "2024-01-01","endDate": "2024-12-31"}
Output
The exact fields depend on the mode you run. This is real output from an actual run of this Actor:
{"base": "USD","date": "2026-09-09","rates": {"EUR": 0.860279,"JPY": 153.817506,"GBP": 0.738452},"provider": "open.er-api.com","scrapedAt": "2026-09-09T13:18:01.568Z"}
| Field | Type |
|---|---|
base | string |
date | string |
rates | object |
provider | string |
scrapedAt | string |
The dataset also ships a preset table view (Rates), so the key columns are readable straight away in Apify Console, and exportable to JSON, CSV, Excel, or XML.
How to run it
In Apify Console — open the Actor, fill in the input form, click Start, then download the results from the Dataset tab.
With the JavaScript client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('cloud9_ai/exchange-rate-scraper').call({"mode": "latest","baseCurrency": "USD","targetCurrencies": "EUR,JPY,GBP","date": "2024-01-01","startDate": "2024-01-01","endDate": "2024-12-31"});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
With the Python client
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('cloud9_ai/exchange-rate-scraper').call(run_input={"mode": "latest","baseCurrency": "USD","targetCurrencies": "EUR,JPY,GBP","date": "2024-01-01","startDate": "2024-01-01","endDate": "2024-12-31"})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
With the API — POST https://api.apify.com/v2/acts/cloud9_ai~exchange-rate-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN with the input JSON as the body.
Notes and limits
- No API key, account, or login is needed — just the input above.
- Requests are paced and failed requests are retried automatically, so runs stay inside the source's rate limits.
- Only publicly available data is collected. How you use the output is your responsibility, including the source's terms of use and any applicable data-protection law.
Support
Found a bug, or need a field that isn't in the output? Open an issue on the Issues tab of this Actor in Apify Console. Issues there are read and answered.
License
Apache-2.0