Cold Email10 min read

Apify Email Verification: Clean Scraped Leads Safely

Use Apify email verification to validate scraped leads before outreach, remove disposable addresses, and lower cold email bounce risk at scale.

B
The Bounceable Team
Scraped contact cards passing through an email verification checkpoint

Apify email verification helps you turn extracted lead data into a safer outreach list before it hits your CRM, enrichment tool, or sequencer. You still need consent, relevance, and compliance checks. But you should not send cold email to addresses you have not validated.

Why Apify lead data needs verification

Scraped or collected lead data often contains addresses that look usable but should not go straight into outreach.

Apify is useful because it can collect structured data from websites, directories, marketplaces, search results, and custom sources. That does not mean every email in the output is current, personal, or deliverable.

Common issues include:

  • Stale addresses from old pages, cached profiles, abandoned websites, or former employees.
  • Malformed addresses caused by parsing errors, obfuscation, JavaScript rendering, or bad source formatting.
  • Role-based email addresses such as info@, sales@, support@, admin@, and press@.
  • Disposable addresses from burner domains used to avoid follow-up.
  • Catch-all domains that accept mail for any local part, even if the mailbox may not exist.
  • Generic contact forms or aliases that do not map to a real prospect.
  • Duplicated leads across multiple actor runs or overlapping sources.

Poor lead quality creates practical damage.

You waste enrichment credits. You pollute CRM records. You trigger hard bounces. You train sales reps to distrust list data. You also put outbound email deliverability at risk.

A high bounce rate tells mailbox providers that you do not maintain your lists. Spam complaints tell them your targeting is weak. Low engagement tells them recipients do not want your mail. Verification cannot fix all of that, but it removes a preventable source of risk before you send.

Cold email verification is a risk-control step. It does not replace permission rules, lawful basis checks, unsubscribe handling, regional compliance, or relevant targeting.

For cold outreach, the goal is not “send to every address you found.” The goal is “send to the right people at addresses that are likely to accept mail.”

Where email verification fits in an Apify workflow

Verify leads after an Apify actor extracts them and before you import them into your CRM or upload them to a campaign tool.

That placement matters. If you verify too early, you may miss addresses added during enrichment. If you verify too late, bad records may already create duplicates, trigger automations, or enter sales workflows.

A clean workflow looks like this:

  1. Run your Apify actor

    • Extract leads from your target source.
    • Include email, name, company, domain, source URL, role, and any relevant context.
  2. Normalize the output

    • Lowercase email addresses.
    • Trim whitespace.
    • Remove obvious non-email strings.
    • Standardize field names across actors.
  3. Deduplicate

    • Deduplicate by email first.
    • Then deduplicate by domain + name if needed.
    • Keep source metadata so you know where the lead came from.
  4. Verify email addresses

    • Run prospect email validation on the actor output dataset.
    • Store the verification verdict and supporting flags.
  5. Segment the records

    • Deliverable: eligible for careful outreach.
    • Risky or catch-all: review or throttle.
    • Undeliverable: suppress.
    • Disposable: suppress.
    • Role-based: review based on campaign fit.
  6. Import only qualified records

    • Push safe segments into your CRM.
    • Upload campaign-ready segments to your sequencer.
    • Keep suppressed records out of future sends.

Here is a simple comparison:

Workflow choiceWhat happensDeliverability impact
Import all Apify emails directlyEvery extracted address enters CRM or outreachHigh bounce risk and poor list trust
Verify after campaign uploadBad contacts may already trigger automationsRisk depends on tool safeguards
Verify before CRM importOnly qualified records enter core systemsCleaner data and fewer wasted credits
Verify before each send from old dataStale addresses get caught before reuseBetter long-term cold email list hygiene

For most teams, the best pattern is simple: Apify collects, verification filters, CRM stores, sequencer sends.

How to connect Apify output to Bounceable

You can connect Apify output to Bounceable by exporting the dataset, triggering a workflow after the actor run, verifying each address, and writing the result back to the lead record.

You have a few implementation options.

Option 1: Export and verify in bulk

Use this when you run lead collection in batches.

