Authentifizierung
Key-Format, Einschränkungen je Key, sichtbare Tasks und sofortige Maßnahmen bei einem offengelegten API-Key.
Jeder API-Aufruf, der etwas erstellt, liest oder abrechnet, sendet Ihren API-Key im Authorization-Header. Einzige Ausnahme ist der öffentliche Modellkatalog zur Bewertung: Er benötigt keinen Key.
Authorization: Bearer sk-spicy-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxDie native API (/api/v1/*) akzeptiert nur Bearer-Keys, keine Cookies oder Abfrageparameter.
Die Text- und Videokompatibilitätsendpunkte (/v1, /v1beta) verwenden denselben Key und akzeptieren zusätzlich x-api-key aus Anthropic-SDKs und x-goog-api-key aus Google-GenAI-SDKs. Die offiziellen SDKs funktionieren so mit lediglich geänderter Basis-URL. Siehe Text und Streaming. Diese beiden Header haben unter /api/v1 keine Wirkung; kein Endpunkt akzeptiert Keys im URL-Abfragestring.
API-Keys und Konsole sind getrennt
Nur /api/v1, /v1 und /v1beta akzeptieren API-Keys. Die Webkonsole verwendet eine eigene Browsersitzung. Eine Konsolenanmeldung ist daher kein API-Key; ein offengelegter Key ermöglicht keine Konsolenanmeldung. Falsche Zugangsdatenart führt immer zu 401, nie zu einem Berechtigungsfehler.
Wie ein Key aussieht
Festes Präfix sk-spicy-, gefolgt von 48 kleinen Hexadezimalzeichen.
| Teil | Zweck |
|---|---|
sk-spicy- | Festes Präfix zur Erkennung in Logs, Repositories und GitHub Secret Scanning |
| Nächste 8 Zeichen | Suchsegment für schnellen Datensatzzugriff; trotzdem wird der ganze Key geprüft |
| Übrige 40 | Rest des Geheimnisses. Gespeichert wird nur ein mit Pepper geschützter SHA-256-Hash des ganzen Keys; auch wir können ihn nicht zurücklesen |
Das Präfix ist bewusst gewählt: Eine Erkennung mit Benachrichtigung ist besser, als erst fremde Guthabenausgaben zu bemerken.
Ein Key wird genau einmal angezeigt
Kopieren Sie ihn oder klicken auf Als Datei speichern, bevor Sie den Dialog schließen. Bei Verlust erstellen Sie einen neuen. Wir können ihn nicht wiederherstellen – genau das ist beabsichtigt. Wiederherstellbarkeit würde Klartextspeicherung bedeuten.
Einen Key erstellen
- Öffnen Sie Konsole → API-Keys und klicken auf Key erstellen.
- Benennen Sie ihn nach dem nutzenden Dienst, etwa
production backendoderstaging worker. Beim Widerruf müssen Sie ihn erkennen. - Optional legen Sie unter Erweitert Ausgabenlimits, Modellfreigabeliste, IP-Freigabeliste und Ablaufdatum fest. Alles ist später änderbar.
- Kopieren Sie den Key oder klicken auf Als Datei speichern und bestätigen die Speicherung. Nach Dialogende wird er nicht erneut angezeigt.
Die Erstellung benötigt die Teamrolle Inhaber, Administrator oder Entwickler. Der Key gehört zum oben links gewählten Team; Nutzung und Limits zählen für dieses Team. Jedes Team darf bis zu 50 aktive Keys haben. Für bezahlte Arbeit benötigt Ihr Konto außerdem bestätigte E-Mail und Guthaben. Siehe Kontoeinrichtung.
Wo Sie den Key aufbewahren
- Am eigenen Rechner zum Testen:
export SPICY_API_KEY="…"im Terminal, gültig bis zum Fensterschließen, oder eine vom Code geladene.env-Datei. Fügen Sie.envvor dem ersten Commit zur.gitignorehinzu. - Auf Server oder Hostingplattform: Verwenden Sie Geheimnis- oder Umgebungsvariableneinstellungen und lesen im Code
SPICY_API_KEYaus der Umgebung. - Niemals in Quellcode, Chat, Screenshot, Supportticket oder Prompt eines KI-Assistenten einfügen.
Liefern Sie einen Key niemals an Clients aus
Alles in einem Browser oder einer App lässt sich auslesen
Bundling, Verschleierung oder Aufteilung über Dateien schützen nicht. Mit Entwicklertools oder Decompiler lässt sich der Key auslesen; ein offengelegter Key funktioniert bis zum ausgeschöpften Guthaben oder Limit.
Benötigt ein Frontend Generierung, führen Sie sie über Ihr eigenes Backend: Der Browser ruft Sie auf, Sie uns. Dort setzen Sie ohnehin eigene Nutzerkontingente durch.
Dasselbe gilt für mobile Binärdateien, Desktopclients, öffentliche Notebooks, CI-Logs und Inhalte eines ins Supportticket kopierten curl -v-Dumps.
Eigene Werkzeuge im eigenen Browser sind ein anderer Fall. Die API akzeptiert Browseraufrufe. Selbst genutzte Werkzeuge wie die SillyTavern-Erweiterung oder eine Rollenspiel-App, in die Sie Ihren eigenen Key einfügen, dürfen direkt aufrufen. Die Regel oben betrifft Keys in etwas, das andere laden. Geben Sie jedem Werkzeug einen eigenen Key mit Tageslimit, um Ausgaben zuzuordnen und separat zu widerrufen.
Einschränkungen je Key
Konfigurieren Sie diese bei Erstellung oder später in der Konsole. Sie werden serverseitig durchgesetzt.
| Einschränkung | Nutzen | Geschäftscode bei Erreichen |
|---|---|---|
| Tägliches Ausgabenlimit | Neue Keys haben ohne Ihre Einstellung kein Limit. Eigener Betrag begrenzt Fehlkonfigurationen oder Offenlegung. Erneuerung jeden UTC-Tag | 40202 |
| Monatsbudget | Erlaubte Ausgaben dieses Keys im aktuellen Kalendermonat nach UTC | 40202 |
| Gesamtausgabenlimit | Lebenslang maximaler Betrag; nützlich für Partnerkeys | 40202 |
| Ablaufdatum | Key endet am Ende des gewählten UTC-Tages | 401 |
| IP-Freigabeliste | Nur aufgeführte Adressen oder CIDR-Bereiche dürfen aufrufen; für serverseitige Integrationen empfohlen | 40302 |
| Modellfreigabeliste | Etwa günstige Modelle für Staging-Keys. Ohne Einschränkung sind auch später hinzugefügte Modelle aufrufbar | 40301 |
Die Karte jedes Keys zeigt aktuelle Limits, die Sie jederzeit ändern können.
Limits zählen für laufende Tasks reserviertes Geld und bereits ausgegebenes Geld. Ein Key kann das Limit deshalb bei noch laufenden Tasks erreichen. msg nennt das erreichte Limit. Nennt msg bei 40202 ein Plattformkontingent, liegt es nicht am Key: Ein weiterer Key hilft nicht; versuchen Sie es später.
Die IP-Freigabeliste prüft Ihre tatsächliche öffentliche Adresse aus Sicht des Edge-Netzwerks, nicht die Adresse des letzten Proxys. Ihre Ausgangsadresse ist die öffentliche IP Ihrer Serveranfragen. Hostingplattformen nennen sie meist in Netzwerkeinstellungen; am eigenen Rechner zeigt curl https://ifconfig.me sie an.
Tasks gehören dem erstellenden Key
Ein Task ist über die API nur für den erstellenden API-Key sichtbar. Bei jedem anderen Key, auch desselben Teams:
| Aktion mit anderem Key | Ergebnis |
|---|---|
Task lesen (recordInfo), wiederholen, vernichten oder Downloadlink anfragen | 404, wie bei nicht existierendem Task |
Tasks auflisten (GET /api/v1/jobs) oder Nutzung lesen (GET /api/v1/usage) | Nur eigene Tasks und Ausgaben dieses Keys |
Einreichung mit gleichem Idempotency-Key wiederholen | 409, ohne ursprüngliche Task-ID |
409 nach Key-Wechsel bedeutet nicht, dass kein Task erstellt wurde
Bei Timeout unter einem Key und Wiederholung unter anderem kann 409 einen bereits laufenden, kostenpflichtigen Task verbergen. Behandeln Sie das nicht als „nicht erstellt“ und senden mit neuem Idempotenzschlüssel: Das bezahlt eine zweite Generierung. Verwenden Sie den Key des ersten Versuchs oder suchen den Task in der Konsole.
Zwei Dinge sind nicht keygebunden. Webhooks werden auch nach Widerruf des erstellenden Keys ausgeliefert. Und alle Teamtasks sind unabhängig vom Key unter Konsole → Logs aufgeführt; die Detailansicht zeigt Verwendeter Key.
Rotation
- Ein Key je Umgebung – Produktion, Staging, lokal – erlaubt separaten Widerruf.
- Geplante Rotation: Erstellen Sie den neuen Key und senden damit nur neue Tasks. Halten Sie den alten aktiv, bis alle seine Tasks abgeschlossen sind, spätestens bis zum jeweiligen
deadlineAt, und Ergebnisse eingesammelt wurden. Widerrufen Sie ihn dann. Diese Reihenfolge gilt nur für weiterhin vertrauenswürdige alte Keys. - Widerruf wirkt sofort und ist endgültig. Es gibt keinen abzuwartenden Cache und keine Reaktivierung; Sie erstellen einen neuen Key.
Nach einer Offenlegung
Sofort widerrufen
Öffnen Sie in Konsole → API-Keys die Aktionen des Keys und wählen Widerrufen. Das wirkt sofort.
Warten Sie nicht auf eigene laufende Tasks: Diese sind danach mit diesem Key nicht mehr per API lesbar. Bereits angenommene Tasks laufen und werden weiterhin berechnet. Holen Sie Ergebnisse per Webhook oder Konsole → Logs. Bei Offenlegung ist Abwarten unangebracht.
Ersatz erstellen
Erstellen Sie einen neuen Key und aktualisieren die Serverkonfiguration. Lassen Sie den offengelegten Key nicht während der Ersatzvorbereitung aktiv.
Nutzung prüfen
Öffnen Sie Konsole → Logs für den Offenlegungszeitraum und suchen fremde Tasks: unbekannte Modelle, ungewöhnliche Menge oder unerklärliche Ausgaben. Jeder Task zeigt Verwendeter Key; CSV exportieren enthält die Key-ID jedes Tasks. Die API-Key-Seite zeigt außerdem die letzte Verwendung.
Ersatz begrenzen
Geben Sie dem neuen Key passende IP-Freigabeliste und Tageslimit. Entfernen Sie die ursprüngliche Offenlegung aus Code, Logs oder Bereitstellungskonfiguration.
Bei unerwarteten Ausgaben kontaktieren Sie uns über Konsole → Support mit Task-IDs oder request_id-Werten.
Wie ein Fehler aussieht
{
"code": 401,
"msg": "Credentials are invalid or expired",
"request_id": "req_01k3m8x9q2z4v7n5p6r8s0t1w2"
}Auch der HTTP-Status ist 401. Jeder Authentifizierungsfehler liefert code: 401; msg nennt die Art:
Anfang von msg | Ursache | Nächster Schritt |
|---|---|---|
Missing credentials | Kein Key kam an | Schreibweise Authorization: Bearer … prüfen und SPICY_API_KEY im sendenden Prozess setzen; Variable eines Terminalfensters existiert nicht in einem anderen |
API key format is not recognized | Etwas wurde gesendet, aber kein SpicyAPI-Key | Keys beginnen mit sk-spicy-. Fehlendes Bearer , fehlende oder zusätzliche Zeichen, Anführungszeichen und kopierte Zeilenumbrüche prüfen |
Credentials are invalid or expired | Richtig geformter Key existiert nicht, wurde widerrufen oder ist abgelaufen | Absichtlich nicht unterscheidbar, damit niemand existierende Keys sondieren kann. Status unter Konsole → API-Keys prüfen oder neuen erstellen |
Verzweigen Sie anhand von code, nicht anhand des Textes: Formulierungen können sich ändern und folgen Ihrer Fehlersprache. Weitere Unterscheidungen unter Fehler.
Kann das Konto selbst nicht aufrufen, etwa wegen unbestätigter E-Mail oder Sperrung, erhalten Sie stattdessen 403. Key-Wechsel hilft dabei nicht.

