๐ฑ Currency Exchange Rates โ Real-Time FX Data
Pricing
from $10.00 / 1,000 exchange rates
๐ฑ Currency Exchange Rates โ Real-Time FX Data
Real-time & historical exchange rates for 150+ currencies. Open Exchange Rates, Fixer.io & CurrencyLayer alternative for fintech apps, FX dashboards and international pricing tools. No API key needed. Pay per result.
Pricing
from $10.00 / 1,000 exchange rates
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
3
Monthly active users
5 days ago
Last modified
Categories
Share
๐ฑ Currency Exchange Rates โ Live & Historical FX Reference Rates
Pay-per-result FX data. One dataset row per currency pair, delivered from public central-bank and reference-rate sources. No API key, no monthly plan.
Reference FX data โ not financial, trading, or investment advice.
Pricing (live, as published on the Apify Store)
| Event | Price |
|---|---|
| Actor start | $0.00005 per event (one event per GB of run memory, minimum one) |
| Result โ one exchange rate row | $0.01 per item |
That is $10 per 1,000 rates, or about 100 rates per $1. You are charged per row that lands in your dataset. Runs that fail, and runs that return zero rows because the source had nothing matching your input, deliver no rows and are therefore not charged for results.
Input
| Field | Type | Default | Notes |
|---|---|---|---|
baseCurrency | string | USD | 3-letter ISO 4217 code. Alias: base. |
targetCurrencies | string | "" (all) | Comma-separated codes, e.g. EUR,GBP,JPY. Alias: symbols. |
historical | string | "" (latest) | A single date, YYYY-MM-DD. Alias: date. |
An empty input returns the latest rates against USD โ that is the product's default run.
Output
Five data fields plus a source attribution field:
baseCurrencyโ the base ISO 4217 code you asked fortargetCurrencyโ the quoted ISO 4217 coderateโ units oftargetCurrencyper 1baseCurrencydateโ the source's publication date for that rateinverseRateโ1 / rate, rounded to 6 decimalssourceโ which upstream provider served the row
Data sources and coverage
Rates come from public reference-rate APIs, in this order:
- Frankfurter (ECB reference rates) โ around 30 currencies, with daily history back to 1999 for those currencies. Used for both latest and historical requests.
- open.er-api.com (ExchangeRate-API open endpoint) โ around 160 currencies, latest rates only. Used as a fallback when Frankfurter is unavailable, and only for latest-rate requests.
What that means in practice:
- Historical requests are served by the ECB series only, so they cover the ~30 ECB currencies and no earlier than 1999. A date outside that range returns zero rows with an explanatory status message, and is not charged.
- Rates are mid-market reference rates. There is no bid/ask spread in the data, because the sources do not publish one.
- Cryptocurrencies are not covered. Neither source publishes crypto rates.
- Only one date per run. There is no multi-date time-series mode.
Quick start
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("nexgendata/currency-exchange-rates").call(run_input={"baseCurrency": "USD","targetCurrencies": "EUR,GBP,JPY,CAD",})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["baseCurrency"], row["targetCurrency"], row["rate"], row["date"])
Historical (one date per run):
run = client.actor("nexgendata/currency-exchange-rates").call(run_input={"baseCurrency": "USD","targetCurrencies": "EUR","historical": "2026-01-15",})
Use cases
- Accounting / ERP โ daily mid-rate sync into NetSuite, Xero, QuickBooks
- E-commerce โ display prices in a shopper's local currency
- Treasury โ mark multi-currency balances to a published reference rate
- International invoicing โ convert at the booking-day ECB rate
- Backtesting โ pull a booking-date rate for a historical transaction
Run behaviour
- If the upstream sources answer but hold nothing matching your input (an unknown currency code, or a date outside the published series), the run succeeds with 0 rows and the status message says why. Nothing is charged for results.
- If every source is unreachable or returns an error after retries, the run fails with a status message naming the cause. Nothing is charged for results.
- If the run hits its time limit part-way through, it stops cleanly, says "stopped early at the run time limit", and only the rows actually delivered are charged.
FAQ
How fresh are the rates? ECB reference rates publish once per business day (around 16:00 CET). Weekend and holiday requests return the last published business-day rate. The fallback source updates roughly daily.
Which currencies? ~30 for historical and for the primary source; ~160 for
latest rates when the fallback source is used. Run with an empty
targetCurrencies to see the full list the source returns that day.
Bid/ask or mid? Mid-market reference rates only.
Crypto? Not supported.
Output formats? Whatever the Apify dataset supports โ JSON, JSONL, CSV, Excel, XML.
Rate limits? The upstream sources are public and may throttle. The actor retries across both sources and, if neither answers, fails loudly rather than returning a silent empty result.
Related NexGenData actors
| Use case | Actor |
|---|---|
| FX with central-bank fixings | FX Rates Tracker |
| Finance data for LLM agents | Finance MCP Server |
| Commodity futures | Commodity Futures Tracker |
| Treasury yields and bonds | Treasury Yields & Bonds |
| Equity quotes + fundamentals | Yahoo Finance Scraper |
Support
Bug reports via the Apify console issues tab get a response within 24 hours.
๐ thenextgennexus.com ยท ๐ฆ apify.com/nexgendata