Lead Lists

List Validation

Validate all emails in a lead list before using it in campaigns. This removes invalid addresses, disposable emails, and optionally catch-all domains.

Starting Validation

From the dashboard: go to Lists, click the Validate button on any list.

Via API:

bash
curl -X POST http://YOUR_SERVER/v1/outreach/lists/validate/LIST_ID \
  -H "Cookie: auth_token=YOUR_SESSION" \
  -H "Content-Type: application/json" \
  -d '{"catch_all_strategy": "keep"}'

Catch-All Strategy

StrategyBehavior
keepKeep catch-all emails in the list (default)
deleteRemove catch-all emails from the list

What Happens During Validation

  1. List status changes to processing
  2. Each lead is queued to the validation worker
  3. Workers perform Level 2 (SMTP) verification on each email
  4. Invalid emails are marked with validation_status: "invalid"
  5. Catch-all emails are marked and optionally removed
  6. Role accounts and disposable emails are flagged
  7. List status changes to completed when all leads are processed

Validation Results Per Lead

StatusMeaning
validEmail confirmed deliverable
invalidEmail doesn't exist or domain has no MX
catchallDomain accepts all addresses
disposableKnown disposable/temporary email provider
roleRole-based address (info@, admin@, etc.)
Port 25 detection

If port 25 is blocked on your server, the validation worker detects this and marks the list with a note. Level 1 checks still run (syntax, MX, disposable), but SMTP deliverability can't be confirmed.

Monitoring Progress

The list shows real-time progress:

  • Initial Count — Total leads when validation started
  • Processed Count — Leads checked so far
  • Invalid Deleted — Leads removed as invalid
  • Catchall Deleted — Leads removed as catch-all (if strategy is "delete")