> ## Documentation Index
> Fetch the complete documentation index at: https://novita.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# API-Schlüssel

Ein API-Schlüssel authentifiziert deine Anfragen an Novita AI. Diese Seite erklärt, wie Schlüssel funktionieren, wie du einen erstellst und speicherst und wie du dafür sorgst, dass er in deinen Umgebungen funktionsfähig bleibt.

Verwende diese Seite, um:

* Anfragen an Novita AI mit einem Bearer-API-Schlüssel zu authentifizieren.
* Einen API-Schlüssel in der Konsole zu erstellen und sicher zu speichern.
* Deinen Schlüssel als Umgebungsvariable unter Linux, macOS und Windows zu konfigurieren.
* Zu verstehen, wie lange ein Schlüssel gültig bleibt und was die OpenAPI abdeckt und was nicht.

## Authentifizierung

Novita AI authentifiziert den API-Zugriff mithilfe der Bearer-Authentifizierung. Sende deinen API-Schlüssel in der `Authorization` Anfrage-Header:

```
Authorization: Bearer <API Key>
```

Eine Beispielanfrage:

```bash theme={"system"}
curl "https://api.novita.ai/openai/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $NOVITA_API_KEY" \
  -d '{
    "model": "deepseek/deepseek-r1",
    "messages": [{"role": "user", "content": "Hello"}]
  }'
```

## API-Schlüssel erstellen

