# ECB Economic Data — Rates, Exchange Rates, M3, HICP (`gochujang/ecb-economic-data`) Actor

European Central Bank Statistical Data Warehouse: ECB deposit/refinancing rates, EURIBOR, EUR/USD and major FX rates, M1/M3 money supply growth, HICP inflation. Free public API, no key required.

- **URL**: https://apify.com/gochujang/ecb-economic-data.md
- **Developed by:** [Hojun Lee](https://apify.com/gochujang) (community)
- **Categories:** Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 ecb series fetcheds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### ECB Economic Data — Rates, EUR FX, M3, HICP Inflation

Fetch **European Central Bank** economic data from the ECB Statistical Data Warehouse (SDW) — the official source for Euro area monetary policy rates, exchange rates, money supply, and HICP inflation. No API key required. Data is free and publicly available.

The ECB is the world's second most important central bank after the Federal Reserve. ECB rate decisions drive EUR/USD by hundreds of pips and move European bond markets. HICP inflation data determines whether the ECB can cut rates — a critical input for global macro positioning.

### Built-In Series

| Key | Description | Frequency |
|-----|-------------|-----------|
| `deposit_rate` | ECB Deposit Facility Rate | Business daily |
| `main_refi_rate` | ECB Main Refinancing Operations Rate | Business daily |
| `marginal_lending_rate` | ECB Marginal Lending Facility Rate | Business daily |
| `euribor_3m` | EURIBOR 3-Month Interbank Rate | Business daily |
| `euribor_1m` | EURIBOR 1-Month Interbank Rate | Business daily |
| `eurusd` | EUR/USD Exchange Rate | Daily |
| `eurjpy` | EUR/JPY Exchange Rate | Daily |
| `eurgbp` | EUR/GBP Exchange Rate | Daily |
| `eurchf` | EUR/CHF Exchange Rate | Daily |
| `m3_growth` | Euro Area M3 Money Supply (Annual Growth) | Monthly |
| `m1_growth` | Euro Area M1 Money Supply (Annual Growth) | Monthly |
| `hicp_inflation` | Euro Area Headline HICP Inflation (Annual Rate) | Monthly |
| `hicp_core` | Euro Area Core HICP ex Food & Energy (Annual Rate) | Monthly |

You can also pass raw ECB series in `FLOW/KEY` format (e.g., `"EXR/D.GBP.EUR.SP00.A"`), giving access to thousands of ECB series.

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `series` | array | 8 core series | Series keys or raw ECB flow/key pairs |
| `lastN` | integer | `60` | Most recent N observations per series |

### Sample Output

```json
{
  "series_key": "deposit_rate",
  "ecb_flow": "FM",
  "ecb_key": "B.U2.EUR.4F.KR.DFR.LEV",
  "series_name": "ECB Deposit Facility Rate",
  "unit": "percent per annum",
  "frequency": "business daily",
  "date": "2025-01-15",
  "value": 3.0
}
```

```json
{
  "series_key": "hicp_inflation",
  "ecb_flow": "ICP",
  "ecb_key": "M.U2.N.000000.4.ANR",
  "series_name": "Euro Area HICP Headline Inflation (Annual Rate)",
  "unit": "annual % change",
  "frequency": "monthly",
  "date": "2024-12",
  "value": 2.4
}
```

### Understanding ECB Rates

The ECB has **three key policy rates**:

1. **Deposit Facility Rate** (DFR) — the rate banks earn on overnight deposits parked at the ECB. This is the most market-relevant rate. When the ECB "raises rates," it primarily means the DFR goes up. The DFR essentially sets the floor for overnight money market rates including EURIBOR.

2. **Main Refinancing Rate** (MRR) — the rate at which banks can borrow from the ECB for one week. Historically the headline ECB rate; less practically important since 2022 as excess reserves make overnight borrowing unnecessary.

3. **Marginal Lending Facility Rate** (MLFR) — the ceiling for overnight borrowing. Banks can always borrow from the ECB at this rate, so it sets the top of the rate corridor.

### EURIBOR vs. ECB Policy Rates

**EURIBOR** (Euro Interbank Offered Rate) is the rate at which Euro area banks lend to each other. It tracks ECB rates closely but reflects actual market conditions — credit risk, liquidity stress, and forward rate expectations are embedded in EURIBOR. The spread between EURIBOR-3M and the DFR is a credit/liquidity risk indicator.

### HICP vs. CPI

The **HICP** (Harmonised Index of Consumer Prices) is the EU's standardized inflation measure, analogous to the US CPI. The ECB's 2% inflation target refers to the Euro Area HICP — not a national CPI. **Core HICP** (excluding food and energy) is the ECB's preferred gauge of underlying inflation, which is stickier and harder to lower.

### M3 Money Supply

Euro Area M3 includes cash, overnight deposits, and money market instruments. **Rapid M3 growth** is historically associated with future inflation pressure and was a historically ECB-monitored indicator. The ECB largely de-emphasized M3 targeting in the 2000s but markets still watch it for liquidity signals.

### Use Cases

- **EUR/USD directional trading** — ECB vs. Fed rate differential is the primary driver of EUR/USD
- **European bond yield analysis** — ECB deposit rate is the anchor for short-end Euro sovereign yields
- **Euro area inflation monitoring** — HICP data determines ECB rate cut timing
- **EURIBOR curve analysis** — track the short end of Euro money markets for stress signals
- **M3 liquidity analysis** — monitor Euro area money supply for ECB QT/QE impact
- **Currency carry strategies** — compare ECB rates vs. SNB, BoJ, BoE, Fed for optimal carry positioning
- **Cross-border macro research** — compare Euro area monetary conditions with US and Asia

### Data Sources

All data originates from the ECB Statistical Data Warehouse (ECB SDW), which is the ECB's official open data platform. Data quality is authoritative — collected directly from Euro area national central banks (NCBs) and the ECB itself.

### Pricing

Pay-per-event: **$0.002 per series fetched** — default 8 series = $0.016 per run.

### FAQ

**How do I find additional ECB series IDs?**
Browse the ECB SDW at sdw.ecb.europa.eu — search for any indicator and note the series key shown in the URL or metadata. Pass it as `"FLOW/KEY"` (e.g., `"EXR/M.USD.EUR.SP00.A"` for monthly USD rate).

**How current is the data?**
Exchange rates update daily by end of business. Interest rates update on ECB decision days (historically every 6 weeks). HICP publishes monthly (flash estimate first, then final).

**What is the difference between daily and business-daily frequency?**
Daily frequency (D) includes all calendar days. Business daily (B) excludes weekends — relevant for interest rates that change only on business days. The ECB SDW handles this automatically.

**Can I get older historical data?**
Yes — EURIBOR data goes back to 1999. EUR/USD goes to 1999 (Euro introduction). ECB rates go to 1999. Set `lastN` to a large value (e.g., 500) to retrieve longer histories.

***

### Related actors

- [BIS Central Bank Rates](https://apify.com/gochujang/bis-central-bank-data) — Global central bank rates to compare ECB policy stance vs Fed, BoJ, and other major banks
- [UK ONS Economic Data](https://apify.com/gochujang/uk-ons-economic-data) — UK CPI, GDP, and Bank Rate to pair with Eurozone HICP and ECB rates for GBP/EUR analysis
- [Fed Rate Probability Tracker](https://apify.com/gochujang/fed-rate-probability) — US rate expectations for cross-Atlantic monetary policy comparison and EUR/USD modeling

### Feedback

If this actor powers your macro research, a review helps others find it: [Leave a review on Apify Store](https://apify.com/gochujang/ecb-economic-data#reviews)

***

**Keywords:** ECB data, European Central Bank rates, ECB interest rates, EURIBOR rates, EUR/USD exchange rate, M3 money supply, HICP inflation, ECB Statistical Data Warehouse, eurozone macro data, ECB monetary policy, euro area inflation, ECB refinancing rate, forex macro data

# Actor input Schema

## `series` (type: `array`):

ECB series keys. Built-in: 'deposit_rate', 'main_refi_rate', 'marginal_lending_rate', 'euribor_3m', 'euribor_1m', 'eurusd', 'eurjpy', 'eurgbp', 'eurchf', 'm3_growth', 'm1_growth', 'hicp_inflation', 'hicp_core'. Or pass raw ECB series as 'FLOW/KEY' (e.g., 'EXR/D.USD.EUR.SP00.A').

## `lastN` (type: `integer`):

Return the N most recent data points per series (max 500).

## Actor input object example

```json
{
  "series": [
    "deposit_rate",
    "main_refi_rate",
    "eurusd",
    "eurjpy",
    "hicp_inflation",
    "hicp_core",
    "m3_growth",
    "euribor_3m"
  ],
  "lastN": 60
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("gochujang/ecb-economic-data").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("gochujang/ecb-economic-data").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call gochujang/ecb-economic-data --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,gochujang/ecb-economic-data"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/p6GShTKtun8uo8lRr/builds/qn0Hoc57jjtrnmF99/openapi.json
