the enrichment engine for lists you already have: paste any URLs — websites, Linktrees, bio pages — and get back every email, phone and social link published across up to 4 pages per site — with a real browser for sites that need one.
Every team accumulates URL lists with no contact data attached: conference exhibitors, directory exports, portfolio collections, partner prospects, the "companies to reach out to someday" spreadsheet. Visiting each site by hand to find an email takes minutes per row.
This Actor does that visit for you — over fast HTTP, or in a real Chromium browser when the site only shows its content with JavaScript: homepage first, then up to three more pages (contact, about, team), extracting every email, phone number — US and international formats — and social profile it finds. If the URL turns out to be a Linktree, Beacons or any of 15+ bio-link aggregators, it follows through to the real website automatically.
At $0.006 per website where emails are found — sites with no email cost nothing — and roughly 10-20 seconds per site, a 500-row list that would take a week by hand comes back enriched in well under an hour for $3 at most.
URLs in, contacts out. runs on Apify, $0.006 per website where emails are found.
urls input takes any list — company websites, bio links, mixed sources. toggles: scrapeEmails, scrapePhones, scrapeSocials, and followLinkPages (auto-resolves Linktree-style aggregators). maxConcurrency defaults to 3. batches of 100-500 URLs are the recommended sweet spot.documented extraction rates from the Actor — honest numbers, not promises. sites that publish no contacts return none.
business websites · 60-80% yield contact data — the best case, since businesses want to be reached.
SaaS companies · 50-70% — contact info often lives on about or legal pages, which the 4-page crawl covers.
portfolio sites · 50-70% — freelancers and studios usually publish an email.
e-commerce stores · 40-60% — support emails and phones, often in footers.
bio-link pages · 30-40% on the link page itself — which is why the Actor follows through to the real site when followLinkPages is on.
phone formats · US and international formats are both recognized.
socials covered · Facebook, Instagram, Twitter/X, LinkedIn, YouTube, TikTok, Pinterest and Threads.
| inputUrl | emails | phones | pages |
|---|---|---|---|
| https://pelicanpipeworks.com | [email protected], [email protected] | (813) 555-0142 | 3 |
| https://linktr.ee/brickellbarbell | [email protected] | — | 2 |
[
{
"inputUrl": "https://pelicanpipeworks.com",
"resolvedUrl": "https://www.pelicanpipeworks.com/",
"emails": [
"[email protected]",
"[email protected]"
],
"phones": [
"(813) 555-0142"
],
"socialLinks": {
"facebook": "https://facebook.com/pelicanpipeworks",
"instagram": "https://instagram.com/pelicanpipeworks"
},
"pagesScraped": 3,
"isLinkPage": false,
"scrapedAt": "2026-09-28T14:05:12.000Z"
},
{
"inputUrl": "https://linktr.ee/brickellbarbell",
"resolvedUrl": "https://brickellbarbell.co/",
"emails": [
"[email protected]"
],
"phones": [],
"socialLinks": {
"instagram": "https://instagram.com/brickellbarbell",
"tiktok": "https://tiktok.com/@brickellbarbell"
},
"pagesScraped": 2,
"isLinkPage": true,
"scrapedAt": "2026-09-28T14:05:12.000Z"
}
]one row per website where an email was found — and only those rows are charged. URLs with no email, dead domains and pages that fail to load are skipped and cost nothing. the Linktree row was followed through to the real site.
a sales team inherits 400 company URLs from a trade-show sponsor list — no emails, no phones. one run later (at most $2.40, under an hour) the list has contacts on the majority of business sites, each row tagged with how many pages were crawled and whether the URL was really a bio page. sites that publish no email simply don't come back — and aren't charged.
run frequency: per list · 400 URLs ≤ $2.40
creator outreach lists are full of linktr.ee and beacons.ai URLs that contain no contacts themselves. with followLinkPages on, the Actor hops through to each creator's actual website and extracts there — the difference between a 30-40% yield on the link page and the 50-70% of a real portfolio site.
run frequency: per campaign · resolution included in the $0.006
any catalog scraper that outputs websites chains into this one: Google Maps leads whose first crawl missed an email, Facebook pages with a site but no published contact, TikTok creators with personal domains. an n8n flow feeds the URLs in and the Email Verifier cleans what comes out.
run frequency: continuous via API · $0.006 per site with emails
honest comparison against the two ways teams actually do this today.
| data-runner.dev | manual research | email-pattern guessing | |
|---|---|---|---|
| Source of truth | the website itself, rendered | the website itself | name@domain templates |
| Bounce risk | low — published addresses | low | high — guesses bounce |
| JS-rendered contacts | ✓ real browser when needed | ✓ human browser | ✗ |
| Bio-link resolution | ✓ automatic, 15+ services | manual clicking | ✗ |
| Speed | 10-20s per URL, parallel | minutes per URL | instant but unreliable |
| Phones + socials too | ✓ | ✓ if noted down | ✗ emails only |
| Cost at 500 URLs | $3 | days of someone's time | free, paid for in bounces |
comparing tools rather than methods? see website email extractors compared — Outscraper, Hunter, Snov.io, PhantomBuster and Mailmeteor, with prices and sources.
no subscription. no minimums. you only pay for websites where emails are found.
every URL gets the full treatment: real-browser rendering when needed, up to 4 pages crawled, aggregator resolution, emails + phones + socials. you are charged only when it finds an email — a site with no email, a dead domain or a failed page costs $0. example: a 500-URL list costs $3 at most.
new to Apify? you get $5 in free credits on signup — that's ~830 websites with emails before you spend a cent.
run on Apify →how it works, what it costs, what's legal, and how it handles edge cases.
The homepage plus up to three internal pages chosen automatically — contact, about and team pages are the priority targets. That 4-page budget covers where the overwhelming majority of published contact data lives without burning time on blog archives. Each result reports pagesCrawled so you can see what happened.
With followLinkPages enabled, the Actor detects 17+ aggregator services (Linktree, Beacons, bio.link, linkin.bio, solo.to, stan.store, campsite.bio, carrd.co and more), follows through to the actual website behind the link page, and extracts there. The output marks wasLinkAggregator and includes the resolvedUrl so you keep both.
Depends on the list. Documented rates: business websites 60-80%, SaaS and portfolio sites 50-70%, e-commerce 40-60%, raw bio-link pages 30-40% before resolution. A mixed B2B list typically lands in the middle. Rows that return nothing usually mean the site genuinely publishes no contact info.
All three, each behind its own toggle: emails, phones (US and international formats), and social links across Facebook, Instagram, Twitter/X, LinkedIn, YouTube, TikTok, Pinterest and Threads.
10-20 seconds per URL on average, processed in parallel (maxConcurrency, default 3). A 500-URL batch typically completes well within the hour. The recommended batch size is 100-500 URLs per run for efficiency, with no hard cap documented.
No. You are charged $0.006 only for each website where at least one email was found — that site gets one row in your dataset, however many emails it has. Websites with no email, dead domains and pages that fail to load are not written and cost nothing. So a 500-URL run costs at most $3, and less for every site that publishes no email.
Yes. Every site is fetched over plain HTTP first, and pages that come back nearly empty because their content loads with JavaScript are reopened in a real Chromium browser (Playwright), so contact info injected client-side renders before extraction runs. Sites that work without JavaScript skip the browser and finish faster.
$0.006 per site with emails, $0 for the rest. 4 pages per site, bio-links resolved. your list, enriched.