Description
Read official European statistics from one Eurostat dataset as JSON-stat 2.0 - GDP, inflation, unemployment, population, trade, energy, emissions, health, education, income - for one country, one region or every one of them at once. Name the dataset by its Eurostat code (nama_10_gdp for GDP and national accounts, prc_hicp_manr for annual inflation, une_rt_m for monthly unemployment, demo_pjan for population) and narrow it with that dataset's own dimension codes: geo for the country or NUTS region, unit for the unit of measure, na_item, indic, sex, age, coicop or nace_r2 for the indicator, and time, sinceTimePeriod/untilTimePeriod or lastTimePeriod for the period. geoLevel=nuts2 returns every region at that level in one call instead of one country. The response labels every dimension and every code, so the numbers arrive self-describing. Use catalogue/toc or structure/dataflow first if the dataset code is not already known. IMPORTANT: this service validates parameter NAMES against the dataset, not just their values. Every query parameter must be a dimension that THIS dataset actually has, or the call is refused with INVALID_QUERY_DIMENSION and a 400. Sending sex or coicop to nama_10_gdp fails for that reason, while an unknown VALUE for a real dimension is tolerated and simply matches nothing. The response id array names the dataset dimensions, and structure/dataflow gives them before a call is spent. Only dataset, format, lang, geo, geoLevel, time, sinceTimePeriod, untilTimePeriod, lastTimePeriod and freq are safe on every dataset.
Parameters
{
"properties": {
"age": {
"description": "Age class code, e.g. TOTAL, Y15-64, Y_LT15, Y_GE65. ONLY for datasets with an age dimension, such as demo_pjan. Refused with 400 elsewhere.",
"type": "string"
},
"coicop": {
"description": "COICOP consumption purpose code, e.g. CP00 (all-items HICP), CP01 (food and non-alcoholic beverages). ONLY for the price datasets (prc_hicp_*). Refused with 400 elsewhere.",
"type": "string"
},
"dataset": {
"description": "The Eurostat dataset code, lowercase, e.g. nama_10_gdp (GDP and main components), prc_hicp_manr (HICP annual rate of change), une_rt_m (monthly unemployment rate), demo_pjan (population on 1 January), tps00001. This is the code the table of contents lists.",
"type": "string",
"x-parameter-location": "path"
},
"format": {
"description": "Response format. JSON-stat 2.0 is the only format this service returns; leave unset or send JSON.",
"enum": [
"JSON"
],
"type": "string"
},
"freq": {
"description": "Time frequency of the series: A annual, S half-yearly, Q quarterly, M monthly, W weekly, D daily. Safe on every dataset. A frequency the dataset does not publish returns an empty result rather than an error.",
"enum": [
"A",
"S",
"Q",
"M",
"W",
"D"
],
"type": "string"
},
"geo": {
"description": "Country or region code, e.g. NL, DE, EU27_2020, EA20, or a NUTS code such as NL33. Repeatable upstream; mutually exclusive with geoLevel.",
"type": "string"
},
"geoLevel": {
"description": "Return every geography at this level instead of naming one. Mutually exclusive with geo: sending both is refused with 400, verified against the live service.",
"enum": [
"aggregate",
"country",
"nuts1",
"nuts2",
"nuts3",
"city"
],
"type": "string"
},
"indic": {
"description": "Generic indicator code, for the datasets that carry an indic dimension rather than a domain-specific one. Refused with 400 on datasets that do not.",
"type": "string"
},
"lang": {
"description": "Language of the dimension and category labels. Defaults to EN. Only EN, FR and DE exist; any other value is refused with 400.",
"enum": [
"EN",
"FR",
"DE"
],
"type": "string"
},
"lastTimePeriod": {
"description": "Return only the last N periods, counting back from the most recent one published, e.g. 5.",
"type": "integer"
},
"na_item": {
"description": "National accounts indicator, e.g. B1GQ (gross domestic product at market prices), P3 (final consumption expenditure), P6 (exports). ONLY for the national accounts datasets (nama_*, namq_*). Any other dataset refuses it with 400.",
"type": "string"
},
"nace_r2": {
"description": "NACE Rev. 2 economic activity code, e.g. TOTAL, C (manufacturing), G-I. ONLY for the business and labour datasets that carry a nace_r2 dimension. Refused with 400 elsewhere.",
"type": "string"
},
"sex": {
"description": "Sex breakdown: T total, M males, F females. ONLY for the demographic and labour datasets that carry a sex dimension, such as demo_pjan or une_rt_a. Refused with 400 elsewhere.",
"enum": [
"T",
"M",
"F"
],
"type": "string"
},
"sinceTimePeriod": {
"description": "Start of a period window, inclusive. Combine with untilTimePeriod.",
"type": "string"
},
"time": {
"description": "A single period, e.g. 2023 for annual data, 2025-Q2 for quarterly, 2025-10 for monthly.",
"type": "string"
},
"unit": {
"description": "Unit of measure code, e.g. CP_MEUR (current prices, million euro), CLV10_MEUR (chain linked volumes), PC (percent), PC_GDP, NR (number), THS_PER (thousand persons), RCH_A (annual rate of change). Present on most datasets but not all - a dataset without a unit dimension refuses this parameter with 400.",
"type": "string"
},
"untilTimePeriod": {
"description": "End of a period window, inclusive.",
"type": "string"
}
},
"required": [
"dataset"
],
"type": "object"
}
Example response
{
"class": "dataset",
"dimension": {
"geo": {
"category": {
"index": {
"NL": 0
},
"label": {
"NL": "Netherlands"
}
},
"label": "Geopolitical entity (reporting)"
},
"na_item": {
"category": {
"index": {
"B1GQ": 0
},
"label": {
"B1GQ": "Gross domestic product at market prices"
}
},
"label": "National accounts indicator (ESA 2010)"
},
"time": {
"category": {
"index": {
"2023": 0
},
"label": {
"2023": "2023"
}
},
"label": "Time"
},
"unit": {
"category": {
"index": {
"CP_MEUR": 0
},
"label": {
"CP_MEUR": "Current prices, million euro"
}
},
"label": "Unit of measure"
}
},
"id": [
"freq",
"unit",
"na_item",
"geo",
"time"
],
"label": "Gross domestic product (GDP) and main components (output, expenditure and income) - annual data",
"size": [
1,
1,
1,
1,
1
],
"source": "ESTAT",
"updated": "2026-09-03T23:00:00+0200",
"value": {
"0": 1050133.0
},
"version": "2.0"
}