Entwickler-API
Schweizer Zins-API
Eine kostenlose, öffentliche JSON-API für Schweizer Zinsdaten: den SNB-Leitzins, den hypothekarischen Referenzzinssatz und die aggregierten Hypothekar-Richtsätze der Schweizer Anbieter. Kein API-Key, keine Registrierung — fair use. Die Daten werden täglich aktualisiert und direkt vom Edge ausgeliefert.
Endpoints
| Endpoint | Beschreibung | Quelle |
|---|---|---|
GET /api/v1/policy-rate | SNB-Leitzins — aktueller Wert plus vollständige Historie der Zinsentscheide seit 2008. | Schweizerische Nationalbank (SNB) |
GET /api/v1/reference-rate | Hypothekarischer Referenzzinssatz — aktueller Wert plus Historie seit 2008, massgebend für Mietzinsanpassungen. | Bundesamt für Wohnungswesen (BWO) |
GET /api/v1/mortgage-rates | Aggregierte Hypothekar-Richtsätze pro Anbieter — Durchschnitt der publizierten Sätze über unsere Quellen, für Saron-, variable und Festhypotheken. | Tägliche hypox-Erhebung bei Schweizer Anbietern |
Antwort
Die beiden Zinsreihen-Endpoints (policy-rate, reference-rate) liefern dieselbe Struktur und antworten immer mit HTTP 200 — ein statischer Fallback stellt sicher, dass die Reihe nie leer ist.
{
"rateType": "snb-policy-rate",
"current": { "rate": 0, "validFrom": "2025-06-19" },
"changes": [
{ "validFrom": "2008-12-11", "rate": 0.5 },
{ "validFrom": "2025-06-19", "rate": 0 }
],
"updatedAt": "2026-06-18",
"provider": "hypox.ch"
} | Feld | Typ | Beschreibung |
|---|---|---|
rateType | string | Kennung der Reihe: "snb-policy-rate" oder "mortgage-reference-rate". |
current | object | Der aktuell gültige Eintrag — immer das letzte Element von "changes". |
current.rate | number | Satz in Prozent pro Jahr (Prozentpunkte), z. B. 0.5. |
current.validFrom | string | ISO-Datum (JJJJ-MM-TT), ab dem der Satz gilt. |
changes | array | Alle Änderungspunkte in aufsteigender Reihenfolge; der Satz gilt bis zum nächsten Eintrag. |
updatedAt | string | ISO-Zeitstempel bzw. -Datum der letzten Aktualisierung. |
provider | string | Immer "hypox.ch". |
Antwort: mortgage-rates
Der Endpoint /api/v1/mortgage-rates liefert pro Anbieter die aggregierten Richtsätze (Durchschnitt über unsere Quellen, nur Standard-Konditionen). Für diese Daten gibt es keinen statischen Fallback: Sind sie vorübergehend nicht verfügbar, antwortet der Endpoint mit HTTP 503 (ungecacht) — Integrationen sollten diesen Fall behandeln.
{
"rateType": "mortgage-provider-averages",
"count": 57,
"providers": [
{
"id": "zkb",
"name": "Zürcher Kantonalbank",
"rates": [
{ "product": "saron", "termYears": null, "rate": 1.05, "isFromRate": false, "sources": 2 },
{ "product": "fixed", "termYears": 10, "rate": 1.58, "isFromRate": true, "sources": 3 }
]
}
],
"updatedAt": "2026-07-10T05:30:00.000Z",
"provider": "hypox.ch"
} | Feld | Typ | Beschreibung |
|---|---|---|
rateType | string | Immer "mortgage-provider-averages". |
count | number | Anzahl Anbieter in "providers". |
providers | array | Ein Eintrag pro Anbieter, alphabetisch nach "id" sortiert. |
providers[].id | string | Stabiler Anbieter-Slug, z. B. "zkb". |
providers[].name | string | Anzeigename des Anbieters. |
providers[].rates | array | Ein Eintrag pro Produkt (Saron, variabel, Festlaufzeiten). |
rates[].product | string | "saron", "variable" oder "fixed". |
rates[].termYears | number | null | Laufzeit in Jahren bei Festhypotheken, sonst null. |
rates[].rate | number | Durchschnittlicher publizierter Satz in Prozent pro Jahr. |
rates[].isFromRate | boolean | true, wenn mindestens eine Quelle einen «ab»-Satz publiziert. |
rates[].sources | number | Anzahl Quellen, über die gemittelt wurde. |
updatedAt | string | ISO-Zeitstempel bzw. -Datum der letzten Aktualisierung. |
provider | string | Immer "hypox.ch". |
Aktualität & Caching
- Die Daten werden täglich aktualisiert: Leitzins und Referenzzinssatz aus den offiziellen Quellen (SNB und BWO), die Anbieter-Richtsätze aus unserer eigenen Erhebung.
- Antworten werden eine Stunde am Edge zwischengespeichert (Cache-Control: public, s-maxage=3600).
- Diese Sätze ändern sich nur wenige Male pro Jahr — die stündliche Zwischenspeicherung ist also mehr als aktuell genug.
Beispiele
curl
curl -s https://www.hypox.ch/api/v1/policy-rate | jq '.current' JavaScript
const res = await fetch("https://www.hypox.ch/api/v1/policy-rate");
const data = await res.json();
console.log(data.current.rate, "% —", data.current.validFrom); Google Sheets
=IMPORTDATA("https://www.hypox.ch/api/v1/policy-rate?format=csv") Alle Endpoints liefern mit ?format=csv eine flache CSV-Tabelle — ideal für Google Sheets (IMPORTDATA), Excel oder Datenpipelines.
Embed-Widget: aktueller Leitzins
Du willst den aktuellen SNB-Leitzins auf deiner Website anzeigen, ohne selbst die API anzubinden? Kopiere dieses Snippet: Das Script füllt den Platzhalter mit dem aktuellen Wert — der Rest ist normales HTML und lässt sich frei umformulieren und stylen.
<p>
Aktueller SNB-Leitzins: <strong data-hypox-rate>–</strong>
(Quelle: <a href="https://www.hypox.ch/de/leitzins">hypox.ch</a>)
</p>
<script async src="https://www.hypox.ch/embed/policy-rate.js"></script> Vorschau
Aktueller SNB-Leitzins: – (Quelle: hypox.ch)
Das Script ist winzig (unter 1 KB), lädt asynchron und verändert ausschliesslich Elemente mit dem Attribut data-hypox-rate. Wir freuen uns, wenn der Quellen-Link auf hypox.ch im Snippet bleibt.
CORS
Die API sendet Access-Control-Allow-Origin: * — du kannst sie also direkt aus jedem Browser-Frontend abfragen.
Versionierung
Der Pfad ist versioniert (/api/v1/). Innerhalb von v1 kommen nur Felder hinzu, es werden keine entfernt oder umbenannt — bestehende Integrationen laufen also weiter.
Namensnennung & Nutzung
Kostenlos nutzbar. Wenn dir die Daten helfen, freuen wir uns über einen Link zurück auf hypox.ch. Die zugrunde liegenden Zahlen sind offizielle öffentliche Daten der Schweizerischen Nationalbank (SNB) und des Bundesamts für Wohnungswesen (BWO); hypox.ch sammelt und veröffentlicht sie. Ohne Gewähr — für rechtsverbindliche Entscheide immer die offiziellen Quellen prüfen.
Fragen? hello@hypox.ch