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.

Obtenir ma clé API gratuitement Voir les intégrations

Base URL

https://api.mailcheck.fr/v1

Toutes 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.

Header HTTP
Authorization: Bearer mc_live_xxxxxxxxxxxxxxxxxxxx
Ne commitez jamais votre clé API dans votre code source. Utilisez des variables d'environnement (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

ChampTypeRequisDescription
emailstringOuiL'adresse email à vérifier
options.catch_allbooleanNonActive la détection catch-all (défaut : true)
Corps JSON
{
  "email": "[email protected]",
  "options": {
    "catch_all": true
  }
}

Format de réponse

La réponse est un objet JSON avec les champs suivants :

ChampTypeDescription
emailstringL'adresse vérifiée (normalisée en minuscules)
statusstringvalid / invalid / risky / catch_all / disqualifie
scoreintegerScore de confiance 0–100 (≥80 = fiable)
checks.syntaxbooleanSyntaxe RFC 5322 valide
checks.dnsbooleanDomaine résolu en DNS
checks.mxbooleanMX records présents et actifs
checks.smtpbooleanBoîte aux lettres confirmée par SMTP
checks.disposablebooleanAdresse jetable détectée
checks.catch_allbooleanServeur catch-all (wildcard) détecté
confidencestringhigh / medium / low
Réponse JSON · 200 OK · 187 ms
{
  "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

StatutSignificationAction 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

cURL · Terminal
# 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

Python 3.8+
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

Node.js (fetch natif, Node 18+)
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.

PlanRequêtes / secondeVérifications / mois
Starter10 req/s5 000
Growth50 req/s50 000
Pro200 req/s200 000
Agency200 req/s1 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.fr

Ré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

OutilCe qu'il retourne
list_tracked_emailsVos e-mails suivis, du plus récent au plus ancien. Filtres destinataire, fournisseur, ouvert ou non, date
get_email_opensLe détail des ouvertures d'un e-mail donné, horodatées
find_unopenedLes e-mails jamais ouverts, et la liste dédupliquée des destinataires à relancer
recipient_engagementLe profil d'un destinataire, taux d'ouverture et délai moyen de première ouverture
tracking_statsLes 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

ChampTypeRequisDescription
idstringOuiIdentifiant unique de l'e-mail, 64 caractères maximum. Utilisez un UUID
subjectstringNonObjet du message, affiché dans le tableau de bord
recipientstringNonAdresse du destinataire
senderstringNonVotre adresse d'expédition
providerstringNonÉtiquette libre, par exemple smtp. Sur l'offre gratuite, un seul fournisseur est autorisé par mois calendaire
L'identifiant 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 · Terminal
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 :

HTML
<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 HTTPCode erreurDescription
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
Exemple réponse d'erreur · 402
{
  "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.