Email Verifier & Deliverability Checker
Pricing
from $0.0025 / per email verification (paid)
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
Maintained by CommunityActor stats
23
Bookmarked
1.3K
Total users
33
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
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?
| Workflow | How the results help |
|---|---|
| Cold outreach preparation | Review address quality before selecting contacts for a campaign |
| Newsletter list review | Identify invalid addresses and other results that need attention |
| CRM contact checks | Verify an email list before importing or updating contact records |
| Business email verification | Review addresses that you already collected from websites or other tools |
| Developer workflows | Retrieve structured results from an Apify dataset |
| Agency operations | Apply consistent verification checks to separately managed client lists |
How to verify an email list
- Open the Actor and select Try for free or open it in Apify Console. Review the current pricing and your available credit.
- Enter the email addresses you want to check in Email list.
- Start the run and wait for it to finish.
- Open the result dataset and review the verification status, score, and flags.
- Export the data as CSV, Excel, or JSON, or retrieve it through the API.
- 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?
| Status | Meaning | Suggested review action |
|---|---|---|
safe | The verification assessment considers the address suitable for sending | Review it alongside your normal contact and campaign rules |
invalid | The assessment identifies the address as invalid | Exclude it from sending until corrected and rechecked |
disabled | The mailbox is reported as disabled | Hold or remove it from the active sending list |
disposable | The address is associated with a temporary email service | Decide whether temporary addresses fit your use case |
inbox_full | The mailbox is reported as full | Hold it for later review or rechecking |
catch_all | The domain accepts addresses broadly, making a specific mailbox harder to confirm | Review separately; acceptance alone does not establish mailbox existence |
role_account | The address represents a shared function, such as a general contact inbox | Review whether a shared mailbox is suitable for your message |
spamtrap | The assessment flags a potential spamtrap | Exclude it from outreach |
unknown | Verification did not produce a conclusive assessment | Keep 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.
| Field | What it tells you |
|---|---|
email | The email address associated with the result |
status | The overall verification category |
overall_score | An integer assessment score from 0 to 100 |
username | The part before the @ symbol, when available |
domain | The email domain, when available |
is_safe_to_send | The available safe-to-send assessment |
is_valid_syntax | Whether the supplied address passes the syntax check |
is_disposable | Whether it is identified as a disposable address |
is_role_account | Whether it is identified as a role or shared account |
can_connect_smtp | Whether an SMTP connection could be established |
has_inbox_full | Whether a full inbox was reported |
is_catch_all | Whether catch-all behavior was identified |
is_deliverable | The available deliverability assessment |
is_disabled | Whether the mailbox was reported as disabled |
is_spamtrap | Whether a spamtrap flag was returned |
is_free_email | Whether the address uses a free email service |
mx_accepts_mail | The 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:
- Start one run with the
emailsinput. - Save the returned run ID.
- Check that same run until it reaches a terminal state.
- Retrieve its default dataset.
- 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.