Sign up and contact support to get 100 free checks.Sign up free
EmailCheckPro workflow illustration for How to Run a Bulk Email Deliverability Check on a Prepared List
A visual overview of the workflow discussed in this EmailCheckPro article.

A step-by-step workflow for bulk email verification with EmailCheckPro: prepare the file, start the task, poll status and act on the result file.

Bulk email verification with EmailCheckPro is an asynchronous task. Prepare a plain TXT or CSV file with one complete address per line, submit it as a bulk task, poll the task until it finishes, and download one CSV of results. Each address is reported as deliverable (it could receive mail at check time) or undeliverable. Addresses that could not be completed, such as catch-all domains, stay undetermined and are handled separately. The check sends nothing to any address on the list.

Prepare the list before a bulk email verification

Most failed or wasteful runs start with the file, not the check. Before submitting, work through this short list:

  • Use TXT or CSV only. One complete address per line, with a local part, an @ sign and a domain. Spreadsheet formats such as XLSX are not accepted, so export to CSV first.
  • Trim whitespace and obvious typos. A stray space or a missing domain makes a line unusable.
  • Deduplicate where you can. Invalid and duplicate lines are removed during preparation, but cleaning them yourself keeps the count you expect.
  • Keep one product per file. A deliverability file and an avatar file are different tasks. Email Avatar Check accepts only Gmail, Yandex and Mail.ru addresses, so a mixed list belongs in the deliverability task.
  • Check per-product limits. File size and address counts differ by product; the API documentation lists the current limits.

Keep the original export untouched. You will join the results back to it later.

Start the task and poll for status

Bulk tasks are submitted with POST /api/v1/bulk-tasks, uploading the prepared file. The call does not return results; it creates a task that runs in the background. That is the key difference from realtime work: a single check and a synchronous multi-address check answer in the same response, while a bulk task is something you come back to.

Check progress with GET /api/v1/bulk-tasks/{id}. Poll no more often than every 30 seconds; a tighter loop adds requests without making the task finish sooner. When the status reports success, the response carries a download link for one CSV. That link stays valid for 12 hours, and querying the same task again refreshes it, so a missed window is not a lost result.

If preparation fails, for example because a file contains unsupported content, the task does not proceed to a charge. Fix the file and submit again.

Read the result CSV

The deliverability task returns one CSV. It pairs each address with a flag showing whether it was deliverable. The avatar task adds a column for a public avatar and a link to it; the link can be empty even when an avatar was found.

Sort the rows into three groups:

Group Meaning at check time Typical action
Deliverable The address could receive mail Keep in the list
Undeliverable The address could not receive mail Suppress or correct
Undetermined or missing No completed result, for example a catch-all domain Hold separately; do not treat as either verdict

A missing or undetermined row is not an undeliverable verdict. Only completed results are billable, so undetermined lines are not charged.

Put the results to work

Join the result CSV back to your original export on the address column, then write the verdict into a field in your CRM or sending tool rather than deleting rows. That keeps an audit trail and lets you re-run only the records that changed.

Two habits help. First, run the check close to the send or import, because a result describes the address at check time and says nothing about its future status. It is one input into list hygiene, alongside your own suppression and consent records.

For smaller follow-ups, such as a few hundred new sign-ups, a synchronous multi-address call of 1 to 100 addresses is simpler than a new bulk task.

FAQ

How can teams know when a bulk task has finished?

Poll the task status endpoint at an interval of 30 seconds or longer. When the status reports success, the response includes a link to the result CSV. The link lasts 12 hours and can be refreshed by querying the same task again, so there is no need to download immediately.

What happens to lines that are not valid addresses?

Invalid and duplicate lines are removed while the file is prepared. An invalid format is not an undeliverable verdict; it simply is not a checkable address. Cleaning the file beforehand keeps the prepared count close to what the team expects.

Can a bulk task be started from an AI client over MCP?

No bulk file-task tool is documented for the MCP endpoint. MCP supports single checks, up to 100 addresses per call, product listing and balance queries. Bulk file tasks use the web workflow or the REST API.

Learn More

Choose the product information that fits the next step in your workflow.

Sources