Authentification & Clés API
Méthodes d'authentification
YesWeCheck supporte deux méthodes pour les intégrations backend :
| Méthode | Header | Expiration | Usage recommandé |
|---|---|---|---|
| API Key | X-API-Key: ywc_live_<key> | Jamais | Backend, intégrations longue durée |
| JWT Bearer | Authorization: Bearer <token> | 15 min | Accès programmatique avec refresh |
L'authentification par API Key est la méthode standard pour toutes les intégrations. Elle ne expire pas et se configure en quelques secondes depuis le Dashboard.
Authentification par API Key
Obtenir une clé API
- Connectez-vous sur app.yeswecheck.fr
- Settings → API Keys → Créer une nouvelle clé
- Copiez la clé immédiatement — elle ne sera plus affichée
Utiliser la clé API
- cURL
- JavaScript (Node.js)
- Python
curl -X POST https://api.yeswecheck.fr/v2/email/validate \
-H "X-API-Key: ywc_live_abc123xyz789" \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'
// Recommandé : stocker dans les variables d'environnement
const API_KEY = process.env.YESWECHECK_API_KEY;
const response = await fetch('https://api.yeswecheck.fr/v2/email/validate', {
method: 'POST',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify({ email: '[email protected]' }),
});
import os
import requests
API_KEY = os.environ["YESWECHECK_API_KEY"]
session = requests.Session()
session.headers.update({"X-API-Key": API_KEY})
response = session.post(
"https://api.yeswecheck.fr/v2/email/validate",
json={"email": "[email protected]"},
)
Configurer une clé API
Lors de la création depuis le Dashboard, vous pouvez configurer :
{
"name": "Production",
"allowedDomains": ["monsite.fr", "www.monsite.fr"],
"config": {
"smtp": false,
"disposable": true,
"roleAccount": true,
"enrichment": false,
"randomDetection": true
}
}
| Option | Par défaut | Description |
|---|---|---|
smtp | false | Autoriser la vérification SMTP via cette clé |
disposable | true | Activer la détection d'emails jetables |
roleAccount | true | Activer la détection de role accounts |
enrichment | false | Activer l'enrichissement (prénom probable) |
randomDetection | true | Activer la détection d'emails aléatoires |
Renouveler un token JWT (Refresh)
Si votre intégration utilise l'authentification JWT, l'accessToken expire après 15 minutes. Utilisez le refreshToken pour en obtenir un nouveau sans re-authentification :
curl -X POST https://api.yeswecheck.fr/v2/auth/refresh \
-H "Content-Type: application/json" \
-d '{"refreshToken": "VOTRE_REFRESH_TOKEN"}'
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "dGhpcyBpcyBhIHJlZnJlc2ggdG9rZW4...",
"expiresIn": 900
}
Les tokens JWT sont gérés par la plateforme app.yeswecheck.fr. Pour une intégration purement API, les API Keys sont suffisantes et ne nécessitent pas de refresh.
Environnements
| Environnement | Base URL | Usage |
|---|---|---|
| Production | https://api.yeswecheck.fr/v2 | Applications en production |
| Local | http://localhost:3000/v2 | Développement |
# Production
YESWECHECK_API_URL=https://api.yeswecheck.fr/v2
YESWECHECK_API_KEY=ywc_live_...
# Local / Dev
YESWECHECK_API_URL=http://localhost:3000/v2
YESWECHECK_API_KEY=ywc_test_...
Sécurité des clés API
- ❌
const API_KEY = "ywc_live_abc123"dans du JavaScript navigateur - ❌ Clé API committée dans le dépôt Git
- ✅ Variable d'environnement serveur :
process.env.YESWECHECK_API_KEY - ✅ Pour les formulaires c ôté client → créer une clé avec
allowedDomainsrestreints
Restriction par domaine
Pour les appels depuis un navigateur (formulaires HTML), créez une clé avec allowedDomains :
{
"name": "Frontend Formulaire",
"allowedDomains": ["monsite.fr"],
"config": { "smtp": false }
}
La clé ne fonctionnera que si la requête provient de monsite.fr — même si elle est visible dans le HTML.
Rotation en cas de compromission
POST /v2/api-keys/{id}/revoke— Désactive immédiatement la clé- Depuis le Dashboard → créez une nouvelle clé
- Mettez à jour vos variables d'environnement
DELETE /v2/api-keys/{id}— Supprimez l'ancienne clé
Consultez le Guide Gestion des Clés API pour plus de détails.