Eurostat’s API - api

Data - Eurostat

Info

List of APIs

source dataset Title Updated
bdf api Banque de France's API - api 2026-09-09
bea api Bureau of Economic Analysis' API - api 2026-09-11
bis api Bank of International Settlements' API - api 2026-09-09
bls api Bureau of Labor Statistics' API - api 2026-09-09
dbnomics api DBnomics' API - api 2026-09-09
ecb api European Central Bank's API - api 2026-09-09
eurostat api Eurostat's API - api 2026-09-09
imf api International Monetary Fund's API - api 2026-09-09
insee api Institut National de la Statistique et des Etudes Economiques' API - api 2026-09-09
oecd api OECD's API - api 2026-08-02
wdi api World Development Indicators' API - api 2026-09-09

Info

Listings

Components

namq_10_gdp

Code
"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/namq_10_gdp"  |>
  readSDMX() |>
  slot("datastructures") |>
  pluck(1) |>
  slot("Components") |>
  as_tibble() |>
  print_table_conditional()
component conceptRef conceptVersion conceptAgency conceptSchemeRef conceptSchemeVersion conceptSchemeAgency codelist codelistVersion codelistAgency isMeasureDimension isFrequencyDimension isEntityDimension isCountDimension isNonObservationTimeDimension isIdentityDimension crossSectionalAttachDataset crossSectionalAttachGroup crossSectionalAttachSection crossSectionalAttachObservation
Dimension freq NA NA NAMQ_10_GDP 128.1 ESTAT FREQ 3.9 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension unit NA NA NAMQ_10_GDP 128.1 ESTAT UNIT 82.0 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension s_adj NA NA NAMQ_10_GDP 128.1 ESTAT S_ADJ 1.12 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension na_item NA NA NAMQ_10_GDP 128.1 ESTAT NA_ITEM 30.1 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension geo NA NA NAMQ_10_GDP 128.1 ESTAT GEO 28.0 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
TimeDimension TIME_PERIOD 128.1 ESTAT NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
PrimaryMeasure OBS_VALUE 128.1 ESTAT NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Attribute OBS_FLAG NA NA NAMQ_10_GDP 128.1 ESTAT OBS_FLAG 1.39 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Attribute CONF_STATUS NA NA NAMQ_10_GDP 128.1 ESTAT CONF_STATUS 1.2 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA

prc_hicp_manr

Code
"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/prc_hicp_manr"  |>
  readSDMX() |>
  slot("datastructures") |>
  pluck(1) |>
  slot("Components") |>
  as_tibble() |>
  print_table_conditional()
component conceptRef conceptVersion conceptAgency conceptSchemeRef conceptSchemeVersion conceptSchemeAgency codelist codelistVersion codelistAgency isMeasureDimension isFrequencyDimension isEntityDimension isCountDimension isNonObservationTimeDimension isIdentityDimension crossSectionalAttachDataset crossSectionalAttachGroup crossSectionalAttachSection crossSectionalAttachObservation
Dimension freq NA NA PRC_HICP_MANR 69.0 ESTAT FREQ 3.9 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension unit NA NA PRC_HICP_MANR 69.0 ESTAT UNIT 70.0 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension coicop NA NA PRC_HICP_MANR 69.0 ESTAT COICOP 6.3 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension geo NA NA PRC_HICP_MANR 69.0 ESTAT GEO 27.0 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
TimeDimension TIME_PERIOD 69.0 ESTAT NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
PrimaryMeasure OBS_VALUE 69.0 ESTAT NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Attribute OBS_FLAG NA NA PRC_HICP_MANR 69.0 ESTAT OBS_FLAG 1.39 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Attribute CONF_STATUS NA NA PRC_HICP_MANR 69.0 ESTAT CONF_STATUS 1.2 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA

hbs_str_t223

Code
"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/hbs_str_t223"  |>
  readSDMX() |>
  slot("datastructures") |>
  pluck(1) |>
  slot("Components") |>
  as_tibble() |>
  print_table_conditional()
