Email Verifier & Deliverability Checker avatar

Email Verifier & Deliverability Checker

Pricing

from $0.0025 / per email verification (paid)

Go to Apify Store
Email Verifier & Deliverability Checker

Email Verifier & Deliverability Checker

Verify single emails or bulk email lists with deliverability checks, quality scores, and disposable, catch-all and role account detection. Use the Apify API or Console, then export results to CSV, Excel or JSON for cold outreach, CRM checks and email list cleaning.

Pricing

from $0.0025 / per email verification (paid)

Rating

5.0

(3)

Developer

Yasir

Yasir

Maintained by Community

Actor stats

23

Bookmarked

1.3K

Total users

33

Monthly active users

8 days ago

Last modified

Security

Limited permissions

Share

Bulk Email Verification and Email Validation API

Email Verifier & Deliverability Checker checks single email addresses and bulk email lists on Apify. Submit your addresses, review verification statuses and quality signals, and export the results to CSV, Excel, or JSON.

Use it to review contact lists before cold outreach, newsletter campaigns, or CRM updates. You can run it in Apify Console or include it in a workflow through the Apify API.

Open the Actor or start with the cold outreach example task.

What does this email verifier do?

The Actor returns an assessment of each available email verification result, including a status, a score from 0 to 100, and individual flags.

Available signals cover address syntax, SMTP connectivity, mail acceptance, deliverability, disposable addresses, role accounts, catch-all domains, disabled mailboxes, full inboxes, spamtrap flags, and free email services.

The results help you decide which contacts to keep, review, or exclude from a particular workflow. Some mail systems provide limited information, so a result can remain unknown or include inconclusive checks.

Who can use it?

WorkflowHow the results help
Cold outreach preparationReview address quality before selecting contacts for a campaign
Newsletter list reviewIdentify invalid addresses and other results that need attention
CRM contact checksVerify an email list before importing or updating contact records
Business email verificationReview addresses that you already collected from websites or other tools
Developer workflowsRetrieve structured results from an Apify dataset
Agency operationsApply consistent verification checks to separately managed client lists

How to verify an email list

  1. Open the Actor and select Try for free or open it in Apify Console. Review the current pricing and your available credit.
  2. Enter the email addresses you want to check in Email list.
  3. Start the run and wait for it to finish.
  4. Open the result dataset and review the verification status, score, and flags.
  5. Export the data as CSV, Excel, or JSON, or retrieve it through the API.
  6. Apply the selection rules appropriate to your campaign or contact database.

Start with a small list so you can check the output before processing larger batches.

Input

The supported input field is emails: an array containing 1 to 1,000 strings.

{
"emails": [
"yasir0322@gmail.com",
"hello@apify.com",
"john.disposable@yopmail.com",
"person@example.com",
"team@example.org"
]
}

These are the configured demonstration addresses. They show the input format and do not guarantee a particular result for each address. Replace them with your own addresses before a production run.

To check one address, supply an array containing one string. For more than 1,000 addresses, split the list into separate runs.

Enter the addresses in the format you intend to verify. The Actor does not trim whitespace, change casing, correct typos, or remove repeated input entries before submission.

Account access rules and the run's spending allowance can limit how many addresses are processed. Inspect the run summary when the saved results do not cover the full list.

What do email verification statuses mean?

StatusMeaningSuggested review action
safeThe verification assessment considers the address suitable for sendingReview it alongside your normal contact and campaign rules
invalidThe assessment identifies the address as invalidExclude it from sending until corrected and rechecked
disabledThe mailbox is reported as disabledHold or remove it from the active sending list
disposableThe address is associated with a temporary email serviceDecide whether temporary addresses fit your use case
inbox_fullThe mailbox is reported as fullHold it for later review or rechecking
catch_allThe domain accepts addresses broadly, making a specific mailbox harder to confirmReview separately; acceptance alone does not establish mailbox existence
role_accountThe address represents a shared function, such as a general contact inboxReview whether a shared mailbox is suitable for your message
spamtrapThe assessment flags a potential spamtrapExclude it from outreach
unknownVerification did not produce a conclusive assessmentKeep it separate and consider a later check

A free email address is not automatically invalid. A role account is not automatically unreachable. Catch-all and unknown results should not be silently treated as safe.

Verification describes the information available at the time of the check. It does not guarantee future delivery, inbox placement, recipient interest, or permission to contact someone.

Output fields

Results are saved to the run's default dataset using these 17 fields.

FieldWhat it tells you
emailThe email address associated with the result
statusThe overall verification category
overall_scoreAn integer assessment score from 0 to 100
usernameThe part before the @ symbol, when available
domainThe email domain, when available
is_safe_to_sendThe available safe-to-send assessment
is_valid_syntaxWhether the supplied address passes the syntax check
is_disposableWhether it is identified as a disposable address
is_role_accountWhether it is identified as a role or shared account
can_connect_smtpWhether an SMTP connection could be established
has_inbox_fullWhether a full inbox was reported
is_catch_allWhether catch-all behavior was identified
is_deliverableThe available deliverability assessment
is_disabledWhether the mailbox was reported as disabled
is_spamtrapWhether a spamtrap flag was returned
is_free_emailWhether the address uses a free email service
mx_accepts_mailThe available mail-acceptance assessment

For compatibility with the existing output, check fields can contain booleans, numbers, or strings such as "None". Missing check values can appear as false, and a missing score can appear as 0. Those fallback values do not prove that a check completed or that an address has a measured zero quality.

In your own code, interpret the status and the available checks together. Avoid treating every nonempty string as true or assuming all fields are strict booleans. Missing username or domain values may be null or empty strings.