Typical flow:

  1. Run the Apify actor.
  2. Export the dataset as CSV, JSON, or via the Apify API.
  3. Extract unique email addresses.
  4. Send them to your verification workflow.
  5. Join the results back to the original dataset.
  6. Import only approved records.

This works well for weekly prospecting runs, one-off list builds, and manual QA.

Option 2: Trigger verification when an actor finishes

Use this when you want a more automated pipeline.

Typical flow:

  1. Apify actor completes.
  2. A webhook fires.
  3. Your serverless function, job worker, or automation platform fetches the dataset.
  4. Your workflow sends each email to Bounceable.
  5. The workflow stores verdicts and flags in your database, sheet, or CRM staging table.

You can implement the middle layer with your own code, or use tools like Zapier, Pipedream, or Apify integrations when they fit your stack.

Option 3: Verify before enrichment

Use this when enrichment costs matter.

If you pay to enrich each contact, verify first. There is no reason to spend enrichment credits on addresses that are malformed, disposable, or clearly undeliverable.

A minimal verification record might look like this:

{
  "email": "alex@example.com",
  "verdict": "risky",
  "risk_score": 72,
  "flags": {
    "catch_all": true,
    "disposable": false,
    "role": false,
    "free_provider": false,
    "typo_suggestion": null
  }
}

Then store those fields next to the lead:

{
  "email": "alex@example.com",
  "first_name": "Alex",
  "company": "Example Co",
  "source_url": "https://example.com/team",
  "verification_verdict": "risky",
  "verification_catch_all": true,
  "verification_disposable": false,
  "verification_checked_at": "2026-09-18"
}

An illustrative API workflow can be as small as this:

curl -X POST "$BOUNCEABLE_API_URL/verify" \
  -H "Authorization: Bearer $BOUNCEABLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"email":"alex@example.com"}'

Do not throw away source metadata. Keep the actor run ID, source URL, search query, or category. If someone asks why a contact entered your system, you need an answer.

How to interpret verification results for cold outreach

Send to deliverable addresses first, review risky records separately, and suppress addresses that show clear failure or abuse signals.

Verification results are not just labels. They are routing rules.

Deliverable

A deliverable result means the address passed the checks available at verification time.

For cold outreach:

  • Send these first.
  • Still personalize the message.
  • Still cap sending volume.
  • Still monitor bounces and complaints.
  • Still honor unsubscribes and suppression rules.

Deliverable does not mean “guaranteed inbox placement.” It means the address is a much better candidate than an unverified record.

Risky or unknown

Risky records need a slower path.

Reasons may include temporary mail server issues, limited SMTP responses, unusual domain behavior, or incomplete confirmation. Unknown results also happen when a mail server blocks verification attempts or does not provide enough information.

Use these rules:

  • Send at lower volume.
  • Prioritize high-fit accounts.
  • Add stronger manual review.
  • Use more personalized copy.
  • Avoid sending risky records during domain warmup.

If your campaign depends on high deliverability, hold risky records until your primary segment performs well.

Catch-all domains

Catch-all email detection identifies domains that appear to accept mail for any address.

This is common on some business domains. It creates uncertainty. The domain may accept the message, then silently discard it, route it to a catch-all inbox, or later bounce it.

For catch-all addresses:

  • Do not treat them as fully deliverable.
  • Segment them away from confirmed deliverable addresses.
  • Use lower volume.
  • Prefer contacts with strong source confidence.
  • Consider manual research for strategic accounts.

Catch-all is not automatically bad. It is a risk flag.

Undeliverable

Undeliverable addresses should not enter outreach.

Suppress them. Do not upload them “just to see.” That test costs reputation. If the address came from a valuable account, send it to research instead of a sequence.

Disposable

Disposable email detection catches throwaway domains and burner inboxes.

For cold outreach, suppress these by default. Disposable addresses rarely represent a stable business contact. They also add poor engagement and bounce risk.

Role-based addresses

Role-based email addresses need context.

Some are legitimate for certain campaigns. For example, press@ may fit a PR pitch. security@ may fit responsible disclosure. partnerships@ may fit channel outreach.

But for sales prospecting, generic aliases often perform poorly. They can reach shared inboxes, support queues, ticketing systems, or spam traps on old domains.