component conceptRef conceptVersion conceptAgency conceptSchemeRef conceptSchemeVersion conceptSchemeAgency codelist codelistVersion codelistAgency isMeasureDimension isFrequencyDimension isEntityDimension isCountDimension isNonObservationTimeDimension isIdentityDimension crossSectionalAttachDataset crossSectionalAttachGroup crossSectionalAttachSection crossSectionalAttachObservation
Dimension freq NA NA HBS_STR_T223 41.0 ESTAT FREQ 3.7 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension quant_inc NA NA HBS_STR_T223 41.0 ESTAT QUANT_INC 2.2 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension coicop NA NA HBS_STR_T223 41.0 ESTAT COICOP 6.3 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension unit NA NA HBS_STR_T223 41.0 ESTAT UNIT 65.0 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Dimension geo NA NA HBS_STR_T223 41.0 ESTAT GEO 25.2 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
TimeDimension TIME_PERIOD 41.0 ESTAT NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
PrimaryMeasure OBS_VALUE 41.0 ESTAT NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
Attribute OBS_FLAG NA NA HBS_STR_T223 41.0 ESTAT OBS_FLAG 1.38 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA
Attribute CONF_STATUS NA NA HBS_STR_T223 41.0 ESTAT CONF_STATUS 1.1 ESTAT FALSE FALSE FALSE FALSE FALSE FALSE NA NA NA NA

Codelists

FREQ

Code
"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/codelist/ESTAT/FREQ"  |>
  readSDMX() |>
  as_tibble() |>
  select(1, 4) |>
  print_table_conditional()
id label.en
P Pluri-annual
A Annual
S Half-yearly, semesterly
Q Quarterly
M Monthly
W Weekly
B Daily - business week
D Daily
H Hourly
I Irregular / A-periodic
NAP Not applicable
A3 Triannual

coicop

Code
"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/codelist/ESTAT/coicop"  |>
  readSDMX() |>
  as_tibble() |>
  select(1, 4) |>
  print_table_conditional()

https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/contentconstraint/ESTAT/ISOC_CI_ID_H/1.0

New

Code
data_structure <- "https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/NAMA_10_GDP/28.0"  |>
  readSDMX()

components <- "https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/NAMQ_10_GDP"  |>
  readSDMX() |>
  slot("datastructures") |>
  pluck(1) |>
  slot("Components") |>
  as_tibble()

components <- "https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/datastructure/ESTAT/NAMQ_10_GDP"  |>
  readSDMX() |>
  slot("datastructures") |>
  pluck(1) |>
  slot("Components") |>
  as_tibble()

Concept_scheme <- "https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/conceptscheme/ESTAT/ISOC_CI_ID_H/28.0"  |>
  readSDMX()

GDP Data

https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/codelist/ESTAT/FREQ/1.31

Example 1

Code
"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/NAMA_10_GDP/A.CP_MEUR.B1GQ.FR+DE+IT"  |>
  readSDMX() |>
  as_tibble() |>
  mutate(date = as.Date(paste0(obsTime, "-01-01"))) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = geo)) + 
  scale_y_log10() + theme_minimal()

Example 3

Code
"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/PRC_HICP_MANR/M..CP01+CP04.FR"  |>
  readSDMX() |>
  as_tibble() |>
  mutate(date = as.Date(paste0(obsTime, "-01-01"))) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = coicop)) + 
  scale_y_continuous() + theme_minimal()

Example 4

Without label

Code
"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/UNE_RT_M/M.SA.TOTAL.PC_ACT.T.EA21+FR"  |>
  rsdmx::readSDMX() |>
  as_tibble() |>
  mutate(date = obsTime |> paste0("-01-01") |> as.Date()) |>
  filter(date >= as.Date("2000-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue/100, color = geo)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.position = c(0.2, 0.8),
        legend.title = element_blank()) +
  scale_color_manual(values = c("#003399", "#ED2939")) +
  xlab("") + ylab("Unemployment, Percentage of active population") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
                     labels = scales::percent_format(accuracy = 1))

With label

Code
geo <- "https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/codelist/ESTAT/GEO"  |>
  readSDMX() |>
  as_tibble() |>
  select(1, 4) |>
  setNames(c("geo", "Geo"))

"https://ec.europa.eu/eurostat/api/dissemination/sdmx/2.1/data/UNE_RT_M/M.SA.TOTAL.PC_ACT.T.EA21+FR"  |>
  rsdmx::readSDMX() |>
  as_tibble() |>
  mutate(date = obsTime |> paste0("-01-01") |> as.Date()) |>
  filter(date >= as.Date("2000-01-01")) |>
  left_join(geo, by = "geo") |>
  mutate(values = obsValue/100) |>
  add_flag_color("Geo") |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_flags + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1),
        legend.position = c(0.2, 0.8),
        legend.title = element_blank()) +
  scale_color_manual(values = c("#003399", "#ED2939")) +
  xlab("") + ylab("Unemployment, Percentage of active population") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
                     labels = scales::percent_format(accuracy = 1))

Example 2

REST Request