veriastra_
Use case · Lead List Cleaning

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.

What runs

The endpoints, and what each costs

Bulk jobs
POST /api/bulk
CSV and NDJSON in, scored rows out, signed webhook when done
1 credit per row
Email validation
POST /api/verify-email
Live SMTP probe per address — and charged: 0 when the server would not answer
1 credit · unknown refunded
Phone validation
POST /api/lookup-phone
Validity, carrier block, line type with its basis, spam reputation
1 credit
Phone spam check
POST /api/spam-check
FTC and FCC complaint volume against the number
1 credit
One request
request
POST /api/bulk
{ "type": "email", "items": ["[email protected]", "[email protected]", "[email protected]"] }
response — the fields that matter
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: 0

The catch-all row is charged because 'this domain accepts everything' is a real answer. An unknown — server timed out, probe refused — is refunded.

What this cannot do

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.

Questions

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.