Eurostat Data Scraper — EU Statistics & Indicators avatar

Eurostat Data Scraper — EU Statistics & Indicators

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Eurostat Data Scraper — EU Statistics & Indicators

Eurostat Data Scraper — EU Statistics & Indicators

Scrape Eurostat by dataset code or browse the catalog. Extract geo, time, value, unit, and all dimensions for GDP, population, employment, trade, and more. No API key, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Eurostat Data Scraper — EU Statistics, Indicators & Datasets API

Extract any Eurostat dataset as clean, flat rows — no API key, no login, unlimited results.

What does Eurostat Data Scraper do?

Eurostat is the statistical office of the European Union and publishes authoritative data on GDP, population, employment, trade, inflation, energy, agriculture, and hundreds of other socioeconomic topics for EU member states and partner countries. This actor connects directly to the official Eurostat dissemination API (https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/{dataset}) which returns machine-readable JSON-stat format — a compact multi-dimensional representation used by statistical agencies worldwide.

The actor automatically decodes the JSON-stat structure: it reads the dimension metadata (country, time period, unit, frequency, and any dataset-specific dimensions like age, sex, or NACE industry code), then performs a Cartesian expansion to produce one flat row per valid data cell. Filters for country codes and time range are applied via the Eurostat API query parameters so only the data you need is transferred. A second mode, catalog, fetches the full Eurostat Table of Contents — over 6,000 datasets organised in a hierarchical theme tree — so you can discover dataset codes without leaving the actor.

Who is it for?

  • Economists and researchers who need time-series EU data for modelling, regression analysis, or academic papers without clicking through the Eurostat web interface.
  • Data journalists tracking EU-wide trends in employment, cost of living, or energy prices across multiple countries and years.
  • Business analysts comparing GDP, purchasing power, or trade flows across EU markets to inform market entry decisions.
  • Policy analysts and think tanks monitoring Eurostat indicator updates for policy briefs and advocacy reports.
  • Developers and data engineers building dashboards, data pipelines, or automated reports that need fresh EU statistics on a schedule.

Use cases

  • Download annual population data by age and sex for all 27 EU member states from demo_pjan to build demographic charts.
  • Pull quarterly GDP growth rates from namq_10_gdp filtered to France, Germany, and Italy from 2015 onward for a eurozone comparison.
  • Export harmonised consumer price indices (HICP) from prc_hicp_midx to track inflation across EU countries for a financial model.
  • Browse the full Eurostat catalog in catalog mode to discover less-known datasets on agriculture, environment, or digital economy.
  • Schedule monthly runs to keep a Google Sheet updated with the latest Eurostat employment figures from lfsa_egan.

Why use Eurostat Data Scraper?

  • No API key required — Eurostat's dissemination API is fully public and keyless; just pick a dataset code and run.
  • 12+ output fields — dataset code, country code, country name, time period, value, unit, frequency, status flag, and all extra dimensions (age, sex, industry, etc.) serialised as structured JSON.
  • Thousands of rows per run — one dataset can contain millions of cells across 40+ countries and 30+ years; the actor streams them all without truncation.
  • Geo and time filters — pass geoFilter: ["DE","FR"] and timeFrom: "2010" to request only the slice you need, reducing both run time and memory.
  • Two modesdatasetData for deep extraction, catalog for exploring the 6,000+ dataset hierarchy.
  • Export to CSV, JSON, or Excel — use Apify's built-in dataset export to download results in any format after the run.
  • Pay-per-result pricing — you only pay for the rows the actor actually produces, making it cost-efficient for targeted queries.

What data can you extract?

The actor produces one row per non-null data cell in the Eurostat dataset. Here is every field:

FieldTypeDescription
datasetstringEurostat dataset code (e.g. demo_pjan)
datasetLabelstringHuman-readable dataset title
geostringISO 2-letter country/region code (e.g. DE, EU27_2020)
geoLabelstringCountry or region name (e.g. Germany)
timestringTime period (e.g. 2023, 2023-Q1, 2023-01)
valuestringNumeric value for this cell (as string; use number format in display)
unitstringUnit code (e.g. NR, PC, EUR_HAB)
unitLabelstringUnit label (e.g. Number, Percentage, Euro per inhabitant)
freqstringFrequency code: A annual, Q quarterly, M monthly
statusstringEurostat status flag: b break, e estimated, p provisional, empty = normal
extraDimensionsstringJSON object with additional dimensions (age, sex, NACE code, etc.) and their codes/labels
updatedAtstringISO date when Eurostat last updated this dataset

Example output row (demo_pjan — population by age and sex, Germany 2023):

