Swiss franc exchange rates, monthly
Swiss franc foreign exchange rates from the SNB data portal cube 'devkum': monthly averages and end-of-month values, quoted at 11 am in CHF per foreign currency unit. History from 1914. The SNB publishes this cube monthly.
Source: Swiss National Bank — data portal25,561 rowsUpdated: 9/22/2026
switzerlandfxexchange-rateschfcentral-bank
Quality
97
Attribution
Swiss National Bank (SNB) data portal, data.snb.ch
Schema
| Column | Type | Description |
|---|---|---|
| date | timestamp | Observation date from the provider's time series. Daily cubes (P1D_L) use calendar dates; monthly cubes (P1M) report YYYY-MM, mapped to the first day of the month. |
| series_id | string | Stable machine identifier: snake_case slug of the provider's own dimension codes, in dimension order (e.g. chf_10j). |
| series_label | string | Human-readable series name built only from the provider's own dimension labels (the /dimensions endpoint of the SNB data portal), joined with ' — ', e.g. 'CHF Swiss Confederation bond issues — 10 years'. |
| unit | string | Canonical unit mapped from the provider's metadata.unit string: 'In percent' -> %, 'In CHF millions' -> CHF millions, 'Rates at 11 am. in CHF' -> CHF per foreign currency unit. Note: the SNB's metadata declares 'In percent' for every snbgwdzid series, even though the 'Discount in basis points' label implies basis points and 'Threshold factor' is unitless — that is the provider's own metadata. |
| value | float | Observed value as a number. Observations the provider reports as null are dropped. |
| d0 | string | Provider dimension code for 'Monthly average/End of month' (the SNB data portal dimension name). The matching human-readable label is part of series_label. |
| d1 | string | Provider dimension code for 'Currency' (the SNB data portal dimension name). The matching human-readable label is part of series_label. |
Sample rows
| date | series_id | series_label | unit | value | d0 | d1 |
|---|---|---|---|---|---|---|
| 1999-01-01T00:00:00 | m0_ars1 | Monthly average — Argentina – ARS 1 | CHF per foreign currency unit | 138.279 | M0 | ARS1 |
| 1999-02-01T00:00:00 | m0_ars1 | Monthly average — Argentina – ARS 1 | CHF per foreign currency unit | 142.593 | M0 | ARS1 |
| 1999-03-01T00:00:00 | m0_ars1 | Monthly average — Argentina – ARS 1 | CHF per foreign currency unit | 146.5009 | M0 | ARS1 |
| 1999-04-01T00:00:00 | m0_ars1 | Monthly average — Argentina – ARS 1 | CHF per foreign currency unit | 149.655 | M0 | ARS1 |
| 1999-05-01T00:00:00 | m0_ars1 | Monthly average — Argentina – ARS 1 | CHF per foreign currency unit | 150.7474 | M0 | ARS1 |
Download sample data
Download the full sample snapshot for this dataset (sample rows, not the complete dataset).
Use with an LLM
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
cURL
curl "https://datazimuts.com/v1/datasets/snb/snb_fx_rates" | jq '{title, rows, columns_count, license}'Python
import requests
ds = requests.get("https://datazimuts.com/v1/datasets/snb/snb_fx_rates").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/snb/snb_fx_rates
Tip: fetch /llms.txt for the full machine-readable catalog.