---
name: banco-de-espana-statistics-api-ingestion
description: "How to get Banco de España Statistics API data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load a Banco de España series into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/banco-de-espana-statistics-api
Provider: https://www.bde.es/webbe/en/estadisticas/recursos/api-estadisticas-bde.html
Checked against the provider's documentation: 2026-11-01

## Access
- No account or key. The JSON series endpoints are public.

## Request
```bash
curl 'https://app.bde.es/bierest/resources/srdatosapp/listaSeries?idioma=en&series=D_1NBAF472&rango=30M'
```

## Format
JSON array whose series object contains code, long and short descriptions, frequency, decimals, symbol, metadata, full coverage dates and parallel date and value arrays.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""Banco de Espana monthly series sample -> pandas -> Parquet. No key."""
import requests
import pandas as pd

URL = "https://app.bde.es/bierest/resources/srdatosapp/listaSeries"
params = {"idioma": "en", "series": "D_1NBAF472", "rango": "30M"}
r = requests.get(URL, params=params, timeout=60)
r.raise_for_status()
item = r.json()[0]
df = pd.DataFrame({"date": item["fechas"], "value": item["valores"]})
df["date"] = pd.to_datetime(df["date"], utc=True)
df["series"] = item["serie"]
df["frequency"] = item["codFrecuencia"]
df.to_parquet("banco_de_espana_sample.parquet", index=False)
print(len(df), "observations", item["serie"], df["date"].min().date(), "to", df["date"].max().date())
```
Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 31 observations D_1NBAF472 2024-03-01 to 2026-09-01

## Limits
- Rate limit: Not stated.
- If time_range is omitted, the API returns the smallest default window for that series frequency.
- MAX is documented for monthly, quarterly and annual series; daily windows are 3M, 12M or 36M.

## Quirks
- The fechas and valores arrays are parallel and the checked response is newest-first.
- Monthly, quarterly and annual timestamps represent reference periods using provider-defined dates, not publication instants.
- Series codes can contain # or %, which must be URL-encoded as %23 or %25.

## Terms and attribution
- Cite Banco de España using the provider's unprocessed or processed wording.
- Mention the source's last update date when available and preserve content, metadata and meaning.
- The reuse policy excludes confidential and third-party data.
- Terms page: https://www.bde.es/wbe/en/estadisticas/recursos/terminos/terminos-de-uso.html

## Sources
- https://www.bde.es/webbe/en/estadisticas/recursos/api-estadisticas-bde.html: "The JSON (JavaScript Object Notation) web service described in this section allows access via URL requests to all the information available both in the Statistics section of the Banco de España and in the HERMES application."
- https://www.bde.es/wbe/en/estadisticas/recursos/terminos/terminos-de-uso.html: "The statistical information published on the Banco de España website is made available to the public free of charge, with open access and use, in accordance with the principles of transparency and reuse of public information."
- https://www.bde.es/wbe/en/estadisticas/recursos/terminos/terminos-de-uso.html: "The Banco de España must always be cited as the source"

## Help improve this skill
Missing a source, or see something to improve? Call the MCP tool suggest_source or feedback (or POST /api/suggest or /api/feedback). Reviewed ideas: https://signal-lab-jet.vercel.app/agent-suggestions

Information for educational purposes only. Free tiers, limits and licenses belong to the providers and may change; check the provider's own terms before using the data.
