Passer au contenu

SDK Node.js

Voir en Markdown

Aperçu

import { Syvel } from '@syvel/node';
const syvel = new Syvel({
apiKey: process.env.SYVEL_API_KEY,
});
// Dans un handler de soumission de formulaire ou une route d'inscription :
try {
const result = await syvel.check('[email protected]');
// result.isRisky — boolean
// result.riskScore — 0–100
// result.reason — "safe" | "disposable" | "undeliverable" | "role_account"
// result.deliverabilityScore — 0–100
if (result.isRisky) {
return res.status(422).json({ error: 'Veuillez utiliser une adresse email professionnelle.' });
}
} catch {
// Syvel indisponible — fail open, ne jamais bloquer une inscription
}

Avec fetch natif aujourd’hui (Node.js 18+)

async function checkEmail(email) {
try {
const res = await fetch(
`https://api.syvel.io/v1/check/${encodeURIComponent(email)}`,
{
headers: { Authorization: `Bearer ${process.env.SYVEL_API_KEY}` },
signal: AbortSignal.timeout(3000),
}
);
if (!res.ok) return null; // quota dépassé ou erreur serveur → fail open
return await res.json();
} catch {
return null; // erreur réseau ou timeout → fail open
}
}
// Dans une route Express :
app.post('/register', async (req, res) => {
const result = await checkEmail(req.body.email);
if (result?.is_risky) {
return res.status(422).json({ error: 'Veuillez utiliser une adresse email professionnelle.' });
}
// continuer l'inscription...
});

Ressources

Dernière mise à jour :