Passer au contenu

Démarrage rapide

Voir en Markdown

Créer votre compte

  1. Rendez-vous sur app.syvel.io/register
  2. Renseignez votre email et choisissez un mot de passe
  3. Votre compte Free est immédiatement actif (100 req/mois)

Créer votre première clé API

Dans le dashboard, section Clés API :

  1. Cliquez sur Nouvelle clé
  2. Donnez-lui un nom (ex: “Production”)
  3. Copiez la clé affichée — elle ne sera plus visible ensuite

Votre clé ressemble à : sv_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Premier appel API

Fenêtre de terminal
curl "https://api.syvel.io/v1/check/[email protected]" \
-H "Authorization: Bearer sv_votre_cle"

Réponse :

{
"email": "a9****[email protected]",
"is_risky": true,
"risk_score": 100,
"reason": "disposable",
"is_free_provider": false,
"is_corporate_email": false,
"did_you_mean": null,
"is_alias_email": false,
"mx_provider_label": "Yopmail",
"deliverability_score": 0
}

Champs clés

ChampTypeDescription
is_riskybooleanLe signal de blocage principal. Utilisez ce champ pour accepter ou refuser.
risk_scoreinteger0–100. Pour les seuils personnalisés (défaut : 65).
reasonstringsafe · disposable · undeliverable · role_account
did_you_meanstring | nullSuggestion de correction de typo.
deliverability_scoreinteger0–100. Probabilité de livraison effective.

Intégration dans un formulaire

async function validateEmail(email) {
try {
const res = await fetch(
`https://api.syvel.io/v1/check/${encodeURIComponent(email)}`,
{
headers: { 'Authorization': 'Bearer sv_votre_cle' },
signal: AbortSignal.timeout(3000), // 3 s max — ne jamais bloquer
}
);
if (!res.ok) return { valid: true }; // quota dépassé, erreur serveur → laisser passer
const data = await res.json();
if (data.is_risky) {
return { valid: false, message: "Veuillez utiliser une adresse email professionnelle." };
}
// Proposer une correction si typo détectée
if (data.did_you_mean) {
return { valid: true, warning: `Vouliez-vous dire ${data.did_you_mean} ?` };
}
return { valid: true };
} catch {
return { valid: true }; // erreur réseau ou timeout → fail open
}
}

Étapes suivantes

Dernière mise à jour :