ECB Euro Exchange Rates Scraper avatar

ECB Euro Exchange Rates Scraper

Pricing

from $1.76 / 1,000 observation scrapeds

Go to Apify Store
ECB Euro Exchange Rates Scraper

ECB Euro Exchange Rates Scraper

Pull official European Central Bank euro reference exchange rates from the ECB free, keyless SDMX Data API — daily, monthly, quarterly, or annual rates for any currency the ECB publishes, flattened into clean one-row-per-observation records. No API key, no subscription.

Pricing

from $1.76 / 1,000 observation scrapeds

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Features

Limited permissions

Share


🎯 What this scrapes

This Actor queries the ECB's SDMX 2.1 Data API (data-api.ecb.europa.eu, the EXR reference-rate dataflow) and returns one structured row per (currency, date) observation: date, currency, the EUR-denominated rate, frequency, and the ECB's own quality/status flags.

The ECB doesn't serve a flat table — it serves an index-keyed SDMX-JSON cube that has to be joined against a separate structure block to mean anything, and the series order the API returns is not guaranteed to match the order you requested. Getting that join right — and never silently attaching the wrong rate to the wrong currency — is the actual work this Actor sells.

🔥 What we handle for you

  • 🔁 We retry with exponential backoff on 408 / 429 / 503 and honour Retry-After — up to 5 attempts per page.
  • 🌐 We rotate residential proxies through Apify Proxy on every retry — fresh session, fresh exit IP.
  • 🧱 We isolate per-series/per-observation failures — one malformed series is skipped and logged, the run keeps going.
  • 🧊 We keep the dataset clean — validated rows, nullable fields typed correctly, dimensions resolved by index rather than assumed request order.
  • 💰 Pay per output — no Actor start fee. You pay for the output events listed in Pricing.

💡 Use cases

  • Fintech & payments — reconcile transactions against the official EUR reference rate for a given settlement date.
  • Treasury / FP&A — pull historical daily/monthly rates for multi-currency reporting and budgeting.
  • Accounting & invoicing tools — attach an authoritative, audit-defensible FX rate to a cross-border invoice.
  • Econ research — build long-run time series of ECB reference rates for any published currency.
  • Compliance / audit — cite the exact ECB rate (and its status flag) used to convert a historical transaction.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Set Currencies — ISO-4217 codes against EUR, e.g. USD, GBP.
  3. Pick a Frequency — Daily, Monthly, Quarterly, or Annual.
  4. Optionally set Start date / End date (YYYY-MM-DD). Leave blank to get the latest published rates.
  5. Set Max results (up to 50,000).
  6. Click Start. Rows stream into the run's dataset as each series/observation is resolved.
  7. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
currenciesarray<string>no["USD"]ISO-4217 currency codes against EUR. At least one.
frequencystringno"D"One of D (daily), M (monthly), Q (quarterly), A (annual).
startDatestringno—YYYY-MM-DD. Omit for the ECB API's default window.
endDatestringno—YYYY-MM-DD. Omit to fetch through the latest published observation.
maxResultsintegerno1000Cap on total observation rows across all requested series (1-50,000).
proxyConfigurationobjectno{"useApifyProxy": true}Apify Proxy configuration.

Example input

{
"currencies": ["USD", "GBP"],
"frequency": "D",
"maxResults": 1000,
"proxyConfiguration": {"useApifyProxy": true}
}

📤 Output

Every row is one (currency, date) exchange-rate observation.

FieldTypeNotes
datestringObservation date (YYYY-MM-DD).
currencystringResolved currency code (e.g. "USD").
currency_denomstringDenominating currency — always "EUR" for the EXR dataflow.
ratenumber | nullThe exchange rate, when published.
frequencystringResolved frequency (D, M, Q, or A).
exr_typestringECB exchange-rate type (e.g. "SP00" — spot rate).
exr_suffixstringECB series-variation suffix (e.g. "A" — average).
obs_statusstring | nullECB observation status/quality flag, when published.
series_keystringRaw SDMX series key, for traceability.

Example output

{
"date": "2024-01-02",
"currency": "USD",
"currency_denom": "EUR",
"rate": 1.0956,
"frequency": "D",
"exr_type": "SP00",
"exr_suffix": "A",
"obs_status": "A",
"series_key": "0:1:0:0:0"
}

💰 Pricing

No Actor start fee. You pay for the output events below.

EventUSD per eventBilling unit
observation-scraped$0.002Charged once per (series, date) exchange-rate observation row written to the dataset.

1,000 output events cost $2.00 at the standard rate, with no start charge.

Existing subscriber discounts remain available in the Apify Pricing tab.

🚧 Limitations

This Actor covers the ECB's EXR reference-rate dataflow only — other ECB dataflows (BSI, ICP, YC, …) are out of scope for v1. It publishes the ECB's official reference fix, not live/intraday market quotes, and only currencies the ECB itself publishes (cross-rates the ECB does not publish, e.g. USD/GBP, are not derived). Non-trading days (weekends, TARGET holidays) simply have no observation — row counts do not equal the number of calendar days requested.

❓ FAQ

Does this need an ECB account or API key?

No. The ECB's SDMX Data API is free and keyless.

Why doesn't the row count match the number of days I requested?

The ECB doesn't publish a rate on weekends or TARGET holidays — those dates simply have no observation in the response.

What happens if my date window has no published rates?

There is no Actor start fee. You pay for the output events listed in Pricing; existing subscriber discounts apply.

Can I get rates between two non-EUR currencies (e.g. USD/GBP)?

Not in v1 — only rates the ECB itself publishes against EUR. Deriving cross-rates is a candidate for a future version.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need another ECB dataflow covered? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.