Authentifizierung und API-Schlüssel
Ein Schlüssel gilt für alle vier Zugänge. Hier steht, wie du ihn mitschickst, sicher aufbewahrst und ohne Ausfall austauschst.
Schlüssel im Header
#Jede Abfrage eines Datensatzes trägt den Schlüssel im Header Authorization nach dem Schema Bearer. Ein Schlüssel besteht aus dem Präfix qk_live_ und 40 weiteren Zeichen. Die API nimmt ihn nur im Header an, nicht als Parameter in der Adresse. So landet er nicht in Server-Logs oder im Browserverlauf.
SDK und CLI setzen den Header selbst. Sie lesen den Schlüssel aus QK_KEY, wenn du keinen übergibst.
Was ohne Schlüssel geht
#Einige Adressen sind offen, damit du die API erkunden kannst, bevor du ein Konto hast. Sie zählen nicht gegen ein Kontingent.
| Adresse | Inhalt |
|---|---|
https://api.quellenkontor.dev/v1/datensaetze | Katalog aller Datensätze mit Parametern und Endpunkten |
https://api.quellenkontor.dev/v1/aenderungen | Änderungsprotokoll |
https://api.quellenkontor.dev/v1/openapi.json | OpenAPI-Beschreibung |
| MCP: initialize, tools/list | Verbindung aufbauen und Werkzeuge auflisten |
Jede Abfrage eines Datensatzes braucht sonst einen Schlüssel, auch im Tarif Kostenlos. Eine Ausnahme ist die Sandbox: drei Datensätze antworten auch ganz ohne Konto, dafür streng begrenzt.
Sandbox: drei Datensätze ohne Konto
Mindestlohn, Feiertage, Beitragsbemessungsgrenzen beantworten eine Abfrage ohne den Header Authorization, begrenzt auf 50 Abfragen am Tag je IP-Adresse (rollierend, kein fester Kalendertag). Praktisch für einen ersten Test in der Konsole oder ein öffentliches Widget ohne eigenes Backend. Sobald du einen Header Authorization mitschickst, egal ob gültig, greift die Sandbox nicht mehr, dann zählt der normale Weg mit Schlüssel.
Die Antwort ist inhaltlich dieselbe wie mit Schlüssel, trägt zusätzlich einen Hinweis im Feld hinweise und den Header X-Kostenloser-Schluessel. Für alle Datensätze und ein Kontingent im Monat statt am Tag lohnt sich der kostenlose Schlüssel, siehe Schnellstart.
Sicher aufbewahren
#- Der Schlüssel gehört auf den Server: in eine Umgebungsvariable, einen Secret-Speicher wie die Environment Variables bei Vercel oder die Secrets in GitHub Actions.
- Nie in Frontend-Code, mobile Apps oder öffentliche Repositories. Alles, was im Browser läuft, kann jeder Besucher auslesen.
- Dateien wie
.envgehören in.gitignore. - Bei uns liegt nur ein Hash des Schlüssels. Wir können dir einen verlorenen Schlüssel deshalb nicht erneut anzeigen, nur einen neuen erzeugen lassen.
Mehrere Schlüssel
#Leg für jede Umgebung und jede Anwendung einen eigenen Schlüssel an, zum Beispiel "Produktion", "Staging" und "Entwicklung". Im Konto siehst du je Schlüssel, wann er zuletzt genutzt wurde. Das Kontingent gilt für das ganze Konto, nicht je Schlüssel.
| Tarif | Aktive Schlüssel |
|---|---|
| Kostenlos | 3 |
| Starter | 5 |
| Pro | 10 |
| Enterprise | 25 |
Schlüssel tauschen ohne Ausfall
#Wenn ein Mitarbeiter geht oder du Schlüssel regelmäßig erneuerst, tauschst du sie in vier Schritten, ohne dass eine Abfrage scheitert:
- Im Konto einen neuen Schlüssel erzeugen. Der alte bleibt aktiv.
- Den neuen Schlüssel in deiner Konfiguration hinterlegen und die Anwendung neu ausrollen.
- Im Konto prüfen, dass der alte Schlüssel nicht mehr genutzt wird: Die Spalte "Zuletzt genutzt" bleibt stehen.
- Den alten Schlüssel sperren.
Schlüssel sperren
#Ein gesperrter Schlüssel wirkt sofort nicht mehr: Die nächste Abfrage mit ihm bekommt den Status 401 und den Code schluessel_ungueltig. Eine Sperre lässt sich nicht aufheben. Erzeuge danach einen neuen Schlüssel.
Fehler bei der Anmeldung
#| Status | Code | Bedeutung |
|---|---|---|
| 401 | schluessel_fehlt | Kein Header Authorization oder kein Bearer-Schlüssel darin |
| 401 | schluessel_ungueltig | Schlüssel unbekannt, falsch kopiert oder gesperrt |
Antworten mit Status 401 tragen zusätzlich den Header WWW-Authenticate. Der MCP-Server antwortet bei fehlendem Schlüssel ebenfalls mit 401, damit Clients den Bedarf erkennen. Alle weiteren Codes stehen unter Fehler.
Konto und Anmeldung im Browser
#Das Konto auf der Website nutzt keine Passwörter. Du meldest dich über einen Link per E-Mail an, der 20 Minuten gilt und nur einmal funktioniert. Danach bleibst du 30 Tage angemeldet. "Abmelden" beendet die Sitzung auf allen Geräten. Deine API-Schlüssel bleiben davon unberührt: Sie gelten, bis du sie sperrst.
Fehlt etwas oder ist etwas unklar? Schreib uns, wir ergänzen die Doku.