Zum Inhalt springen
Authentifizierung

Authentifizierung

Jede Anfrage trägt Ihren API-Key in einem Header. Ein Key pro Konto funktioniert bei jedem Endpunkt und jedem Modell, in einer von zwei Header-Formen.

Header · OpenAI-SDKs
Authorization: Bearer YOUR_API_KEY
Header · Anthropic-SDKs
x-api-key: YOUR_API_KEY

Akzeptierte Header

Beide Header werden bei jedem /v1-Endpunkt gelesen, unabhängig vom Format, das der Endpunkt spricht. Senden Sie einen davon.

Header Beschreibung
Authorization: Bearer <key> Wird zuerst geprüft. Schreiben Sie Bearer mit großem B und einem Leerzeichen vor dem Key. OpenAI-SDKs senden diesen Header.
x-api-key: <key> Wird gelesen, wenn die Anfrage keinen Header Authorization: Bearer hat. Anthropic-SDKs senden diesen Header.

Setzen Sie bei einem OpenAI-SDK den Key und die Base-URL; das SDK sendet Authorization: Bearer.

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com/v1"
)

response = client.chat.completions.create(
    model="shannon-3",
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ]
)

print(response.choices[0].message.content)

Setzen Sie bei einem Anthropic-SDK den Key und die Base-URL ohne /v1; das SDK sendet x-api-key.

import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_API_KEY",
    base_url="https://api.shannon-ai.com"
)

message = client.messages.create(
    model="shannon-3",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Hello, Shannon!"}
    ]
)

print("".join(block.text for block in message.content if block.type == "text"))

Welche Endpunkte einen Key brauchen

Endpunkt Key
POST /v1/chat/completions Erforderlich
POST /v1/messages Erforderlich
POST /v1/responses Erforderlich
POST /v1/tokenize Erforderlich
POST /v1/messages/count_tokens Erforderlich
GET /v1/models Nicht nötig

Ihr Key

  • Ein Key ist sk- gefolgt von 43 Zeichen aus A–Z, a–z, 0–9, - und _: insgesamt 46 Zeichen.
  • Jedes Konto hat genau einen Key. Er wird erstellt, wenn Sie zum ersten Mal Keys & Nutzung öffnen.
  • Der Key gibt Ihrem Konto vollen Zugriff auf die API: jeden Endpunkt, jedes Modell und das gesamte Guthaben.
  • Ein Key hat kein Ablaufdatum. Er funktioniert, bis Sie ihn rotieren oder widerrufen.

Rotieren und widerrufen

Sie rotieren und widerrufen den Key auf der Seite Keys & Nutzung. Keys & Nutzung

Aktion Was passiert
Rotieren Ein neuer Key wird ausgestellt und der alte funktioniert nicht mehr. Der neue Key funktioniert sofort.
Widerrufen Der Key funktioniert nicht mehr und es wird kein neuer Key ausgestellt. Rotieren Sie, um wieder einen funktionierenden Key zu erhalten.
  • Beides wirkt sofort: Die nächste Anfrage mit dem alten Key wird mit 401 beantwortet. Rechnen Sie mit höchstens 60 Sekunden, bis der alte Key überall abgelehnt wird.
  • Alle Clients des Kontos verwenden denselben Key, daher erreicht eine Rotation alle. Tragen Sie den neuen Key direkt nach dem Rotieren in Ihre Clients ein.
  • Guthaben, Nutzung und Flood-Schutz gehören zum Konto, nicht zum Key. Ein neuer Key macht mit demselben Guthaben und demselben Anfragezähler für die aktuelle Minute weiter.

Fehler

Jeder Authentifizierungsfehler hat den Status 401 und den Typ authentication_error. Die Nachricht unterscheidet die Fälle.

Status Typ Nachricht Wann
401 authentication_error Missing authentication Die Anfrage hat weder einen Header Authorization: Bearer noch einen Header x-api-key, der mit sk- beginnt. Dies ist auch die Antwort auf bearer in Kleinbuchstaben und auf einen Authorization-Wert ohne Bearer.
401 authentication_error Invalid API key Der Key ist nicht der aktuelle Key eines Kontos: Er ist falsch getippt, wurde widerrufen oder durch eine Rotation ersetzt.
{
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key",
    "code": "invalid_api_key",
    "param": null
  }
}
  • Bei jedem Pfad außer /v1/messages enthält das Objekt error zusätzlich code: "invalid_api_key", auch bei einem fehlenden Key, sowie param: null.
  • Der Key wird geprüft, bevor der Body gelesen wird. Eine Anfrage ohne gültigen Key erhält 401, auch wenn ihr Body ungültig oder zu groß ist.
  • Ein Wert von Authorization: Bearer, der nicht mit sk- beginnt, wird nicht als API-Key behandelt. Er erhält 401 mit einer Nachricht, dass das Token ungültig oder abgelaufen ist.

Browser und CORS

  • Die API beantwortet Cross-Origin-Anfragen von Browsern nur für eine feste Liste von Origins. JavaScript auf einer Seite eines anderen Origins kann /v1-Antworten nicht lesen.
  • Rufen Sie die API von Ihrem Server aus auf und lassen Sie Ihre Seite mit Ihrem Server sprechen. So bleibt der Key auch aus dem Quelltext der Seite heraus.
  • Serverseitiger Code und Kommandozeilen-Tools sind nicht betroffen: Diese Regel wird nur von Browsern durchgesetzt.
  • Eine Anmeldung auf shannon-ai.com authentifiziert keine /v1-Anfragen. Cookies werden dort nicht gelesen; der Key ist die einzige Zugangsberechtigung.
  • Für einen erlaubten Origin darf ein Browser content-type, authorization, x-api-key, anthropic-version, anthropic-beta, openai-beta und x-request-id senden und den Antwort-Header x-request-id lesen.

Den Key sicher aufbewahren

  • Bewahren Sie den Key auf einem Server auf. Legen Sie ihn nicht in Webseiten, mobilen Apps oder öffentlichen Repositories ab: Wer ihn hat, kann Ihr gesamtes Guthaben ausgeben.
  • Laden Sie den Key aus einer Umgebungsvariable oder einem Secret Store, statt ihn in den Code zu schreiben.
  • Wenn der Key möglicherweise geleakt wurde, rotieren Sie ihn unter Keys & Nutzung. Der alte Key funktioniert sofort nicht mehr.
  • Lesen Sie nach einem Leck die Anfrageliste unter Keys & Nutzung. Sie zeigt jede Anfrage, die der Key in den letzten 30 Tagen gestellt hat.