spicyapiDokumentation
Mit der API entwickeln
Hauptinhalt

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-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

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

TeilZweck
sk-spicy-Festes Präfix zur Erkennung in Logs, Repositories und GitHub Secret Scanning
Nächste 8 ZeichenSuchsegment für schnellen Datensatzzugriff; trotzdem wird der ganze Key geprüft
Übrige 40Rest 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

  1. Öffnen Sie Konsole → API-Keys und klicken auf Key erstellen.
  2. Benennen Sie ihn nach dem nutzenden Dienst, etwa production backend oder staging worker. Beim Widerruf müssen Sie ihn erkennen.
  3. Optional legen Sie unter Erweitert Ausgabenlimits, Modellfreigabeliste, IP-Freigabeliste und Ablaufdatum fest. Alles ist später änderbar.
  4. 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 .env vor dem ersten Commit zur .gitignore hinzu.
  • Auf Server oder Hostingplattform: Verwenden Sie Geheimnis- oder Umgebungsvariableneinstellungen und lesen im Code SPICY_API_KEY aus 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änkungNutzenGeschäftscode bei Erreichen
Tägliches AusgabenlimitNeue Keys haben ohne Ihre Einstellung kein Limit. Eigener Betrag begrenzt Fehlkonfigurationen oder Offenlegung. Erneuerung jeden UTC-Tag40202
MonatsbudgetErlaubte Ausgaben dieses Keys im aktuellen Kalendermonat nach UTC40202
GesamtausgabenlimitLebenslang maximaler Betrag; nützlich für Partnerkeys40202
AblaufdatumKey endet am Ende des gewählten UTC-Tages401
IP-FreigabelisteNur aufgeführte Adressen oder CIDR-Bereiche dürfen aufrufen; für serverseitige Integrationen empfohlen40302
ModellfreigabelisteEtwa günstige Modelle für Staging-Keys. Ohne Einschränkung sind auch später hinzugefügte Modelle aufrufbar40301

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 KeyErgebnis
Task lesen (recordInfo), wiederholen, vernichten oder Downloadlink anfragen404, 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 wiederholen409, 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 msgUrsacheNächster Schritt
Missing credentialsKein Key kam anSchreibweise 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 recognizedEtwas wurde gesendet, aber kein SpicyAPI-KeyKeys beginnen mit sk-spicy-. Fehlendes Bearer , fehlende oder zusätzliche Zeichen, Anführungszeichen und kopierte Zeilenumbrüche prüfen
Credentials are invalid or expiredRichtig geformter Key existiert nicht, wurde widerrufen oder ist abgelaufenAbsichtlich 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.

Auf dieser Seite