Publication date 18/03/2026
Update date 19/03/2026
Icono de una API
Description

The European High-Value Datasets (HVD) regulation, established by Implementing Regulation (EU) 2023/138, consolidates the role of APIs as an essential infrastructure for the reuse of public information, making their availability a legal obligation and not just a good technological practice.

Since 9 June 2024, public bodies in all Member States are required to publish datasets classified as HVDs free of charge, in machine-readable formats and accessible via APIs. The six categories regulated are: geospatial data, Earth observation, environment, statistics, business information and mobility.

This framework is not merely declarative. Member States must report to the European Commission compliance status every two years, including persistent links to APIs that give access to such data. The situation in Spain in terms of transparency, open data and Systematic API Provisioning can be consulted in the indicators published by the Open Data Maturity Report.

In practice, this means that APIs are the bridge between the norm and reality. The regulation not only says what data must be opened, but also requires it to be done in such a way that it can be automatically integrated into applications, studies or digital services. Therefore, reviewing the public APIs available in Spain is a concrete way to understand how this framework is being applied on a day-to-day basis.

Inventory of public APIs in Spain

INE — API JSON (Tempus3)

The National Institute of Statistics offers a API REST that Exposes the entire database Tempus3 broadcast format JSON, which includes official statistical series on demography, economy, labour market, industry, services, prices, living conditions and other socio-economic indicators.

To make calls, the structure must follow the pattern https://servicios.ine.es/wstempus/js/{language}/{function}/{input}. The tip=AM parameter  allows you to get metadata along with the data, and tv filters by specific variables. For example, to obtain the population figures by province, simply consult the corresponding operation (IOE 30243) and filter by the desired geographical variable.

No authentication or API key required: any well-formed GET request returns data directly.

Example in Python — get the resident population series with metadata:

import requests

url = ("https://servicios.ine.es/wstempus/js/ES/"

       "DATOS_TABLA/t20/e245/p08/l0/01002.px?tip=AM")

response = requests.get(url)

data = response.json()

for serie in data[:3]:  # primeras 3 series

    name = series["Name"]

    last = series["Date"][-1]

    print(f"{name}: {last['Value']:,.0f} ({last['PeriodName']})")

    TOTAL AGES, TOTAL, Both sexes: 39,852,651 (1998)

    TOTAL AGES, TOTAL, Males: 19,488,465 (1998)

    TOTAL EDADES, TOTAL, Mujeres: 20,364,186 (1998)

AEMET — OpenData API REST

The State Meteorological Agency exposes its data through a REST API, documented with Swagger UI (an open-source tool that generates interactive documentation), observed meteorological data and official predictions, including temperature, precipitation, wind, alerts and adverse phenomena.

Unlike the INE, AEMET requires a Free API key, which is obtained by providing an email address in the portal opendata.aemet.es. A API key works as A type of "password" or identifier: it is used to allow the agency to know who is using the service, control the volume of requests and ensure proper use of the infrastructure.

A relevant technical aspect is that AEMET implements a two-call model: the first request returns a JSON with a temporary URL in the data field, and a second request to that URL retrieves the  actual dataset. The rate limit is 50 requests per minute.

Example in Python — daily weather data (double call):

import requests

API_KEY = "tu_api_key_aqui"

headers = {"api_key": API_KEY}

#1st call: Get temporary data URLs

url = ("https://opendata.aemet.es/opendata/api/"

        "Values/Climatological/Daily/Data/"

        "fechaini/2025-01-01T00:00:00UTC/"

       "fechafin/2025-01-10T23:59:59UTC/"

       "allseasons")

resp1 = requests.get(url, headers=headers).json()

#2nd call: Download the actual dataset

datos = requests.get(resp1["datos"], headers=headers).json()

for estacion in datos[:3]:

     print(f"{station['name']}: "

           f"Tmax={station.get('tmax','N/A')}°C, "

          f"Prec={estacion.get('prec','N/A')}mm")

CITFAGRO_88_GAITERO: Tmax=8.8°C, Prev=0.0mm

ABANILLA: Tmax=14,8°C, Prec=0,0mm

LA RODA DE ANDALUCÍA: Tmax=15.7°C, Prec=0.2mm

CNIG / IDEE — Servicios OGC y OGC API Features

