Governmental Free & Open

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

Status Tracker Past 24 hours

Current status

Operational

100.0% operational in known checks

Checked Jun 16, 10:40 PM

24h ago Now
Operational Polling issues Impacted No data
All sources
Data access source profile JSON profile →

Access

open

Collection level

L3

Confidence

medium

Recommended next action

Use the confirmed public freshness/API probe as the first collection path.

Exportable data

public_api_and_bulk

Docker fit

docker_ok_with_storage

Estimated size

huge

apiautomation-readybulk-exportcsvdirect-linkend-userjson-stat-api-and-bulk-tsvotherportalxlsx
Access & Pricing Visit source →

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: eurostat PyPI package handles the JSON-UI API and TSV parsing
  • R: eurostat CRAN 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).

Visit Data Source

Data Formats

csv xlsx other

API Quickstart

— Python — fetch unemployment data
Docs →
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

How to Access

  • 🌐 end user
  • automation ready programmable
  • 📦 bulk export

Notable Datasets

10 total
  • European and national indicators for short-term analysis (euroind)
  • Regional statistics by NUTS classification (reg)
  • National accounts (ESA 2010) (na10)
  • Government statistics (gov)
  • Exchange rates (ert)
  • Labour market (labour)
  • Environment (env)
  • Energy (nrg)
  • + 2 more at the source

Index entry

Added: Apr 30, 2026

Last indexed: Jun 16, 2026

Unverified entry

Learn

Recent articles

View all →