---
name: bis-data-portal-ingestion
description: "How to get BIS Data Portal SDMX API data into a pandas DataFrame and Parquet: access, the request, the format, limits, quirks and terms."
---

# Load BIS central-bank policy rates into pandas and Parquet

Source entry: https://signal-lab-jet.vercel.app/datasets/bis-data-portal
Provider: https://data.bis.org/help/api
Checked against the provider's documentation: 2026-11-01

## Access
- No account or key was required for the checked SDMX CSV query.
- BIS permitted-use terms require source attribution and constrain misleading or separately charged reuse.

## Request
```bash
curl 'https://stats.bis.org/api/v1/data/WS_CBPOL/.?startPeriod=2026-10-01&format=csvfile'
```

## Format
SDMX CSV observations with frequency, reference area, unit, period, value, compilation details, observation status and series identifiers.

## Load into pandas and Parquet
Needs Python 3 with requests, pandas and pyarrow.
```python
"""BIS central-bank policy rates since October 2026 -> pandas -> Parquet. No key."""
import io
import requests
import pandas as pd

URL = "https://stats.bis.org/api/v1/data/WS_CBPOL/.?startPeriod=2026-10-01&format=csvfile"
r = requests.get(URL, timeout=60)
r.raise_for_status()
df = pd.read_csv(io.StringIO(r.text))
df["TIME_PERIOD"] = pd.to_datetime(df["TIME_PERIOD"], errors="coerce")
df.to_parquet("bis_policy_rates.parquet", index=False)
print(len(df), "observations", df["REF_AREA"].nunique(), "areas",
      df["TIME_PERIOD"].min().date().isoformat(), "to",
      df["TIME_PERIOD"].max().date().isoformat())
```
Run by us on 2026-11-01 (python 3.13.5 | pandas 3.1.0 | pyarrow 26.0.0 | requests 2.34.2). Result: 769 observations 36 areas 2026-10-01 to 2026-10-27

## Limits
- Rate limit: Not stated.
- History, frequency and update schedule vary by dataflow.
- BIS may limit or suspend an IP address under its API terms.

## Quirks
- TIME_PERIOD frequency varies across dataflows; do not assume every series is daily.
- Observation status and break fields matter because values can be provisional, revised or affected by methodological breaks.
- The API namespace in the tested URL is /api/v1, while the provider documentation describes the current SDMX REST specification separately.

## Terms and attribution
- Cite BIS when reproducing its statistics.
- Do not imply BIS endorsement or affiliation; in a commercial product, including BIS statistics must not add a charge for users.
- BIS provides the API and statistics as-is and may change or suspend access.
- Terms page: https://data.bis.org/help/legal

## Sources
- https://data.bis.org/help/legal: "The use of the statistics is unrestricted, provided that:"
- https://data.bis.org/help/legal: "if the statistics are reproduced, the BIS must be cited in your publication or product as the source of the statistics;"
- https://data.bis.org/help/legal: "The web service complies with the SDMX RESTful v2.1.0 specification"
- https://data.bis.org/faq: "Data are released every quarter."

## 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.
