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

# Authentification

> Sécurisez vos requêtes API TokenLab avec des clés API

## Clés API

Toutes les requêtes API TokenLab nécessitent une clé API.

Pour les endpoints compatibles OpenAI, envoyez-la comme suit :

```bash theme={null}
Authorization: Bearer sk-your-api-key
```

Pour les requêtes Anthropic-compatibles `/v1/messages`, vous pouvez également utiliser :

```bash theme={null}
x-api-key: sk-your-api-key
```

## Obtenir votre clé API

1. Connectez-vous à votre [TokenLab Dashboard](https://tokenlab.sh/dashboard)
2. Ouvrez **API Keys**
3. Créez une nouvelle clé
4. Donnez-lui un nom descriptif
5. Copiez-la immédiatement, car elle n’est affichée qu’une seule fois

<Warning>
  * N’exposez jamais les clés API dans le code côté client
  * Ne committez jamais de clés API dans le contrôle de version
  * Utilisez des variables d’environnement ou un gestionnaire de secrets
  * Effectuez une rotation des clés périodiquement
  * Supprimez les clés inutilisées
</Warning>

## Utilisation des clés API

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.tokenlab.sh/v1/responses \
    -H "Authorization: Bearer $TOKENLAB_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "gpt-5.4",
      "input": "Hello!"
    }'
  ```

  ```python Python theme={null}
  import os
  from openai import OpenAI

  client = OpenAI(
      api_key=os.environ.get("TOKENLAB_API_KEY"),
      base_url="https://api.tokenlab.sh/v1"
  )
  ```

  ```javascript JavaScript theme={null}
  import OpenAI from 'openai';

  const client = new OpenAI({
    apiKey: process.env.TOKENLAB_API_KEY,
    baseURL: 'https://api.tokenlab.sh/v1'
  });
  ```
</CodeGroup>

## Fonctionnalités des clés API

### Limites d’utilisation

Vous pouvez définir une limite d’utilisation sur chaque clé API :

| Paramètre         | Description                                                         |
| ----------------- | ------------------------------------------------------------------- |
| **Aucune limite** | La clé utilise le solde de votre compte sans restriction            |
| **Limite fixe**   | La clé cesse de fonctionner après avoir atteint le montant spécifié |

### Préfixe de clé

Toutes les clés API TokenLab commencent par `sk-`.

## Compatibilité Anthropic

Pour l’endpoint `/v1/messages`, l’en-tête de style Anthropic fonctionne comme prévu :

```bash theme={null}
curl https://api.tokenlab.sh/v1/messages \
  -H "x-api-key: sk-your-api-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
```

<Note>
  Utilisez `Authorization: Bearer ...` pour les endpoints compatibles OpenAI tels que `/v1/responses`, `/v1/chat/completions`, `/v1/models` et la plupart des autres routes TokenLab.
</Note>

## Réponses d’erreur

| Code de statut | Type                   | Code                   | Description                                          |
| -------------- | ---------------------- | ---------------------- | ---------------------------------------------------- |
| 401            | `invalid_api_key`      | `invalid_api_key`      | Clé API manquante ou invalide                        |
| 401            | `expired_api_key`      | `expired_api_key`      | La clé API a été révoquée                            |
| 402            | `insufficient_balance` | `insufficient_balance` | Le solde du compte est insuffisant                   |
| 402            | `quota_exceeded`       | `quota_exceeded`       | La limite d’utilisation de la clé API a été atteinte |

Exemple :

```json theme={null}
{
  "error": {
    "message": "Invalid API key provided",
    "type": "invalid_api_key",
    "code": "invalid_api_key"
  }
}
```
