Currency Exchange Rates Scraper avatar

Currency Exchange Rates Scraper

Pricing

from $6.80 / 1,000 results

Go to Apify Store
Currency Exchange Rates Scraper

Currency Exchange Rates Scraper

Scrape live foreign exchange rates for any base currency against 160+ world currencies. Each record has base currency, target currency, rate and last update time. Export to JSON, CSV or Excel.

Pricing

from $6.80 / 1,000 results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Currency Exchange Rates Scraper

Currency Exchange Rates Scraper

Here is one real result, with every field the actor returns:

{
"baseCurrency": "USD",
"targetCurrency": "AED",
"rate": 3.6725,
"inverseRate": 0.272294,
"lastUpdated": "Mon, 10 Aug 2026 00:02:31 +0000",
"lastUpdatedUnix": 1786320151,
"nextUpdate": "Tue, 11 Aug 2026 00:23:41 +0000",
"source": "Exchange Rates",
"observedAt": "2026-08-10T14:28:25.371Z"
}

The most complete currency exchange rate scraper available. It returns one row per currency pair against your chosen base, with the rate, the precomputed inverse rate, and the exact source update timestamps, so you can drop the data straight into a spreadsheet or database without extra math.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor fetches the latest exchange rates for the base currency you pass and writes one normalized record per currency pair to the run's dataset. Each record carries the base and target currency, the rate, a precomputed inverse rate, and the source's last-updated and next-update timestamps. Missing source values are returned as null and never invented.

Coverage spans 160+ world currencies. The base currency is fully configurable, so you can pull rates from USD, EUR, GBP or any supported currency.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the first 10 currency rates against the US dollar.

{
"baseCurrency": "USD",
"maxRates": 10
}

Change baseCurrency to convert from any supported currency. Free plans return up to 10 rates per run; raise maxRates on a paid plan to pull the full currency table.

Input reference

FieldTypeRequiredDefaultDescription
baseCurrencystringnoUSDThree-letter base currency code to convert from, for example USD, EUR, GBP, JPY.
maxRatesintegerno10Maximum number of currency rates to collect. Free Apify plans are capped at 10 per run. Raise it to pull the full table (160+).

Output reference

One dataset item per currency pair. Types: string, number, integer, or null when the source value is absent.

FieldTypeDescription
baseCurrencystringThe base currency the rate converts from.
targetCurrencystringThe target currency the rate converts to.
ratenumberUnits of targetCurrency per 1 unit of baseCurrency.
inverseRatenumberUnits of baseCurrency per 1 unit of targetCurrency (1 / rate, 6 decimals), or null when rate is zero.
lastUpdatedstringSource last-update time (RFC 1123 string).
lastUpdatedUnixintegerSource last-update time as a Unix timestamp.
nextUpdatestringSource next scheduled update time (RFC 1123 string).
sourcestringAlways Exchange Rates.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record from a live run (input {"baseCurrency":"USD","maxRates":10}):

{
"baseCurrency": "USD",
"targetCurrency": "USD",
"rate": 1,
"inverseRate": 1,
"lastUpdated": "Mon, 10 Aug 2026 00:02:31 +0000",
"lastUpdatedUnix": 1786320151,
"nextUpdate": "Tue, 11 Aug 2026 00:23:41 +0000",
"source": "Exchange Rates",
"observedAt": "2026-08-10T14:28:25.371Z"
}

The base currency always appears against itself with a rate of 1.

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~exchange-rates-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"baseCurrency":"EUR","maxRates":200}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~exchange-rates-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"baseCurrency":"GBP","maxRates":50}'

Apify CLI:

apify call scrapers_lat/exchange-rates-scraper \
--input '{"baseCurrency":"JPY"}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. You are charged per currency rate returned (result event). See the pricing tab for the current per-result price.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 rates per run. Upgrade for the full currency table.

FAQ and troubleshooting

A run returned only 10 rows even though there are more currencies. Why? Free Apify plans are capped at 10 results per run. Raise maxRates on a paid plan to pull the full table of 160+ currencies.

What time do the rates refer to? The lastUpdated and lastUpdatedUnix fields give the source's last update time, and nextUpdate gives the next scheduled refresh. observedAt is when this actor collected the data.

Do I need to compute the reverse conversion myself? No. Each row already includes inverseRate, the rate in the opposite direction.

Why does the base currency appear with a rate of 1? The source includes the base against itself for completeness. You can filter it out downstream if you do not need it.

Can I convert from a currency other than USD? Yes. Set baseCurrency to any supported three-letter code, for example EUR, GBP, JPY.

Is this an official central bank tool? No. This actor is independent and returns aggregated public exchange rate data for reference. Do not rely on it as the sole source for settlement or regulatory purposes.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US, European and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool that returns aggregated public exchange rate data for reference. Not affiliated with any central bank; do not use as the sole source for settlement or regulatory purposes.