SDK Node.js
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 { // 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...});