ECB Euro Exchange Rates Scraper
Pricing
from $1.76 / 1,000 observation scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Features
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 / 503and honourRetry-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
- Click Try for free at the top of the page.
- Set Currencies — ISO-4217 codes against EUR, e.g.
USD,GBP. - Pick a Frequency — Daily, Monthly, Quarterly, or Annual.
- Optionally set Start date / End date (
YYYY-MM-DD). Leave blank to get the latest published rates. - Set Max results (up to 50,000).
- Click Start. Rows stream into the run's dataset as each series/observation is resolved.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
currencies | array<string> | no | ["USD"] | ISO-4217 currency codes against EUR. At least one. |
frequency | string | no | "D" | One of D (daily), M (monthly), Q (quarterly), A (annual). |
startDate | string | no | — | YYYY-MM-DD. Omit for the ECB API's default window. |
endDate | string | no | — | YYYY-MM-DD. Omit to fetch through the latest published observation. |
maxResults | integer | no | 1000 | Cap on total observation rows across all requested series (1-50,000). |
proxyConfiguration | object | no | {"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.
| Field | Type | Notes |
|---|---|---|
date | string | Observation date (YYYY-MM-DD). |
currency | string | Resolved currency code (e.g. "USD"). |
currency_denom | string | Denominating currency — always "EUR" for the EXR dataflow. |
rate | number | null | The exchange rate, when published. |
frequency | string | Resolved frequency (D, M, Q, or A). |
exr_type | string | ECB exchange-rate type (e.g. "SP00" — spot rate). |
exr_suffix | string | ECB series-variation suffix (e.g. "A" — average). |
obs_status | string | null | ECB observation status/quality flag, when published. |
series_key | string | Raw 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.
| Event | USD per event | Billing unit |
|---|---|---|
observation-scraped | $0.002 | Charged 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.