The National Center for Geographic Information It publishes official geospatial data – base mapping, digital terrain models, river networks, administrative boundaries and other topographic elements – through interoperable services. These have evolved from WMS/WFS to the OGC API (Features, Maps and Processes), implemented with open software such as pygeoapi.

The main advantage of OGC API Features over WFS is the response format: instead of GML (heavy and complex), the data is served in GeoJSON and HTML, native formats of the web ecosystem. This allows them to be consumed directly from libraries such as Leaflet, OpenLayers or GDAL. Available datasets include Cartociudad addresses, hydrography, transport networks and geographical gazetteer.

Example in Python — query geographic features via OGC API:

import requests

# OGC API Features - Basic Geographical Gazetteer of Spain

base = "https://api-features.idee.es/collections"

collection = "falls" # Waterfalls

url = f"{base}/{collection}/items?limit=5&f=json"

resp = requests.get(url).json()

for feat in resp["features"]:

props = feat["properties"]

coords = feat["geometry"]["coordinates"]

print(f"{props['number']}: ({coords[0]:.4f}, {coords[1]:.4f})")

None: (-6.2132, 42.8982)

Cascada del Cervienzo: (-6.2572, 42.9763)

El Xaral Waterfall: (-6.3815, 42.9881)

Rexiu Waterfall: (-7.2256, 42.5743)

Santalla Waterfall: (-7.2543, 42.6510)

MITECO — Open Data Portal (CKAN)

The Ministry for the Ecological Transition maintains a CKAN-based portal  that exposes three access layers: the CKAN Action API for metadata and dataset search, the Datastore API (OpenAPI) for live queries on tabular resources, and  RDF/JSON-LD endpoints compliant with DCAT-AP and GeoDCAT-AP. In its catalogue you can find data on air quality, emissions and climate change, water (state of masses and hydrological planning), biodiversity and protected areas, waste, energy and environmental assessment.

Featured datasets include Natura 2000 Network protected areas, bodies of water, and greenhouse gas emissions projections.

Example in Python — search for datasets:

import requests

BASE = "https://catalogo.datosabiertos.miteco.gob.es/ catalog"

# Search for datasets containing 'natura 2000'

busqueda = requests.get(

    f"{BASE}/api/3/action/package_search",

params={"q": "natura 2000", "rows": 3},

).json()

for ds in busqueda["result"]["results"]:

print(f"{ds['title']} ({ds['num_resources']} resources)")

Protected Areas of the Natura 2000 Network (13 resources)

Database of Natura 2000 Network Protected Areas of Spain (CNTRYES) (1 resources)

Protected Areas of the Natura 2000 Network - API - High Value Data (1 resources)

Technical comparison

Organisim Protocol Format Authentication Rate limit HVD
INE REST JSON None Undeclared Yes (statistic)
AEMET REST JSON API key (free) 50 reg/min Yes (environment)
CNIG/IDEA OGC API/WFS GeoJSON/GML None Undeclared Yes (geoespatial)
MITECO CKAN/REST JSON/RDF None  Undeclared Yes (environment)

Figure 1. Comparative table of the APIs from various public agencies discussed in this post. Source: Compiled by the author – datos.gob.es.

The availability of public APIs isn't just a matter of technical convenience. From a data perspective, these interfaces enable three critical capabilities:

  • Pipeline automation: the periodic ingestion of public data can be orchestrated with standard tools (Airflow, Prefect, cron) without manual intervention or file downloads.
  • Reproducibility: API URLs act as static references to authoritative sources, facilitating auditing and traceability in analytics projects.
  • Interoperability: the use of open standards (REST, OGC API, DCAT-AP) allows heterogeneous sources to be crossed without depending on proprietary formats.

The public API ecosystem in Spain has different levels of development depending on the body and the sectoral scope. While entities such as the INE and AEMET have consolidated and well-documented interfaces, in other cases access is articulated through CKAN portals or traditional OGC services. The regulation regarding High Value Datasets (HVDs) is driving the progressive adoption of REST standards, although the degree of implementation evolves at different rates. For data professionals, these APIs are already a fully operational source that is increasingly common to integrate into data architectures in engineering and analytical environments.ás habitual en entornos analíticos y de ingeniería.

Content produced by Juan Benavente, a senior industrial engineer and expert in technologies related to the data economy. The content and views expressed in this publication are the sole responsibility of the author.