Microproduct data guideintermediate

Eurostat Statistics API

Official European statistical series for building country comparison and release-monitoring tools from a bounded Eurostat dataset.

At a glance

Difficulty
Intermediate — some data preparation helps
Size
Small · ≤0.1 GB
Formats
JSON, CSV, TSV
Access
API or Download
API key
Not required
Provider
Eurostat
Updates
Monthly

From source to product signal

Test a product idea in four steps

Eurostat's Statistics API returns JSON-stat for a data code such as monthly unemployment. Start with one country, one adjustment, and the last twelve periods. Acknowledge Eurostat as the source, and do not reuse third-country or restricted trade extracts for commercial products.

1

Check the setup

  • Python 3.10 or newer
  • A notebook environment such as Jupyter or Google Colab
  • An internet connection
2

Access the data

  1. 1.Open the Statistics API getting-started page and choose one data code.
  2. 2.Request a filtered JSON-stat subset for one country and a short time window.
  3. 3.Record the data code, filters, and access date for the required source citation.
Open official source
3

Run the Python example

Install the packages, then run the notebook cell.

python -m pip install pandas requests

import pandas as pd
import requests

response = requests.get(
    "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/une_rt_m",
    params={
        "format": "JSON",
        "lang": "EN",
        "geo": "DE",
        "s_adj": "SA",
        "age": "TOTAL",
        "sex": "T",
        "unit": "PC_ACT",
        "lastTimePeriod": 12,
    },
    timeout=30,
)
response.raise_for_status()
payload = response.json()
time_index = payload["dimension"]["time"]["category"]["index"]
values = payload["value"]
rows = []
for period, position in time_index.items():
    if isinstance(values, list):
        value = values[position] if position < len(values) else None
    else:
        value = values.get(str(position))
    if value is not None:
        rows.append({"period": period, "unemployment_rate": value})
unemployment = pd.DataFrame(rows).sort_values("period")
unemployment["retrieved_at_utc"] = pd.Timestamp.now(tz="UTC")
print(unemployment)
4

Test a useful signal

Track one country's monthly unemployment rate

Describe how Germany's seasonally adjusted monthly unemployment rate moved over the last twelve published periods.

  1. 01Confirm the JSON-stat response contains twelve time periods for the selected geo and adjustment filters.
  2. 02Plot the unemployment rate and note any missing periods.
  3. 03Cite Eurostat with the data code and access date, and do not treat this filtered EU series as a license to reuse restricted non-EU trade extracts.

Dataset details

Eurostat is an intergovernmental source. Last verified 2026-08-14. Temporal coverage: series-specific coverage published in each data code.

Theme

Demographics & Development

Domains

Labor EconomicsInternational Statistics

Data types

Time SeriesTabular

Tasks

Country ComparisonEconomic MonitoringTrend Analysis

Geography

Europe

Formats

JSONCSVTSV

Provider

Eurostat

Data terms

Eurostat free re-use with source acknowledgement