{
"dataset": "demo_pjan",
"datasetLabel": "Population on 1 January by age and sex",
"geo": "DE",
"geoLabel": "Germany",
"time": "2023",
"value": "83118501",
"unit": "NR",
"unitLabel": "Number",
"freq": "A",
"status": "",
"extraDimensions": "{\"age\":{\"code\":\"TOTAL\",\"label\":\"Total\"},\"sex\":{\"code\":\"T\",\"label\":\"Total\"}}",
"updatedAt": "2024-09-25T11:00:00+0200"
}

How to use

Option A — Fetch a specific dataset (datasetData mode)

  1. Open the actor and set Mode to Dataset Data.
  2. Enter the Dataset Code (e.g. demo_pjan). Find codes in the Eurostat Data Browser or use catalog mode.
  3. Optionally add Geo Filter country codes (leave empty for all countries).
  4. Optionally set Time From and Time To (e.g. 2010 and 2023).
  5. Set Max Results to 0 for no limit, or a number to cap rows.
  6. Click Start and download your data as CSV, JSON, or Excel.

Input example:

{
"mode": "datasetData",
"dataset": "demo_pjan",
"geoFilter": ["DE", "FR", "IT", "ES", "PL"],
"timeFrom": "2015",
"timeTo": "2023",
"maxResults": 0
}

Option B — Browse the catalog (catalog mode)

  1. Set Mode to Catalog.
  2. Leave all other fields at defaults.
  3. Run — the actor fetches the full Eurostat Table of Contents and outputs each entry as a row with its code, title, type (folder/table/dataset), data range, and value count.

Input example:

{
"mode": "catalog",
"maxResults": 500
}

Use the catalog output to find dataset codes, then switch to datasetData mode with the code you need.

Input parameters

ParameterTypeDefaultDescription
modestringdatasetDatadatasetData: fetch and flatten a dataset. catalog: list all datasets.
datasetstringdemo_pjanEurostat dataset code. Required in datasetData mode.
geoFilterarray[]ISO-2 country codes to include (empty = all). Example: ["DE","FR","IT"].
timeFromstringStart period filter. Example: 2010 or 2010-Q1.
timeTostringEnd period filter. Example: 2023 or 2023-Q4.
maxResultsinteger0Max rows to output. 0 = unlimited.
proxyConfigurationobjectApify datacenterProxy settings. Datacenter works well for Eurostat's public API.

Full input JSON:

{
"mode": "datasetData",
"dataset": "nama_10_gdp",
"geoFilter": ["DE", "FR", "IT", "ES", "NL", "BE", "PL", "SE"],
"timeFrom": "2000",
"timeTo": "2023",
"maxResults": 0,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["SHADER"]
}
}

Output example

[
{
"dataset": "demo_pjan",
"datasetLabel": "Population on 1 January by age and sex",
"geo": "DE",
"geoLabel": "Germany",
"time": "2023",
"value": "83118501",
"unit": "NR",
"unitLabel": "Number",
"freq": "A",
"status": "",
"extraDimensions": "{\"age\":{\"code\":\"TOTAL\",\"label\":\"Total\"},\"sex\":{\"code\":\"T\",\"label\":\"Total\"}}",
"updatedAt": "2024-09-25T11:00:00+0200"
},
{
"dataset": "demo_pjan",
"datasetLabel": "Population on 1 January by age and sex",
"geo": "FR",
"geoLabel": "France",
"time": "2023",
"value": "68287000",
"unit": "NR",
"unitLabel": "Number",
"freq": "A",
"status": "p",
"extraDimensions": "{\"age\":{\"code\":\"TOTAL\",\"label\":\"Total\"},\"sex\":{\"code\":\"T\",\"label\":\"Total\"}}",
"updatedAt": "2024-09-25T11:00:00+0200"
}
]

