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

# Authentification

> Clés API, portées et contexte d’un appel.

## La clé API

Chaque appel serveur porte une clé dans l’en-tête **`x-api-key`**.

```bash theme={null}
curl https://api.dexnotify.com/api/v1/sms/balance \
  -H "x-api-key: $DEXNOTIFY_CLE"
```

Une clé appartient à **un projet** et à **un environnement** : l’API en déduit l’organisation, le projet et l’environnement de chaque appel. Vous n’avez rien d’autre à préciser.

| Préfixe | Environnement | Effet |
| - | - | - |
| `dxn_stag_…` | staging | envois simulés, aucun débit, aucun message réel |
| `dxn_prod_…` | production | vrais envois, unités et quotas consommés |

Les clés se créent dans le dashboard, **Développeurs › Clés API et SDK**. Une clé n’est montrée qu’à sa création : DexNotify n’en garde qu’une empreinte.

> [!WARNING]
>
> Une clé de serveur ne doit jamais se retrouver dans une application mobile, une page web ou un dépôt de code. Pour une application, utilisez une [clé SDK](https://docs.dexnotify.com/sdk/react-native.md#la-cle-embarquee), limitée à la portée `sdk:device`.

## Les portées

Une clé ne fait que ce que ses portées permettent. Donnez à chaque service le minimum dont il a besoin.

| Domaine | Portées |
| - | - |
| SMS | `sms:send`, `sms:read` |
| E-mail | `email:send`, `email:read` |
| WhatsApp | `whatsapp:send`, `whatsapp:read` |
| Contacts et listes | `contact:read`, `contact:write` |
| Campagnes e-mail et SMS, automatisations | `campaign:read`, `campaign:write` |
| Campagnes push | `campaign:read`, `campaign:write`, `campaign:launch` |
| Modèles | `template:read`, `template:write` |
| Push | `notification:send`, `notification:read` |
| Utilisateurs et appareils | `audience:read`, `audience:write`, `audience:tag` |
| Segments | `segment:read`, `segment:write` |
| In-app | `inapp:read`, `inapp:write` |
| Live Activities | `liveactivity:send`, `liveactivity:read` |
| Statistiques | `analytics:read` |
| Application mobile | `sdk:device` |

Le dashboard propose des préréglages, par exemple **« Envoi SMS serveur »** (`sms:send`, `sms:read`, `contact:read`, `contact:write`) ou **« Clé SDK »** (`sdk:device`).

Une portée manquante répond `403 FORBIDDEN`.

### Ce qu’une clé ne fait jamais

Par décision, et non par oubli : **acheter** des unités SMS, **demander** un nom d’expéditeur, relier un numéro WhatsApp, **créer** un webhook, lire les achats et la facturation. Ces gestes engagent l’argent ou la marque de l’organisation : un membre les fait depuis le dashboard.

## Rotation

Créez la nouvelle clé, déployez-la, puis révoquez l’ancienne depuis le dashboard. Une clé révoquée ou expirée répond `401 UNAUTHENTICATED` dès l’appel suivant.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.