Email โœ‰๏ธ & Phone ๐Ÿ“ž Extractor avatar

Email โœ‰๏ธ & Phone ๐Ÿ“ž Extractor

Pricing

from $4.99 / 1,000 results

Go to Apify Store
Email โœ‰๏ธ & Phone ๐Ÿ“ž Extractor

Email โœ‰๏ธ & Phone ๐Ÿ“ž Extractor

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Scraper Engine

Scraper Engine

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

โœ‰๏ธ Email & Phone Extractor ๐Ÿ“ž โ€” Contact Details Scraper

Extract emails, phone numbers, and social media profiles from any website. Point this actor at one website or thousands โ€” it crawls each one, follows the links you allow, and pulls out every public contact detail it can find. Built for lead generation, sales prospecting, and data enrichment.


๐Ÿ’ก Why Choose This Actor?

  • ๐Ÿง  Smart proxy escalation โ€” starts with no proxy for speed, and only escalates to a datacenter and then residential proxy if a website blocks it. You pay for heavy proxies only when you actually need them.
  • ๐ŸŽญ JavaScript fallback โ€” pages that need a browser are automatically re-rendered with a real Chromium browser, so dynamic contact details are never missed.
  • โ˜Ž๏ธ Real phone validation โ€” numbers are verified against actual numbering plans (libphonenumber), so you get clean +E.164 numbers instead of random digit soup.
  • ๐Ÿ“ก Live results โ€” every page is saved to the dataset the moment it is scraped, and the run log streams real-time progress.
  • ๐ŸŒ Social profiles too โ€” LinkedIn, X/Twitter, Instagram, Facebook & YouTube.
  • ๐Ÿ“ฅ Bulk input โ€” paste a list, upload a file, or link a Google Sheet.

โœจ Key Features

FeatureDescription
๐Ÿ“ง Email extractionFrom visible text and mailto: links
๐Ÿ“ž Phone extractiontel: links + validated free-text numbers (E.164)
๐ŸŒ Social profilesLinkedIn, X/Twitter, Instagram, Facebook, YouTube
๐Ÿชœ Deep crawlingFollow links to a configurable depth
๐ŸŽฏ Link filteringRegex patterns + same-domain restriction
๐Ÿ–ผ๏ธ IFRAME probingReads contact details embedded in child frames
๐Ÿ›ก๏ธ Auto proxy fallbackNo proxy โ†’ datacenter โ†’ residential, automatically
๐ŸŽญ JS renderingReal-browser fallback for dynamic websites

๐Ÿ“ฅ Input

FieldTypeDescription
startUrls โœ…arrayWebsite URLs to crawl. Bulk paste / file / Google Sheet supported.
maxRequestsintegerTotal maximum pages to load (default 20).
maxDepthintegerHow deep to follow links (default 2).
maxRequestsPerStartUrlintegerOptional per-website page limit.
maxConcurrencyintegerPages fetched in parallel (default 5).
requestDelaynumberPolite delay between requests, seconds (default 1.0).
sameDomainbooleanOnly follow links on the same domain (default true).
pseudoUrlsarrayRegex link filters (default [".*"]).
considerChildFramesbooleanProbe IFRAMEs for contacts (default true).
onlyEmailsbooleanExtract only emails (default false).
onlyOneEmailPerDomainbooleanStop a site after the first email (default false).
defaultPhoneRegionstringRegion for local-format phone numbers (default auto).
usePlaywrightFallbackbooleanRe-render JS-heavy pages (default true).
proxyConfigurationobjectProxy settings โ€” disabled by default.

Example input

{
"startUrls": [{ "url": "https://apify.com/contact" }],
"maxRequests": 20,
"maxDepth": 2,
"sameDomain": true,
"onlyEmails": false,
"proxyConfiguration": { "useApifyProxy": false }
}

๐Ÿ“ค Output

Each crawled page becomes one dataset record:

{
"depth": 0,
"referrerUrl": null,
"url": "https://apify.com/contact",
"domain": "apify.com",
"image": "https://apify.com/favicon.ico",
"emails": ["hello@apify.com"],
"phones": [],
"phonesUncertain": [],
"linkedIns": ["https://www.linkedin.com/company/apify/"],
"twitters": ["https://x.com/apify"],
"instagrams": [],
"facebooks": [],
"youtubes": ["https://www.youtube.com/apify"]
}
FieldDescription
depthLink distance from the start URL (0 = start page).
referrerUrlThe page this URL was discovered on.
url / domainThe scraped page and its domain.
imageThe website favicon.
emailsEmail addresses found.
phonesValidated phone numbers in +E.164 format.
phonesUncertainPlausible numbers that did not fully validate.
linkedIns / twitters / instagrams / facebooks / youtubesSocial profile URLs.

The Output tab shows the data split into handy views: ๐Ÿ—‚๏ธ Contact Overview, ๐Ÿ“ง Emails, ๐Ÿ“ž Phone Numbers, and ๐ŸŒ Social Profiles.


๐Ÿš€ How to Use (Apify Console)

  1. Log in at console.apify.com โ†’ Actors.
  2. Open Email & Phone Extractor.
  3. Paste your website URLs into ๐Ÿ”— Website URLs.
  4. Adjust crawl depth, page limit, and filters if needed.
  5. Click Start.
  6. Watch the run log stream live progress.
  7. Open the Output tab when the run finishes.
  8. Export to JSON / CSV / Excel.

๐Ÿค– Use via API

curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startUrls": [{ "url": "https://apify.com/contact" }],
"maxRequests": 20,
"maxDepth": 2
}'

๐Ÿ›ก๏ธ How Proxy Fallback Works

  1. Direct first โ€” requests go out with no proxy for maximum speed.
  2. Datacenter โ€” if a website blocks the request, every following request switches to a datacenter proxy.
  3. Residential โ€” if blocking continues, the run upgrades to residential proxies and retries up to 3 times per page.
  4. The escalation is sticky โ€” once upgraded, it stays upgraded.

Every proxy switch is logged clearly so you always know what happened.


๐ŸŽฏ Best Use Cases

  • ๐Ÿงฒ Lead generation and sales prospecting lists
  • ๐Ÿ—‚๏ธ CRM data enrichment
  • ๐Ÿ”Ž Market & competitor research
  • ๐Ÿข Building agency / supplier contact directories

๐Ÿ’ณ Pricing

This actor uses the pay-per-event model and bills a single event:

EventWhat it bills for
apify-default-dataset-itemOne scraped page saved to the dataset

You are billed per page of results. Results are saved live, page by page, so if a run reaches your charge limit the platform stops it automatically and everything collected so far is kept.


โ“ Frequently Asked Questions

Does it find every email on a website? It finds every publicly visible email in page text, mailto: links, and IFRAMEs, up to the crawl depth and page limit you set. Increase maxDepth and maxRequests to dig deeper.

Why are some numbers in phonesUncertain? Those are plausible-looking numbers that did not fully pass numbering-plan validation. Set defaultPhoneRegion to the country of the websites you scrape to validate more local-format numbers.

A website blocked the actor โ€” what now? Nothing to do โ€” the actor automatically escalates to datacenter and then residential proxies. You can also pre-select a proxy in the input.

Can I scrape thousands of websites at once? Yes. Paste them all, upload a file, or link a Google Sheet in the ๐Ÿ”— Website URLs field.


This actor collects only publicly available information. You are responsible for using the data in compliance with applicable laws (GDPR, CCPA, anti-spam regulations) and the target websites' terms of service.


๐Ÿ†˜ Support & Feedback

Found a bug or have a feature request? Open an issue on the actor's Issues tab in the Apify Console โ€” feedback is always welcome.