Batch Processing — Clean Large Lists Instantly
Real-time email validation for clean data. Upload thousands of addresses, get a detailed report, and export in the format your team needs.
How Batch Processing Works
VeriMail's batch engine processes up to 50,000 email addresses in a single job. You upload a file, our validation pipeline checks each address against live SMTP servers, domain DNS records, and 12 proprietary risk signals, then returns a structured report you can trust.
Whether you're cleaning a legacy customer database from Acme Industries or preparing a one-time acquisition list for a product launch, the same engine handles it. Jobs start within seconds of upload completion. For files under 10,000 rows, results typically finish in under three minutes. Larger jobs run asynchronously with real-time progress tracking so you always know the current status.
Flexible File Upload, Clear Limits
CSV Upload
Upload .csv files up to 50 MB. Headers are auto-detected; we recognize common column names like email, Email Address, or contact_email. If your file uses a different header, map it during the upload step. CSV files support UTF-8 and Latin-1 encodings.
Excel Upload
Upload .xlsx or .xls files up to 30 MB. VeriMail reads the first worksheet and validates up to 50,000 rows per file. Formatted cells, merged headers, and hidden columns are handled gracefully — we extract the email column and ignore the rest.
Progress Tracking
Every batch job gets a live dashboard row showing records processed, valid count, invalid count, and catch-all count. You can pause or cancel jobs at any time. Completed jobs are retained for 30 days so you can re-download reports or re-export at any time.
Scheduling & API
For recurring cleans, use the REST API endpoint /v1/batch/jobs to submit files programmatically. Team and Enterprise plans support scheduled batch jobs — set a daily or weekly cadence and receive an email notification when each report is ready.
Detailed Reports You Can Act On
Every batch job produces a line-by-line report with a status, a reason code, and a confidence score. No black boxes, no vague labels.
Status Categories
Each address receives one of five statuses: Valid (mailbox confirmed via SMTP), Invalid (syntax error, domain not found, or mailbox rejected), Catch-All (domain accepts all addresses — flagged for manual review), Disposable (temporary email provider detected), or Risky (role-based account, known spam trap, or low deliverability score). Role-based addresses like info@, support@, and admin@ are flagged separately so you can decide whether to keep them.
Reason Codes
Every result includes a machine-readable reason code. Examples: SMT_250 for confirmed delivery, DNS_NXDOMAIN for non-existent domains, SMT_550 for mailbox not found, CATCHALL_DETECTED for catch-all servers, and SUB_DISPOSABLE for known disposable providers like mailinator.com or guerrillamail.com. Reason codes make it easy to write downstream logic in your CRM or ESP.
Confidence Scores
Each result carries a confidence score from 0 to 100. A score of 95+ means the mailbox was directly confirmed. Scores between 70–94 indicate high probability based on DNS, MX records, and pattern matching. Scores below 70 are flagged for manual review. You can set a custom threshold in your account settings to automatically filter results.
Batch Summary
At-a-Glance Metrics
Alongside the line-by-line report, you get a summary dashboard: total records processed, valid percentage, invalid percentage, time to completion, and estimated deliverability improvement. For example, a recent job for Portland Marketing Group cleaned 32,410 addresses, identified 24,187 as valid (74.6%), flagged 4,891 as invalid, and marked 3,332 as catch-all — improving their campaign deliverability from 68% to 91%.
Download Results in the Format Your Team Uses
After your batch job completes, export the full report or filtered subsets in CSV or JSON. Both formats include all status fields, reason codes, confidence scores, and any original columns from your upload file.
CSV Export
Download a .csv file with one row per email address. Columns include the original email, status, reason code, confidence score, domain, and any custom fields from your upload. CSV exports are UTF-8 encoded and compatible with Excel, Google Sheets, Salesforce, HubSpot, and Mailchimp. You can choose to export all results or filter to only Valid, only Invalid, or any combination.
JSON Export
Download a .json file with structured data for programmatic use. Each record is an object with keys: email, status, reason_code, confidence_score, domain, is_disposable, is_role_based, and custom_fields. JSON exports are ideal for integrating validation results back into your application pipeline or feeding them into a data warehouse via ETL tools like Fivetran or Stitch.
Filtered & Segmented Exports
Create multiple exports from a single batch job. Export only the Valid addresses for immediate import into your ESP. Export the Risky addresses for a separate review workflow. Export the Disposable addresses to permanently suppress them in your CRM. Each export preserves the original row metadata so you can match results back to your source records.
Retention & Re-Export
Completed batch jobs and their reports are stored securely for 30 days. You can re-export results in any format at any time during that window. Enterprise customers with the Extended Retention add-on can store reports for up to 12 months for compliance and audit purposes.