> ## 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-sleutels

Een API-sleutel authenticeert je verzoeken aan Novita AI. Deze pagina behandelt hoe sleutels werken, hoe je er een aanmaakt en opslaat, en hoe je ervoor zorgt dat deze in al je omgevingen blijft werken.

Gebruik deze pagina om:

* Verzoeken aan Novita AI te authenticeren met een Bearer API-sleutel.
* Een API-sleutel aan te maken vanuit de console en deze veilig op te slaan.
* Je sleutel te configureren als omgevingsvariabele op Linux, macOS en Windows.
* Te begrijpen hoelang een sleutel geldig blijft en wat de OpenAPI wel en niet dekt.

## Authenticatie

Novita AI authenticeert API-toegang met Bearer-authenticatie. Stuur je API-sleutel in de `Authorization` verzoekheader:

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

Een voorbeeldverzoek:

```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"}]
  }'
```

## Maak een API-sleutel aan

<Steps>
  <Step title="Open Sleutelbeheer">
    Ga naar [Sleutelbeheer](https://novita.ai/settings/key-management?utm_source=getstarted) in de console.
  </Step>

  <Step title="Maak een nieuwe sleutel aan">
    Selecteer **API-sleutel aanmaken** en geef de sleutel vervolgens een naam die het doel ervan weerspiegelt, zoals `production` of `local-testing`.
  </Step>

  <Step title="Kopieer de sleutel en sla deze op">
    De volledige sleutel wordt slechts één keer weergegeven, bij het aanmaken. Kopieer deze onmiddellijk en sla deze op een veilige plek op, zoals een secretsmanager of een omgevingsvariabele. Als je deze verliest, kun je deze niet herstellen — maak in plaats daarvan een nieuwe sleutel aan.
  </Step>
</Steps>

<Note>
  Optioneel kun je beperken welke modellen een sleutel mag aanroepen. Zie [Modeltoegang voor API-sleutels](/docs/nl/guides/llm-model-access).
</Note>

## Sleutelformaat en geldigheid

* Elke sleutel begint met de `sk_` voorvoegsel.
* Een sleutel wordt slechts één keer volledig weergegeven, bij het aanmaken. Daarna toont de console een gemaskeerde vorm.
* Een sleutel blijft na het aanmaken onbeperkt geldig. Deze blijft werken totdat je deze in de console verwijdert.
* Elk account kan maximaal **10** API-sleutels aanmaken.

## Wat de OpenAPI omvat

Je maakt en verwijdert API-sleutels uitsluitend in de console. De Novita OpenAPI bevat geen endpoints om sleutels aan te maken of te verwijderen.

De sleutelgerelateerde OpenAPI-endpoints omvatten het weergeven van sleutels en het beheren van het modeltoegangsbeleid van een sleutel:

* [API-sleutels weergeven](/docs/nl/api-reference/key-list-with-model-access) — vermeld de sleutels in je team, met een optionele samenvatting van modeltoegang.
* [Beleid voor modeltoegang van API-sleutel ophalen](/docs/nl/api-reference/key-get-model-access-policy) — lees het modeltoegangsbeleid van één sleutel.
* [Modeltoegangsbeleid voor API-sleutel instellen](/docs/nl/api-reference/key-put-model-access-policy) — stel het modeltoegangsbeleid van een sleutel in of werk het bij.
* [Modeltoegangsbeleid voor API-sleutel opnieuw instellen](/docs/nl/api-reference/key-delete-model-access-policy) — zet het modeltoegangsbeleid van een sleutel terug naar de standaardinstelling. Dit zet alleen het beleid terug; het verwijdert de sleutel zelf niet.

## Sla je sleutel op als een omgevingsvariabele

Het hardcoderen van een sleutel in broncode brengt het risico met zich mee dat deze uitlekt, bijvoorbeeld wanneer je het bestand commit. Het lezen van de sleutel uit een omgevingsvariabele zoals `NOVITA_API_KEY` houdt het uit je code.

### Tijdelijk vs. permanent

Een sleutel die is ingesteld met `export` (Linux/macOS) of `set` (Windows) blijft alleen geldig voor de huidige terminalsessie en is weg wanneer je die sluit. Dat is prima voor een snelle test. Om de sleutel tussen sessies te behouden, stel je deze permanent in zoals hieronder weergegeven en open je daarna een nieuwe terminal zodat de wijziging van kracht wordt.

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

Lees de sleutel in je code terug uit de omgeving:

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

### De variabele is ingesteld, maar de code kan deze nog steeds niet vinden

<AccordionGroup>
  <Accordion title="Je hebt deze tijdelijk ingesteld en een nieuwe terminal geopend">
    Een sleutel ingesteld met `export` of `$env:` bestaat alleen in de terminalsessie waarin je deze hebt uitgevoerd. Een nieuwe terminal, of een nieuw tabblad, neemt deze niet over. Stel de sleutel permanent in (`>> ~/.zshrc`, `setx`), of herhaal de `export`/`$env:` regel in de sessie die je gebruikt.
  </Accordion>

  <Accordion title="Je hebt het permanent ingesteld maar niet opnieuw gestart">
    Een permanente wijziging (shellprofiel, `setx`) is van toepassing op terminals die na de wijziging zijn gestart. Open een nieuwe terminal en start je IDE of editor opnieuw op zodat deze de nieuwe omgeving overneemt. Op Windows, `setx` is niet van invloed op terminals die al geopend zijn.
  </Accordion>

  <Accordion title="Een servicebeheerder erft je shell-omgeving niet">
    Processen die worden gestart door `systemd`, `supervisor`, Docker of een CI-runner lezen je interactieve shellprofiel niet. Stel de variabele in de eigen configuratie van de service in (bijvoorbeeld een `systemd` van de eenheid `Environment=`, een `docker run -e` flag, of de secrets van het CI-project), niet in `~/.bashrc`.
  </Accordion>

  <Accordion title="Je hebt de opdracht met sudo uitgevoerd">
    `sudo` geeft je omgeving standaard niet door, dus de variabele die je als je gebruiker hebt geëxporteerd is niet zichtbaar voor het proces met verhoogde rechten. Gebruik `sudo -E` om de omgeving te behouden, of stel de variabele in binnen de verhoogde context.
  </Accordion>
</AccordionGroup>

## Gerelateerd

* [Modeltoegang voor API-sleutels](/docs/nl/guides/llm-model-access) — beperk welke modellen een sleutel kan aanroepen.
* [Veelvoorkomende foutcodes](/docs/nl/guides/error) — oplossen `401` en `403` antwoorden met betrekking tot sleutels.
* [Snelheidslimieten](/docs/nl/guides/llm-rate-limits) — aanvraag- en tokenlimieten die van toepassing zijn op je account.
