Toutes les requêtes à l'API Syvel sont authentifiées avec une **clé API**.

## Format de la clé

Les clés API suivent ce format exact :

```
sv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
```

- Préfixe : `sv_`
- Suivi de **32 caractères alphanumériques**
- Longueur totale : **35 caractères**

Exemple : `sv_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6`

## Envoyer votre clé

Transmettez la clé dans le header `Authorization` à chaque requête :

```
Authorization: Bearer sv_votre_cle
```

```bash
curl "https://api.syvel.io/v1/check/user@example.com" \
  -H "Authorization: Bearer sv_votre_cle"
```

## Visibilité de la clé

:::caution[Copiez votre clé immédiatement]
Votre clé API est affichée **une seule fois**, au moment de sa création. Elle ne peut pas être récupérée ensuite. Si vous la perdez, supprimez-la depuis le dashboard et créez-en une nouvelle.
:::

## Créer une clé

Dans le [dashboard](https://dashboard.syvel.io), section **Clés API** :

1. Cliquez sur **Nouvelle clé**
2. Donnez-lui un nom (ex : `"Production"`, `"Staging"`)
3. Copiez la clé affichée immédiatement

## Restriction d'origine (CORS)

Chaque clé peut être restreinte à une ou plusieurs origines autorisées. Lorsqu'une origine est définie, les requêtes provenant de tout autre header `Origin` sont rejetées avec un `403`.

Utile pour les intégrations côté navigateur afin d'empêcher l'utilisation de votre clé depuis des domaines tiers.

Configurez les origines autorisées par clé dans le dashboard, sous **Clés API → Modifier**.

:::note
La restriction d'origine s'applique uniquement aux requêtes navigateur (où le header `Origin` est envoyé automatiquement). Les requêtes serveur (cURL, Node.js, Python, etc.) ne sont pas concernées.
:::