Eurostat
Eurostat is the statistical office of the European Union, providing high-quality statistics for Europe. Data covers all EU member states plus EEA countries, with harmonized methodologies for cross-country comparison
import requests
# Dataset: une_rt_m — monthly unemployment by country
url = (
"https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/une_rt_m"
"?format=JSON&geo=DE&geo=FR&age=TOTAL&sex=T&s_adj=SA&unit=PC_ACT&lang=en"
)
r = requests.get(url)
data = r.json()
print(data["label"]) # dataset title
print(list(data["value"])[:5]) # first observation keys Cost
Free
Access type
open
Signup required
No
Update alerts
Not offered
Coverage
europe
Update frequency
varies
Source Documentation
What You're Getting
Eurostat is the statistical office of the EU, providing harmonized data for 27 EU member states plus EEA countries — GDP, employment, trade, agriculture, energy, population, and more. Data is organized in datasets identified by a code (e.g. namq_10_gdp for quarterly national accounts). Each dataset has dimensions (geo, time, unit, na_item, etc.) that you slice with filter parameters.
Ingestion Strategy
Use the SDMX 2.1 REST API or the JSON/Unicode Interchange Format (JSON-UI) API. JSON-UI is simpler to parse. Specify the dataset code and filter dimensions to avoid pulling entire datasets. For bulk extraction, the TSV bulk download is efficient — gzipped TSV files at around 1–100MB each.
import requests
# Quarterly GDP for Germany and France
url = "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/namq_10_gdp"
params = {
"geo": "DE,FR",
"unit": "CP_MEUR",
"na_item": "B1GQ",
"s_adj": "NSA",
"freq": "Q",
"format": "JSON",
"lang": "EN"
}
r = requests.get(url, params=params)
data = r.json()
Rate Limits & API Details
- No authentication required; no published rate limit — be polite (1 req/sec for bulk)
- Bulk TSV download:
ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/{dataset}?format=TSV&compressed=true - Dataset catalog:
ec.europa.eu/eurostat/api/dissemination/catalogue/toc/json
Schema Stability
Dataset codes are stable but Eurostat reorganizes the catalog periodically. Dimension values (geo codes, unit codes) follow SDMX codelists — changes are rare but do happen with EU expansion. Time series for new EU members start at their accession date.
Data Quality Gotchas
- Flags: Eurostat embeds data quality flags (
:= not available,b= break in series,e= estimated) in TSV value cells — parse these into a separate column - NUTS geography levels: data available at NUTS 0 (country), NUTS 1, NUTS 2, NUTS 3 — be explicit about which level you need
- Euro vs national currency: time series for countries before euro adoption show breaks — use PPP-adjusted series for cross-country comparison
- Revisions: quarterly data is revised for 2+ years; store download timestamp
Tool Compatibility
- Python:
eurostatPyPI package handles the JSON-UI API and TSV parsing - R:
eurostatCRAN package is mature and widely used - Airbyte: no official connector
- TSV bulk download works well for Snowflake/BigQuery COPY jobs
Benchmarking Approach
For namq_10_gdp, expect quarterly GDP observations for 30+ countries × 30+ years ≈ 3,000+ rows per unit/indicator combo. Verify Germany Q4 GDP against Destatis press release. After each quarterly release (around 45 days after quarter end), confirm new observations appear. Alert if flag rate exceeds 10% for a country (indicates coverage issues).
Notable Datasets
1 total- ▸ European and national indicators for short-term analysis (euroind)\nRegional statistics by NUTS classification (reg)\nNational accounts (ESA 2010) (na10)\nGovernment statistics (gov)\nExchange rates (ert)\nLabour market (labour)\nEnvironment (env)\nEnergy (nrg)\nScience and technology (scitech)\nDigital economy and society (isoc)
Access
- Cost
- Free
- Access type
- Open
- Update alerts
- Not offered
Data Profile
- Coverage
- Europe
- Frequency
- Varies
- History from
- 2023
- Source updated
- Jan 2025
Data Formats
How to Access
- 🌐 Browser/UI
- ⚡ Automation Ready programmable
- 📦 Bulk Export
Index entry
Added: Apr 30, 2026
Last indexed: May 2, 2026
~ Community-sourced entry