The following JSON illustrates the structure of an inconclusive result. It is not a live test of this address, and a real run can return different values.

[
{
"email": "person@example.com",
"status": "unknown",
"overall_score": 0,
"username": "person",
"domain": "example.com",
"is_safe_to_send": "None",
"is_valid_syntax": true,
"is_disposable": "None",
"is_role_account": "None",
"can_connect_smtp": "None",
"has_inbox_full": "None",
"is_catch_all": "None",
"is_deliverable": "None",
"is_disabled": "None",
"is_spamtrap": "None",
"is_free_email": "None",
"mx_accepts_mail": "None"
}
]

The dataset items endpoint returns an array of result objects. When you retrieve the default dataset, expect the row fields directly rather than an additional results wrapper.

How to read the quality score

Use overall_score as an additional review signal. Read the status and relevant flags first, then consider the score in the context of your workflow.

A score is not a percentage probability that a future campaign will reach the inbox. There is no universal score threshold that makes catch-all, unknown, or other risk categories suitable for every sender. A high score does not replace the individual checks or your contact rules.

Use the email verification API

You can start the Actor through the Apify API and retrieve the dataset after it finishes. The API tab provides the available integration examples.

For bulk work, use an asynchronous workflow:

  1. Start one run with the emails input.
  2. Save the returned run ID.
  3. Check that same run until it reaches a terminal state.
  4. Retrieve its default dataset.
  5. Check the run summary and result count before treating the batch as fully processed.

The start response contains run information; it is not the finished verification dataset. Avoid starting another run each time you check progress.

Apify's run-and-retrieve guide explains the general API pattern. For this Actor, use the exact identifier yasir-on-apify/email-verifier-deliverability-checker and the emails array shown above.

Use with spreadsheets, CRMs, and automation tools

Export CSV or Excel results for spreadsheet review. Retrieve JSON through the Apify API when another application needs structured verification data.

A custom workflow can read addresses from your chosen source, run the Actor, and map the returned results to that system. This requires the corresponding integration steps; supplying a CRM name or a spreadsheet URL as Actor input is not supported.

Keep your original contact IDs separately when you need to join verification results back to CRM records. Do not assume that result rows will correspond one-for-one to the positions in your original input.

Use with AI agents

An appropriately connected and authorized AI client can run eligible Actors through Apify's MCP server. Ask it to summarize the actual dataset and keep unknown and catch-all results separate. Normal billing applies.

Pricing and run limits

This Actor uses pay-per-event pricing. Check the current Pricing tab for the rate that applies to your account and run.

Completed verification results that are saved can be charged even when their status is invalid or unknown. A result does not need to be safe to be billable.

For an estimate, multiply the expected number of charged results by your applicable per-result rate, then include any other events shown in the run's pricing. Your run's billing records are authoritative.

Set a spending limit appropriate to the batch. If the allowance is reached, the run may save only part of the requested results. Review the run status message and the SUMMARY record before deciding to process the remaining addresses.

Frequently asked questions

Can I check a single email address?

Yes. Put one address in the emails array. The input format stays the same for a single address and a list.

How many emails can I verify in one run?

The input accepts 1 to 1,000 entries. Account rules and the configured spending allowance can reduce the number processed. Split larger lists into separate runs.

Can I upload a CSV or Excel file directly?

The current input accepts an email array. Extract the email column from your file and paste those addresses into the input, or convert that column into the JSON array in your own workflow. CSV and Excel are available as output export formats.

Does the Actor find email addresses?

It verifies addresses you provide. Use your own contact source or a separate collection tool to obtain the addresses first.

Does it remove duplicates or correct spelling?

There is no separate input deduplication or typo-correction step. Repeated entries are submitted as supplied. A verification response can combine repeats or omit some entries, so output count and order should not be used as a contact-record identifier.

Why can an email result be unknown?

A receiving mail system may not provide enough information to reach a conclusive assessment. Keep unknown results separate from confirmed outcomes and consider rechecking later if the contact is important.

Is a catch-all address valid?

Catch-all behavior does not confirm a particular mailbox. Review the result separately and apply the policy appropriate to your campaign.

Is a role account always unsafe?

No. A shared inbox can be a legitimate contact point. Its suitability depends on what you plan to send and whether the message belongs in that inbox.

Are Gmail and other free email addresses invalid?

No. is_free_email classifies the type of email service; it does not by itself establish that the address is invalid.

Can a safe address still bounce?

Yes. Mailbox state and sending conditions can change. A verification result cannot guarantee how a later message will be handled.

Does it test SPF, DKIM, DMARC, or inbox placement?

Those are separate questions about sending configuration and message delivery. This Actor's output covers the address-verification fields listed above. It does not provide a campaign inbox-placement test or an authentication audit.

Can I use the Actor from Python or JavaScript?

Yes, through Apify's API or supported clients. Start with the Actor's API tab and retrieve the run's default dataset after completion.

Does it update my CRM automatically?

The Actor produces verification results. Updating a CRM requires your own import step or an integration that maps those results back to contact records.

Will Restore example input verify all result categories?

It restores demonstration addresses in the input form. It does not force particular statuses. Live verification outcomes can change.

Why are there fewer results than input entries?

Check the run's spending allowance, access limits, completion state, and summary. A bulk response may also combine repeated addresses or omit entries. Review what was saved before submitting another run.

How do I get help with a failed run?

Use the Actor's Issues tab. Include the run ID, the visible error message, and a short description of what you expected. Keep API tokens and private contact lists out of public issue reports.

Start with a small email list

Open the Email Verifier & Deliverability Checker, enter your email list, and review the results before using them in your next workflow.