Tips for best results

  • Find dataset codes using catalog mode first or visit Eurostat Data Browser and copy the code from the URL.
  • Use geo filters when you only need a handful of countries — this reduces response size from the API and speeds up the run.
  • Use time filters for long time-series datasets with monthly data (e.g. ei_cphi_m has data back to 1996 across 30+ countries — that's millions of cells).
  • Check the extraDimensions field — many datasets have dimensions like age, sex, nace_r2, or indic_na. Parse the JSON to filter further in your downstream pipeline.
  • Status flags matterp = provisional, e = estimated, b = break in series. Filter these out if you need only confirmed data.
  • Null values are skipped — Eurostat uses null for missing country-year combinations; the actor already excludes these so your data is clean.
  • Schedule monthly runs for datasets updated monthly (check updatedAt in results to see the cadence).
  • Combine with Google Sheets integration to maintain a live EU statistics dashboard that auto-refreshes.
  • Dataset demo_pjan (population) is a great starting point — it covers all EU countries, has age and sex breakdowns, and data back to 1960.
  • For GDP data, try nama_10_gdp (annual national accounts) or namq_10_gdp (quarterly). For employment, try lfsa_egan.

Integrations

Google Sheets — Connect via Apify's native Google Sheets integration to write results directly to a spreadsheet. Combine with a monthly schedule for an auto-updating EU statistics dashboard.

Slack — Use Apify's Slack integration to receive a notification with the run summary (row count, dataset, time range) whenever a scheduled run completes.

Zapier / Make — Trigger downstream workflows when new Eurostat data arrives. Example: push new population data to Airtable or update a CRM field with country GDP figures.

Webhooks — Configure a webhook on Actor run finish to send the dataset URL to your own endpoint for immediate ingestion.

Schedule — Set up a monthly or quarterly cron schedule in Apify to keep your dataset fresh as Eurostat publishes new releases.

API usage

cURL:

curl -X POST \
"https://api.apify.com/v2/acts/logiover~eurostat-data-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"dataset":"demo_pjan","geoFilter":["DE","FR"],"timeFrom":"2020"}'

Node.js (Apify client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('logiover/eurostat-data-scraper').call({
dataset: 'demo_pjan',
geoFilter: ['DE', 'FR', 'IT'],
timeFrom: '2015',
timeTo: '2023',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover/eurostat-data-scraper").call(run_input={
"dataset": "demo_pjan",
"geoFilter": ["DE", "FR", "IT"],
"timeFrom": "2015",
"timeTo": "2023",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["geo"], item["time"], item["value"])

Use with AI agents (MCP)

This actor is available via Apify's Model Context Protocol (MCP) server, which means you can plug it directly into Claude, GPT-4, or any MCP-compatible AI agent. Ask your agent: "Use the Eurostat Data Scraper to fetch quarterly GDP data for France and Germany from 2010 to 2023, then draw a comparison chart." The agent will call the actor, receive structured rows, and can immediately reason over the data without any manual download step.

FAQ

Does this actor require an API key or account?

No. The Eurostat dissemination API is fully public and keyless. You only need your Apify token to run the actor itself, not any Eurostat credentials.

Which datasets are available?

Eurostat publishes over 6,000 tables and datasets covering population, GDP, employment, trade, agriculture, environment, energy, health, education, and more. Run catalog mode to see the full list. The Eurostat Data Browser is another good discovery tool.

How many rows can one run produce?

There is no hard limit. A dataset like ei_cphi_m (harmonised consumer prices, monthly) contains over 1 million cells across all countries and years. The actor streams all non-null rows. Use maxResults and time/geo filters to cap the output if needed.

What does a null value in the source mean?

Eurostat datasets often have missing cells where a country did not report data for a specific period. The actor skips null cells entirely, so every row you receive has a real numeric value.

Why are some values flagged with p or e in the status field?

Eurostat uses status flags: p = provisional (may be revised), e = estimated, b = break in series (methodology changed), c = confidential. Filter on status === "" if you only want confirmed, final data.

Can I export the data to Excel or CSV?

Yes. After a run, open the dataset in Apify and click Export → CSV or Excel. You can also use the API to download in any supported format programmatically.

How fast is the actor?

A typical country-filtered dataset (e.g. 5 countries, 10 years, annual frequency) finishes in under 30 seconds. Very large unfiltered datasets with monthly data and 40+ countries may take 2–5 minutes depending on response size.

Is the data real-time?

No. Eurostat publishes statistical data on a release calendar — annual data is typically updated once a year, quarterly data every 3 months, and monthly indicators within 30–60 days of the reference period. The updatedAt field in each row tells you when Eurostat last updated the dataset.

Can I fetch multiple datasets in one run?

The current version fetches one dataset per run. To fetch multiple datasets, start a separate run for each or use Apify's batch run API.

How do I know what dimensions a dataset has?

The extraDimensions field in your output shows all dimensions beyond the standard four (geo, time, unit, freq). For a full preview, run the actor once with a narrow geo/time filter and inspect the first few rows.

Yes — see also the World Bank Data Scraper and the EU Companies Registry Scraper for complementary datasets.

How often should I schedule runs?

Eurostat release calendars vary by dataset. Monthly indicators (HICP, unemployment) update roughly every 30 days. Annual datasets (population, national accounts) update once or twice a year. Check the updatedAt field after each run to see if fresh data has arrived.

Eurostat data is published by the European Commission under the Eurostat copyright policy, which permits free reuse for commercial and non-commercial purposes with attribution. The actor accesses only the official, publicly documented dissemination API and sends no authentication credentials. No personal data is collected. Always cite Eurostat as your source when publishing derived work.