# Eurostat SDMX Statistics Scraper (`parseforge/eurostat-sdmx-scraper`) Actor

Scrapes statistical observations from a Eurostat dataset via the public SDMX API. Returns each data point as a flat row with its dimensions and value. Filter by country code.

- **URL**: https://apify.com/parseforge/eurostat-sdmx-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Automation, Integrations, Business
- **Stats:** 2 total users, 1 monthly users, 89.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $7.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### Eurostat SDMX Statistics Scraper

**Scrape official European statistics from Eurostat by dataset code, with optional geo filtering, up to a million records per run.** Every record returns the raw SDMX data point with its dimensions and value. No API key or registration required. Export to JSON, CSV, Excel, or XML.

Eurostat's bulk data is spread across SDMX endpoints that require knowing the exact dataset code and dimension syntax. This Actor reads the public SDMX REST API directly, lets you filter by country code, and returns each statistical observation as one flat row in a fixed schema. It is built for analysts who need clean, repeatable data pulls without writing their own SDMX queries.

| Who uses it | What they scrape Eurostat for |
|---|---|
| Economic analysts | Pull GDP, inflation, or employment time series for a specific country into a spreadsheet. |
| Data journalists | Gather the latest official statistics on a topic to back a story with authoritative numbers. |
| Policy researchers | Monitor a set of indicators across EU member states for a comparative report. |
| Academic researchers | Collect large historical datasets for econometric modeling or social science papers. |

### What it does

This Actor collects statistical observations from a Eurostat dataset via its SDMX API and returns each observation as a flat row with its dimensions and value.

- 📊 **Dataset-driven:** point the Actor at any Eurostat dataset code, like nama\_10\_gdp or prc\_hicp\_manr.
- 🌍 **Geo filtering:** limit results to one country code, such as DE, FR, or EU27\_2020, or leave empty for all.
- 📦 **Bulk retrieval:** set a high maxItems to pull up to a million records in a single run.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with Eurostat data

**📈 Track GDP growth.**

An economist runs the Actor weekly with dataset nama\_10\_gdp and geo EU27\_2020 to feed a dashboard that alerts on quarterly GDP changes.

**📰 Fact-check inflation claims.**

A journalist pulls the latest HICP data with prc\_hicp\_manr for a specific country to verify a politician's statement on price rises.

**🎓 Build a research dataset.**

A PhD student collects a decade of employment statistics across all EU countries for a labor market study.

**🏛️ Monitor policy targets.**

A policy advisor scrapes renewable energy share data monthly to track progress toward EU 2030 goals.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key** | Reads the public SDMX endpoint directly, no registration or authentication. |
| **Flat output** | Every observation becomes one row, ready for pivot tables or databases. |
| **Repeatable** | Run on a schedule to track indicators as new data is published. |

### How it compares

This Actor reads the raw SDMX API directly, while the Europa Profile Info Scraper uses a browser-based crawler for profile pages. Here is how they compare on data retrieval features.

| Feature | ParseForge | Europa Profile Info Scraper |
|---|---|---|
| Reads SDMX REST API directly | Yes | Not listed |
| No browser or headless Chrome required | Yes | Not listed |
| Dataset code input | Yes | Not listed |
| Geo filter | Yes | Not listed |
| Output as JSON, CSV, Excel, XML | Yes | Yes |

### Configure the run

Drive the Actor with a Eurostat dataset code and an optional country code, and the filters are forwarded to the SDMX API so only matching observations reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10,
  "dataset": "nama_10_gdp"
}
```

A larger pull:

```json
{
  "maxItems": 200,
  "dataset": "nama_10_gdp"
}
```

### Pricing

Pay-per-result: **$0.0085 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [Eurostat SDMX Statistics Scraper](https://apify.com/parseforge/eurostat-sdmx-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to Eurostat through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/eurostat-sdmx-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that the dataset code is spelled correctly and exists in Eurostat. Also verify that your geo filter, if set, uses a valid code for that dataset. Try leaving geo empty to see all available data.

**The run fails with an error.**

The SDMX endpoint may be temporarily unavailable or the dataset code may be invalid. Test the dataset code in the Eurostat data browser first, then retry the run after a few minutes.

**I got fewer records than my maxItems setting.**

maxItems is an upper limit. The Actor returns all matching observations up to that number. If the dataset has fewer records for your filter, you will receive all of them.

**The output columns are confusing.**

The Actor returns the raw SDMX dimensions and value as flat columns. Refer to the Eurostat dataset metadata for the meaning of each dimension code.

### FAQ

| Question | Answer |
|---|---|
| Where do I find the dataset code? | Browse the Eurostat data browser online, pick a dataset, and copy the code from the URL or the metadata. Common ones are nama\_10\_gdp for GDP and prc\_hicp\_manr for inflation. |
| What format does the output come in? | The Actor returns data in the format you choose for your Apify dataset: JSON, CSV, Excel, or XML. Each row is one statistical observation. |
| Can I get data for multiple countries at once? | Leave the geo filter empty to retrieve data for all available countries in the dataset. To get a specific set of countries, run the Actor once per country code. |
| Does this use the official Eurostat API? | Yes, it reads from the public Eurostat SDMX REST API, which is the same source the official website uses. No API key is needed. |
| How many records can I pull in one run? | You can set maxItems up to one million. The actual number returned depends on how many observations match your dataset and filter. |
| What is a geo code? | It is a country or aggregate code like DE for Germany, FR for France, or EU27\_2020 for the European Union. Eurostat publishes the full code list in its documentation. |
| Can I filter by year or other dimensions? | The current input schema supports dataset code and geo only. For more complex filters, you can post-process the full dataset or use a custom SDMX query. |
| Is the data updated when Eurostat releases new figures? | Yes, the Actor reads live data from the API. Schedule a recurring run to capture the latest values as soon as they are published. |
| Do I need to understand SDMX to use this? | No, you only need the dataset code and optionally a country code. The Actor handles the SDMX query construction and response parsing. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by European Commission. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `maxItems` (type: `integer`):

How many data records to collect per run.

## `dataset` (type: `string`):

Eurostat dataset code (e.g. nama\_10\_gdp, prc\_hicp\_manr).

## `geo` (type: `string`):

Country code (e.g. DE, FR, EU27\_2020). Empty = all.

## Actor input object example

```json
{
  "maxItems": 10,
  "dataset": "nama_10_gdp"
}
```

# 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 = {
    "maxItems": 10,
    "dataset": "nama_10_gdp"
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/eurostat-sdmx-scraper").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 = {
    "maxItems": 10,
    "dataset": "nama_10_gdp",
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/eurostat-sdmx-scraper").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 '{
  "maxItems": 10,
  "dataset": "nama_10_gdp"
}' |
apify call parseforge/eurostat-sdmx-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/eurostat-sdmx-scraper"
        }
    }
}

```

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/WWBEYP8SClwl9EpX9/builds/FcfhenycExsNalWSb/openapi.json
