Email โ๏ธ & Phone ๐ Extractor
Pricing
from $4.99 / 1,000 results
Email โ๏ธ & Phone ๐ Extractor
Pricing
from $4.99 / 1,000 results
Rating
0.0
(0)
Developer
Scraper Engine
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
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.164numbers 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
| Feature | Description |
|---|---|
| ๐ง Email extraction | From visible text and mailto: links |
| ๐ Phone extraction | tel: links + validated free-text numbers (E.164) |
| ๐ Social profiles | LinkedIn, X/Twitter, Instagram, Facebook, YouTube |
| ๐ช Deep crawling | Follow links to a configurable depth |
| ๐ฏ Link filtering | Regex patterns + same-domain restriction |
| ๐ผ๏ธ IFRAME probing | Reads contact details embedded in child frames |
| ๐ก๏ธ Auto proxy fallback | No proxy โ datacenter โ residential, automatically |
| ๐ญ JS rendering | Real-browser fallback for dynamic websites |
๐ฅ Input
| Field | Type | Description |
|---|---|---|
startUrls โ
| array | Website URLs to crawl. Bulk paste / file / Google Sheet supported. |
maxRequests | integer | Total maximum pages to load (default 20). |
maxDepth | integer | How deep to follow links (default 2). |
maxRequestsPerStartUrl | integer | Optional per-website page limit. |
maxConcurrency | integer | Pages fetched in parallel (default 5). |
requestDelay | number | Polite delay between requests, seconds (default 1.0). |
sameDomain | boolean | Only follow links on the same domain (default true). |
pseudoUrls | array | Regex link filters (default [".*"]). |
considerChildFrames | boolean | Probe IFRAMEs for contacts (default true). |
onlyEmails | boolean | Extract only emails (default false). |
onlyOneEmailPerDomain | boolean | Stop a site after the first email (default false). |
defaultPhoneRegion | string | Region for local-format phone numbers (default auto). |
usePlaywrightFallback | boolean | Re-render JS-heavy pages (default true). |
proxyConfiguration | object | Proxy 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"]}
| Field | Description |
|---|---|
depth | Link distance from the start URL (0 = start page). |
referrerUrl | The page this URL was discovered on. |
url / domain | The scraped page and its domain. |
image | The website favicon. |
emails | Email addresses found. |
phones | Validated phone numbers in +E.164 format. |
phonesUncertain | Plausible numbers that did not fully validate. |
linkedIns / twitters / instagrams / facebooks / youtubes | Social 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)
- Log in at console.apify.com โ Actors.
- Open Email & Phone Extractor.
- Paste your website URLs into ๐ Website URLs.
- Adjust crawl depth, page limit, and filters if needed.
- Click Start.
- Watch the run log stream live progress.
- Open the Output tab when the run finishes.
- 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
- Direct first โ requests go out with no proxy for maximum speed.
- Datacenter โ if a website blocks the request, every following request switches to a datacenter proxy.
- Residential โ if blocking continues, the run upgrades to residential proxies and retries up to 3 times per page.
- 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:
| Event | What it bills for |
|---|---|
apify-default-dataset-item | One 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.
โ๏ธ Legal & Fair Use
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.