Intégrez la vérification d'emails
en moins de 10 minutes
API REST JSON. Authentification par Bearer token. Latence <200 ms. Vérification opérée en France, conforme RGPD.
Base URL
https://api.mailcheck.fr/v1Toutes les requêtes sont en HTTPS. Les appels HTTP non sécurisés sont rejetés avec un code 400.
Authentification
Toutes les requêtes nécessitent un Bearer token dans le header Authorization.
Votre clé API est disponible dans le dashboard, section Paramètres > Clé API.
Authorization: Bearer mc_live_xxxxxxxxxxxxxxxxxxxx MAILCHECK_API_KEY).
POST /v1/verify, Vérification d'une adresse
Vérifie une adresse email unique. Retourne le statut, le score et le détail des vérifications.
Requête
| Champ | Type | Requis | Description |
|---|---|---|---|
email | string | Oui | L'adresse email à vérifier |
options.catch_all | boolean | Non | Active la détection catch-all (défaut : true) |
{
"email": "[email protected]",
"options": {
"catch_all": true
}
} Format de réponse
La réponse est un objet JSON avec les champs suivants :
| Champ | Type | Description |
|---|---|---|
email | string | L'adresse vérifiée (normalisée en minuscules) |
status | string | valid / invalid / risky / catch_all / disqualifie |
score | integer | Score de confiance 0–100 (≥80 = fiable) |
checks.syntax | boolean | Syntaxe RFC 5322 valide |
checks.dns | boolean | Domaine résolu en DNS |
checks.mx | boolean | MX records présents et actifs |
checks.smtp | boolean | Boîte aux lettres confirmée par SMTP |
checks.disposable | boolean | Adresse jetable détectée |
checks.catch_all | boolean | Serveur catch-all (wildcard) détecté |
confidence | string | high / medium / low |
{
"email": "[email protected]",
"status": "valid",
"score": 97,
"checks": {
"syntax": true,
"dns": true,
"mx": true,
"smtp": true,
"disposable": false,
"catch_all": false
},
"confidence": "high"
} Statuts retournés
| Statut | Signification | Action recommandée |
|---|---|---|
| valid | Boîte confirmée par SMTP, domaine actif, pas de disposable | Inclure dans vos envois |
| risky | Syntaxe et DNS valides mais SMTP ambigu ou catch-all détecté | À envoyer avec précaution ou segmenter séparément |
| catch_all | Serveur accepte tout email entrant (wildcard) | Décision selon votre tolérance au risque |
| invalid | Boîte inexistante confirmée par le serveur, domaine invalide ou syntaxe incorrecte | Supprimer de la liste immédiatement |
| disqualifie | Adresse jetable (domaine dans notre blocklist) | Supprimer, jamais d'intention d'achat |
Exemple cURL
# Vérification d'une adresse email
curl -X POST https://api.mailcheck.fr/v1/verify \
-H "Authorization: Bearer mc_live_xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","options":{"catch_all":true}}' Exemple Python
import os
import requests
API_KEY = os.environ["MAILCHECK_API_KEY"]
def verify_email(email: str) -> dict:
response = requests.post(
"https://api.mailcheck.fr/v1/verify",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"email": email,
"options": {"catch_all": True}
},
timeout=5
)
response.raise_for_status()
return response.json()
# Exemple d'utilisation
result = verify_email("[email protected]")
if result["status"] == "valid":
print(f"✓ Email valide · Score : {result['score']}")
else:
print(f"✗ Statut : {result['status']}") Exemple Node.js
const API_KEY = process.env.MAILCHECK_API_KEY;
async function verifyEmail(email) {
const res = await fetch("https://api.mailcheck.fr/v1/verify", {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
email,
options: { catch_all: true }
})
});
if (!res.ok) {
throw new Error(`Erreur API: ${res.status}`);
}
return res.json();
}
// Exemple d'utilisation
verifyEmail("[email protected]")
.then(data => {
console.log(`Statut: ${data.status} · Score: ${data.score}`);
})
.catch(console.error); Rate limits
Les limites s'appliquent par clé API sur une fenêtre glissante de 1 seconde.
| Plan | Requêtes / seconde | Vérifications / mois |
|---|---|---|
| Starter | 10 req/s | 5 000 |
| Growth | 50 req/s | 50 000 |
| Pro | 200 req/s | 200 000 |
| Agency | 200 req/s | 1 000 000 |
En cas de dépassement, l'API retourne un 429 Too Many Requests avec un header
Retry-After indiquant le délai d'attente en secondes.
Connecteur MCP, brancher vos données sur Claude
Le connecteur MCP donne à Claude un accès en lecture à vos données de suivi d'ouverture. Vous posez la question en langage naturel, Claude interroge mailcheck et répond. Aucune clé à copier dans un fichier de configuration, l'autorisation passe par OAuth.
https://mcp.mailcheck.frRéservé aux comptes avec un abonnement actif, quel que soit le plan, l'offre Suivi à 9 EUR par mois incluse.
Installation, trois étapes
Dans Claude, ouvrez les réglages puis Connecteurs, cliquez sur Ajouter un connecteur et collez l'URL ci-dessus. Vous êtes redirigé vers mailcheck pour autoriser l'accès, puis renvoyé vers Claude.
Les cinq outils exposés
| Outil | Ce qu'il retourne |
|---|---|
list_tracked_emails | Vos e-mails suivis, du plus récent au plus ancien. Filtres destinataire, fournisseur, ouvert ou non, date |
get_email_opens | Le détail des ouvertures d'un e-mail donné, horodatées |
find_unopened | Les e-mails jamais ouverts, et la liste dédupliquée des destinataires à relancer |
recipient_engagement | Le profil d'un destinataire, taux d'ouverture et délai moyen de première ouverture |
tracking_stats | Les statistiques agrégées sur une période, envois, ouvertures, taux, délai moyen |
Exemples de questions
- Qui n'a pas ouvert mes e-mails cette semaine ?
- Combien de fois ce client a-t-il ouvert ma proposition ?
- Quel est mon délai moyen entre l'envoi et la première ouverture ?
- Quels destinataires sont revenus plusieurs fois sur un message ?
Ce que le connecteur ne fait pas
L'accès est en lecture seule. Le connecteur ne peut ni envoyer un e-mail, ni modifier vos données, ni lire le contenu de vos messages. Il expose l'objet, le destinataire, l'expéditeur et les horodatages d'ouverture, rien de plus. Chaque outil est cloisonné à votre propre compte.
Suivi d'ouverture par API, pour un serveur SMTP personnalisé
L'extension Chrome couvre Gmail et Zoho Mail automatiquement. Si vous envoyez depuis votre propre serveur SMTP, vous obtenez le même suivi d'ouverture avec deux appels : un pour déclarer l'e-mail, un pixel invisible dans le corps du message. Les ouvertures apparaissent ensuite dans votre tableau de bord et dans le connecteur MCP, comme n'importe quel e-mail suivi par l'extension.
https://wk.mailcheck.fr
Base différente de l'API de vérification ci-dessus. Même clé API, même header
Authorization: Bearer.
1. Déclarer l'e-mail avant l'envoi
| Champ | Type | Requis | Description |
|---|---|---|---|
id | string | Oui | Identifiant unique de l'e-mail, 64 caractères maximum. Utilisez un UUID |
subject | string | Non | Objet du message, affiché dans le tableau de bord |
recipient | string | Non | Adresse du destinataire |
sender | string | Non | Votre adresse d'expédition |
provider | string | Non | Étiquette libre, par exemple smtp. Sur l'offre gratuite, un seul fournisseur est autorisé par mois calendaire |
id doit être un UUID généré par vous, jamais une
valeur lisible ou séquentielle. La table est partagée entre tous les comptes : un
identifiant déjà pris ailleurs est silencieusement ignoré, et les ouvertures se
compteraient alors sur le mauvais compte.
curl -X POST https://wk.mailcheck.fr/tracking/emails \
-H "Authorization: Bearer sk-mc-xxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","subject":"Votre devis","recipient":"[email protected]","sender":"[email protected]","provider":"smtp"}' 2. Poser le pixel dans le corps HTML
Insérez cette image, avec le même identifiant, avant l'envoi par votre serveur SMTP :
<img src="https://wk.mailcheck.fr/o/3fa85f64-5717-4562-b3fc-2c963f66afa6.gif" width="1" height="1" alt=""> Cette route ne demande aucune authentification, comme tout pixel de suivi : elle enregistre l'ouverture puis renvoie un GIF transparent 1x1.
Limites de l'offre gratuite
10 e-mails suivis par mois calendaire, un seul fournisseur à la fois (la valeur de
provider du premier e-mail du mois verrouille les
suivants). Suivi illimité, tous fournisseurs confondus, dès le plan Suivi à 9
EUR/mois.
Ce que le filtre anti-auto-ouverture ne couvre pas ici
L'extension ignore vos propres relectures en comparant l'adresse IP de l'envoi à celle de l'ouverture. Avec un serveur SMTP, l'e-mail est déclaré depuis votre serveur : cette empreinte est donc celle du serveur, pas celle de votre navigateur. Le filtre reste inoffensif, il ne s'applique simplement pas à ce cas précis.
Codes d'erreur
| Code HTTP | Code erreur | Description |
|---|---|---|
| 400 | invalid_request | Corps de requête invalide ou champ email manquant |
| 401 | unauthorized | Clé API manquante ou invalide |
| 402 | insufficient_credits | Quota mensuel épuisé, rechargez votre plan |
| 429 | rate_limit_exceeded | Trop de requêtes, voir header Retry-After |
| 500 | server_error | Erreur interne, réessayez dans quelques secondes |
{
"error": "insufficient_credits",
"message": "Votre quota mensuel est épuisé. Mettez à niveau votre plan.",
"credits_remaining": 0
} Prêt à intégrer ?
Créez votre compte gratuitement et obtenez votre clé API en moins d'une minute. 2 vérifications gratuites.