Bulk Email Validation

Bulk Email Validation - Clean Thousands of Emails

Validate thousands or millions of emails in bulk. Upload CSV/TXT files, process asynchronously, and get results via webhook or download.

What It Solves

Marketing campaigns, database migrations, and list cleaning require bulk validation. Our bulk API accepts files, processes emails in parallel, and delivers detailed reports with status codes, risk scores, and suggestions.

Sync Batch - Small Lists

For lists up to 10,000 emails:

curl -X POST "https://api.mailsafepro.es/validate/batch" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"emails":["email1@example.com","email2@example.com"],"check_smtp":true}'
const res = await fetch("https://api.mailsafepro.es/validate/batch", {
  method: "POST",
  headers: { "X-API-Key": process.env.MAILSAFEPRO_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ emails: ["email1@example.com", "email2@example.com"], check_smtp: true })
});
console.log(await res.json());
import os
import requests

response = requests.post(
    "https://api.mailsafepro.es/validate/batch",
    headers={"X-API-Key": os.environ["MAILSAFEPRO_API_KEY"]},
    json={"emails": ["email1@example.com", "email2@example.com"], "check_smtp": True},
    timeout=60,
)
print(response.json())

Async Jobs - Large Lists

For lists over 10,000 emails or when you need webhooks:

curl -X POST "https://api.mailsafepro.es/jobs" \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "list",
    "emails": ["email1@example.com", "email2@example.com"],
    "check_smtp": true,
    "callback_url": "https://your-app.com/webhook"
  }'
const res = await fetch("https://api.mailsafepro.es/jobs", {
  method: "POST",
  headers: { "X-API-Key": process.env.MAILSAFEPRO_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({
    source: "list",
    emails: ["email1@example.com", "email2@example.com"],
    check_smtp: true,
    callback_url: "https://your-app.com/webhook"
  })
});
const { job_id } = await res.json();
console.log("Job ID:", job_id);
import os
import requests

response = requests.post(
    "https://api.mailsafepro.es/jobs",
    headers={"X-API-Key": os.environ["MAILSAFEPRO_API_KEY"]},
    json={
        "source": "list",
        "emails": ["email1@example.com", "email2@example.com"],
        "check_smtp": True,
        "callback_url": "https://your-app.com/webhook"
    },
)
data = response.json()
print("Job ID:", data["job_id"])

Preguntas Frecuentes

¿Cómo subo un archivo en masa?

Usa nuestro endpoint /jobs con source="upload" y un file_token, o usa /validate/batch para listas pequeñas. Te devolveremos un job ID para seguir el progreso.

¿Cuánto tarda el procesamiento en masa?

El tiempo de procesamiento depende del tamaño de la lista y la profundidad de validación. Aproximadamente 1,000 emails/minuto con verificaciones SMTP completas.

¿Puedo recibir los resultados por webhook?

Sí. Proporciona una URL de webhook al enviar el trabajo y te notificaremos cuando los resultados estén listos.

¿Qué formatos de archivo soportáis?

CSV (con fila de cabecera), TXT (un email por línea), y arrays JSON son compatibles.

¿Cuáles son los límites de batch?

Hasta 10,000 emails por trabajo sync. Los trabajos async soportan hasta 1M de emails para planes Enterprise.