Intégrations & Webhooks
Patterns d'intégration courants
Pattern 1 — Validation à l'inscription (temps réel)
Utilisateur saisit email
↓
[Votre frontend] → POST /v2/email/validate (via widget ou backend)
↓
Résultat instantané (~200ms)
↓
Accepter / Refuser / Suggérer correction
Quand l'utiliser : Formulaires d'inscription, checkout, lead gen
Pattern 2 — Enrichissement batch (traitement différé)
Nouveau lead dans CRM
↓
Export CSV → POST /v2/batch/upload
↓
Polling statut (toutes les 30s)
↓
Export CSV résultats → Import dans CRM
Quand l'utiliser : Nettoyage périodique de base, import de leads
Pattern 3 — Validation avant envoi (pipeline email)
Campagne email programmée
↓
Batch validation (J-1)
↓
Filtrer les invalid + risky
↓
Envoyer uniquement aux valid + unknown
Quand l'utiliser : Campagnes emailing, newsletters
Intégration avec des outils populaires
Zapier / Make (ex-Integromat)
Utilisez l'action HTTP Request avec :
- URL :
https://api.yeswecheck.fr/v2/email/validate - Method :
POST - Header :
X-API-Key: ywc_live_... - Body :
{"email": "{{email_field}}"}
Puis ajoutez un filtre sur status = valid.
n8n
{
"nodes": [
{
"name": "YesWeCheck Validate",
"type": "n8n-nodes-base.httpRequest",
"parameters": {
"url": "https://api.yeswecheck.fr/v2/email/validate",
"method": "POST",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendBody": true,
"bodyParameters": {
"parameters": [{"name": "email", "value": "={{$json.email}}"}]
}
}
}
]
}
Alertes & Monitoring
YesWeCheck s'intègre avec les systèmes d'alerting pour surveiller la santé de l'API :
- HetrixTools — Monitoring de disponibilité
- Alertmanager — Alertes Prometheus
Consultez l'endpoint de statut public :
curl https://status.yeswecheck.fr/status
Export vers votre CRM
Exemple : Enrichir HubSpot avec les résultats
import requests
def enrich_hubspot_contact(contact_id: str, email: str, api_key: str):
# 1. Valider l'email
result = requests.post(
"https://api.yeswecheck.fr/v2/email/validate",
headers={"X-API-Key": api_key},
json={"email": email, "smtp": True},
).json()
# 2. Mettre à jour la propriété HubSpot
hubspot_props = {
"email_validation_status": result["status"],
"email_validation_score": result["score"],
"email_is_disposable": result["disposable"]["isDisposable"],
}
requests.patch(
f"https://api.hubapi.com/crm/v3/objects/contacts/{contact_id}",
headers={"Authorization": f"Bearer {HUBSPOT_TOKEN}"},
json={"properties": hubspot_props},
)
Bonnes pratiques d'intégration
Cache les résultats
Pour un même email, le résultat ne change pas souvent. Mettez en cache les résultats positifs pendant 24h pour éviter les appels redondants.
const CACHE_TTL = 24 * 60 * 60 * 1000; // 24h
const cache = new Map<string, { result: any; timestamp: number }>();
async function validateWithCache(email: string) {
const cached = cache.get(email);
if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
return cached.result;
}
const result = await validateEmail(email);
cache.set(email, { result, timestamp: Date.now() });
return result;
}
Bulk vs Unitaire
Pour plus de 50 emails, utilisez toujours le batch (POST /batch/upload)
plutôt que des appels unitaires en boucle — c'est plus rapide et plus économique.