<Steps>
  <Step title="Schlüsselverwaltung öffnen">
    Gehen Sie zur [Schlüsselverwaltung](https://novita.ai/settings/key-management?utm_source=getstarted) in der Konsole.
  </Step>

  <Step title="Neuen Schlüssel erstellen">
    Wählen Sie **API-Schlüssel erstellen** aus, und geben Sie dem Schlüssel dann einen Namen, der seinen Zweck widerspiegelt, z. B. `production` oder `local-testing`.
  </Step>

  <Step title="Kopieren und speichern Sie den Schlüssel">
    Der vollständige Schlüssel wird nur einmal angezeigt, bei der Erstellung. Kopieren Sie ihn sofort und speichern Sie ihn an einem sicheren Ort, z. B. in einem Secrets-Manager oder einer Umgebungsvariable. Wenn Sie ihn verlieren, können Sie ihn nicht wiederherstellen — erstellen Sie stattdessen einen neuen Schlüssel.
  </Step>
</Steps>

<Note>
  Optional können Sie einschränken, welche Modelle ein Schlüssel aufrufen darf. Siehe [Modellzugriff für API-Schlüssel](/docs/de/guides/llm-model-access).
</Note>

## Schlüsselformat und Gültigkeit

* Jeder Schlüssel beginnt mit dem `sk_` Präfix.
* Ein Schlüssel wird nur einmal vollständig angezeigt, bei der Erstellung. Danach zeigt die Konsole eine maskierte Form an.
* Ein Schlüssel bleibt nach der Erstellung unbegrenzt gültig. Er funktioniert weiter, bis du ihn in der Konsole löschst.
* Jedes Konto kann bis zu **10** API-Schlüssel erstellen.

## Was die OpenAPI abdeckt

Du erstellst und löschst API-Schlüssel ausschließlich in der Konsole. Die Novita OpenAPI enthält keine Endpunkte zum Erstellen oder Löschen von Schlüsseln.

Die schlüsselbezogenen OpenAPI-Endpunkte decken das Auflisten von Schlüsseln und das Verwalten der Modellzugriffsrichtlinie eines Schlüssels ab:

* [API-Schlüssel auflisten](/docs/de/api-reference/key-list-with-model-access) — die Schlüssel deines Teams auflisten, mit einer optionalen Zusammenfassung des Modellzugriffs.
* [Richtlinie für Modellzugriff des API-Schlüssels abrufen](/docs/de/api-reference/key-get-model-access-policy) — die Modellzugriffsrichtlinie eines einzelnen Schlüssels lesen.
* [Modellzugriffsrichtlinie für API-Schlüssel festlegen](/docs/de/api-reference/key-put-model-access-policy) — Modellzugriffsrichtlinie eines Schlüssels festlegen oder aktualisieren.
* [API-Schlüssel-Modellzugriffsrichtlinie zurücksetzen](/docs/de/api-reference/key-delete-model-access-policy) — setzt die Modellzugriffsrichtlinie eines Schlüssels auf den Standard zurück. Dadurch wird nur die Richtlinie zurückgesetzt; der Schlüssel selbst wird nicht gelöscht.

## Speichere deinen Schlüssel als Umgebungsvariable

Das Hartkodieren eines Schlüssels im Quellcode birgt das Risiko, dass er offengelegt wird, zum Beispiel wenn du die Datei commitest. Lies den Schlüssel aus einer Umgebungsvariable wie `NOVITA_API_KEY` hält ihn aus deinem Code heraus.

### Temporär vs. dauerhaft

Ein Schlüsselsatz mit `export` (Linux/macOS) oder `set` (Windows) gilt nur für die aktuelle Terminalsitzung und ist weg, wenn Sie sie schließen. Das ist für einen schnellen Test in Ordnung. Um den Schlüssel sitzungsübergreifend beizubehalten, legen Sie ihn wie unten gezeigt dauerhaft fest und öffnen Sie dann ein neues Terminal, damit die Änderung wirksam wird.

<CodeGroup>
  ```bash Linux theme={"system"}
  # Temporary: current session only
  export NOVITA_API_KEY="<Your API Key>"

  # Permanent: append to your shell profile, then reload
  echo 'export NOVITA_API_KEY="<Your API Key>"' >> ~/.bashrc
  source ~/.bashrc
  ```

  ```bash macOS theme={"system"}
  # Temporary: current session only
  export NOVITA_API_KEY="<Your API Key>"

  # Permanent: append to your shell profile, then reload
  # Newer macOS uses zsh (~/.zshrc); older setups use bash (~/.bash_profile)
  echo 'export NOVITA_API_KEY="<Your API Key>"' >> ~/.zshrc
  source ~/.zshrc
  ```

  ```powershell Windows theme={"system"}
  # Temporary: current PowerShell session only
  $env:NOVITA_API_KEY = "<Your API Key>"

  # Permanent: persist for the current user, then open a new terminal
  setx NOVITA_API_KEY "<Your API Key>"
  ```
</CodeGroup>

Lies den Schlüssel in deinem Code aus der Umgebung wieder ein:

<CodeGroup>
  ```python Python theme={"system"}
  import os
  from openai import OpenAI

  client = OpenAI(
      base_url="https://api.novita.ai/openai",
      api_key=os.environ.get("NOVITA_API_KEY"),
  )
  ```

  ```javascript Node.js theme={"system"}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://api.novita.ai/openai",
    apiKey: process.env.NOVITA_API_KEY,
  });
  ```
</CodeGroup>

### Die Variable ist gesetzt, aber der Code kann sie trotzdem nicht finden

<AccordionGroup>
  <Accordion title="Du hast sie temporär gesetzt und ein neues Terminal geöffnet">
    Ein Schlüssel, der mit `export` oder `$env:` gilt nur in der Terminal-Sitzung, in der du ihn ausgeführt hast. Ein neues Terminal oder ein neuer Tab übernimmt ihn nicht. Lege den Schlüssel dauerhaft fest (`>> ~/.zshrc`, `setx`), oder wiederholen Sie die `export`/`$env:` Zeile in der Sitzung, die Sie verwenden.
  </Accordion>

  <Accordion title="Du hast es dauerhaft festgelegt, aber nicht neu gestartet">
    Eine dauerhafte Änderung (Shell-Profil, `setx`) gilt für Terminals, die nach der Änderung gestartet werden. Öffnen Sie ein neues Terminal und starten Sie Ihre IDE oder Ihren Editor neu, damit diese die neue Umgebung übernimmt. Unter Windows, `setx` wirkt sich nicht auf Terminals aus, die bereits geöffnet sind.
  </Accordion>

  <Accordion title="Ein Dienstmanager erbt Ihre Shell-Umgebung nicht">
    Prozesse, die von `systemd`, `supervisor`, Docker oder ein CI-Runner lesen Ihr interaktives Shell-Profil nicht. Setzen Sie die Variable in der eigenen Konfiguration des Dienstes (zum Beispiel in einer `systemd` der Einheit `Environment=`, ein `docker run -e` Flag, oder die Secrets des CI-Projekts), nicht in `~/.bashrc`.
  </Accordion>

  <Accordion title="Sie haben den Befehl mit sudo ausgeführt">
    `sudo` gibt deine Umgebung standardmäßig nicht weiter, daher ist die Variable, die du als dein Benutzer exportiert hast, für den Prozess mit erhöhten Rechten nicht sichtbar. Verwende `sudo -E` um die Umgebung beizubehalten, oder legen Sie die Variable innerhalb des erhöhten Kontexts fest.
  </Accordion>
</AccordionGroup>

## Verwandte Themen

* [Modellzugriff für API-Schlüssel](/docs/de/guides/llm-model-access) — beschränken Sie, welche Modelle ein Schlüssel aufrufen kann.
* [Häufige Fehlercodes](/docs/de/guides/error) — auflösen `401` und `403` Antworten im Zusammenhang mit Schlüsseln.
* [Ratenbegrenzungen](/docs/de/guides/llm-rate-limits) — Anfrage- und Token-Limits, die für Ihr Konto gelten.
