Validate a list before you dial or send anything
Run a CSV of phones and emails through validation in one bulk job — dead mailboxes out, invalid numbers out, every row back with the evidence, and no charge for an email we could not answer.
A bought or aged list is part asset, part liability: the dead addresses bounce and burn your sender reputation, the disconnected numbers waste dialer time, and nobody can say which rows are which until the damage is done.
Cleaning is a batch problem. Upload the list, get every row back scored, and act on the split — send to the valid, retry the unknown, delete the dead.
The endpoints, and what each costs
POST /api/bulk
{ "type": "email", "items": ["[email protected]", "[email protected]", "[email protected]"] }rows: [
{ "input": "a@…", "status": "invalid", "charged": 1 },
{ "input": "b@…", "status": "valid", "charged": 1 },
{ "input": "c@…", "status": "catch_all","charged": 1 }
] // an "unknown" row would say charged: 0The catch-all row is charged because 'this domain accepts everything' is a real answer. An unknown — server timed out, probe refused — is refunded.
The part a use-case page usually skips
A catch-all domain cannot be fully resolved
Some mail servers accept every address and only bounce later. We report catch_all rather than valid, because claiming certainty there would be lying with a status code. Whether to send to those is a judgement call that stays yours.
Valid means deliverable-shaped, not opted-in
Validation tells you the mailbox exists and the number is live-shaped. It says nothing about consent — a clean list you had no permission to contact is still a compliance problem, which is what the DNC record product is for.
How big can a job be?
The free trial accepts 100 rows. Paid plans run to 10,000 on the API; the sync mini-batch endpoint handles small lists inline. Both return every row with its own status and charge.
Why do some vendors quote higher deliverability rates?
Because 'unknown' can be silently counted as 'valid'. Our unknowns are labelled, refunded, and yours to retry — a smaller number that is true beats a bigger one that is not.