A practical rule:

  • Suppress irrelevant role accounts.
  • Review role accounts that match the campaign.
  • Do not mix them with person-level outreach metrics.

List hygiene rules for scraped leads

Good cold email list hygiene starts before verification and continues after every campaign.

If you only verify once, you will still accumulate bad data. People change jobs. Domains expire. Companies migrate mail providers. Catch-all behavior changes. Suppression signals grow over time.

Deduplicate before verification

Deduplication saves credits and prevents conflicting records.

Deduplicate in this order:

  1. Exact email match.
  2. Normalized email match.
  3. Same person + same company.
  4. Same domain + same role address.
  5. Same source URL, if the actor produced repeated rows.

Keep the richest record when duplicates conflict. For example, preserve the row with a title, LinkedIn URL, company domain, and source URL.

Minimize the data you store

Do not keep personal data just because the actor collected it.

Ask:

  • Do you need the field for routing, relevance, or compliance?
  • Will sales use it?
  • Does it improve personalization?
  • Can you delete it after qualification?

Minimization lowers operational risk. It also keeps your CRM cleaner.

Keep suppression lists

A suppression list is not optional for outbound.

Maintain suppression records for:

  • Hard bounces.
  • Unsubscribes.
  • Spam complaints.
  • Invalid addresses.
  • Disposable addresses.
  • Do-not-contact domains.
  • Customers or active opportunities, if relevant.
  • Competitors, partners, or restricted accounts.

Apply suppression before every import and every send. Do not rely only on the sequencer. Your CRM, enrichment process, and Apify workflow should also respect it.

Track verification age

Add a verified_at timestamp.

Use it to decide when to re-check records. For cold data, shorter windows are safer. If an Apify dataset is months old, assume some portion has decayed.

A simple policy:

Lead ageSuggested action
Verified in the last 30 daysUsually safe to use if no new suppression signal exists
30–90 days oldRe-verify before larger sends
90+ days oldRe-verify before any campaign upload
Unknown verification dateTreat as unverified

This is one of the easiest ways to reduce cold email bounces without changing your whole stack.

Deliverability safeguards before sending

Verification lowers bounce risk, but your sending setup and campaign behavior still decide most deliverability outcomes.

Before you send to Apify-sourced leads, check the basics.

Authenticate your mail

Set up and monitor:

  • SPF.
  • DKIM.
  • DMARC.
  • A custom tracking domain, if your sending tool supports it.
  • Proper alignment between your sending domain and mail provider.

Authentication does not make bad outreach good. It proves that your mail is authorized. Without it, you start at a disadvantage.

Warm sending volumes

Do not upload a freshly scraped list and send thousands of emails from a new domain.

Ramp volume slowly. Start with your best-fit, deliverable segment. Watch performance before adding riskier segments.

Separate list quality from infrastructure testing. If a new mailbox has problems, you want to know whether the cause is setup, volume, copy, targeting, or list quality.

Monitor the right signals

Bounce rate matters, but it is not the only signal.

Watch:

  • Hard bounce rate.
  • Soft bounce patterns.
  • Spam complaint rate.
  • Reply quality.
  • Positive reply rate.
  • Unsubscribe rate.
  • Provider-specific blocks.
  • Sudden drops in opens or replies.
  • Campaign performance by source and actor run.

If one Apify source produces worse outcomes than others, pause it. Do not keep feeding bad data into verification and hoping it improves.

For safer outbound email deliverability, start with verified deliverable contacts from your highest-fit accounts. Add riskier segments only after the campaign proves it can earn replies without excess bounces or complaints.

Re-verify older Apify datasets

Old scraped data is risky data.

Re-verify before reuse when:

  • The dataset is more than a few months old.
  • You changed campaign targets.
  • You imported the list from an old sheet.
  • You see bounce rates rising.
  • The source includes fast-changing roles, startups, agencies, contractors, or event lists.

Prospect email validation is not a one-time cleanup project. It is a control point in your outbound process.

If you use Apify for lead collection, make verification part of the pipeline, not a manual rescue step after bounces spike. Collect the data. Remove what you do not need. Verify what remains. Segment by risk. Then send only when the address, account, message, and legal basis all make sense.

Catch bad addresses before they bounce.
Verify your list free

Frequently asked questions

Keep reading