Website Contact Extractor - Emails, Phones & Social Links avatar

Website Contact Extractor - Emails, Phones & Social Links

Pricing

from $4.00 / 1,000 contact results

Go to Apify Store
Website Contact Extractor - Emails, Phones & Social Links

Website Contact Extractor - Emails, Phones & Social Links

Bulk-extract contact details from any list of websites: email addresses, phone numbers, and social profiles (LinkedIn, X, Facebook, Instagram, YouTube). Crawls homepage + contact/about pages. Clean JSON/CSV for lead lists & enrichment.

Pricing

from $4.00 / 1,000 contact results

Rating

0.0

(0)

Developer

Santhej Kallada

Santhej Kallada

Maintained by Community

Actor stats

2

Bookmarked

17

Total users

2

Monthly active users

15 days ago

Last modified

Share

Website Contact Extractor — Emails, Phones & Social Links in Bulk

Feed it a list of websites, get back every public contact: email addresses, phone numbers and social profiles (LinkedIn, X, Facebook, Instagram, YouTube, WhatsApp, GitHub, TikTok) — one clean, CRM-ready row per site, with optional email verification.

What does Website Contact Extractor do?

For every website you give it, the Actor visits the homepage and then the site's own contact, about, team and careers pages (up to 5 pages per site), and collects the contact details published there. It decodes obfuscated emails such as name [at] domain [dot] com and HTML-entity-encoded addresses, labels role inboxes like info@, sales@ and press@, keeps only numbers that are actually formatted as phone numbers, and can check each email's deliverability.

Every website you submit gets a row back — sites where nothing was found are returned with empty fields and are not charged.

What you get per website

FieldDescription
urlThe start URL that was crawled
domainThe site's domain, without www.
emailsEvery email address found (mailto links, page text, de-obfuscated)
email_countNumber of emails found
email_detailsPer email: role (e.g. sales), is_role, and — when verification ran — status, confidence (0–100), is_disposable, is_webmail (free mailbox such as Gmail)
phonesPhone numbers from tel: links and phone-formatted numbers on the page, de-duplicated
socialsProfile links keyed by network: linkedin, twitter, facebook, instagram, youtube, whatsapp, github, tiktok
pages_crawledHow many pages of the site were read (0 means the site could not be fetched)

Use cases

  • Lead enrichment — turn a list of company domains into contact records.
  • Cold outreach — build email and social outreach lists from prospect websites.
  • Partnership and influencer outreach — collect brands' Instagram, TikTok and YouTube handles in one pass.
  • CRM hygiene — backfill missing emails, phones and social profiles.
  • AI agents — structured contacts for n8n, Make, Zapier and MCP-based workflows.

How to use

  1. Paste your Websites — domains (stripe.com) or full URLs, one per line, up to 1,000 per run.
  2. Set Max pages per site (1–5). The homepage counts as one page.
  3. Leave Verify emails on to get deliverability data, or turn it off for a faster, cheaper run.
  4. If a site blocks the default datacenter proxy (its row comes back with pages_crawled: 0), re-run it with Use residential proxy on.
  5. Click Start, then export JSON, CSV or Excel, or pull the dataset via the Apify API.

Example input

{
"startUrls": ["https://www.siegemedia.com", "https://www.brooklinen.com", "stripe.com"],
"maxPagesPerDomain": 3,
"verifyEmails": true,
"useResidentialProxy": false
}

Input configuration

FieldTypeDefaultDescription
startUrlsarray of strings— (required)Websites to extract contacts from, as domains or URLs. 1–1,000 per run.
maxPagesPerDomaininteger3Pages to read per site (homepage + contact/about/team/careers pages), 1–5.
verifyEmailsbooleantrueCheck each found email's deliverability and add status, confidence, disposable and webmail flags.
useResidentialProxybooleanfalseUse residential IPs for sites that block datacenter traffic. Slower.

Example output

A real row (one per website):

{
"url": "https://www.siegemedia.com/",
"domain": "siegemedia.com",
"emails": ["hello@siegemedia.com"],
"email_details": [
{
"email": "hello@siegemedia.com",
"role": "hello",
"is_role": true,
"status": null,
"confidence": null,
"is_disposable": null,
"is_webmail": null
}
],
"phones": ["5127102510"],
"socials": {
"linkedin": "https://www.linkedin.com/company/siege-media",
"twitter": "https://twitter.com/siegemedia",
"facebook": "https://www.facebook.com/siege.media.inc",
"instagram": "https://www.instagram.com/siege_media"
},
"email_count": 1,
"pages_crawled": 3
}

When verification runs, status is one of:

statusMeaning
validThe mailbox exists and accepts mail
invalidMail would not be delivered: no such mailbox, a disabled mailbox, a full inbox, or a spam-trap address
accept_allThe domain accepts every address, so this particular mailbox cannot be confirmed
disposableA throwaway/temporary email domain
unknownThe mail server gave no conclusive answer — not charged

confidence is a 0–100 deliverability score. In the row above they are null because verification did not return a result for this email, so it was not charged.

A run summary (sites, with_contacts, total_emails, emails_verified) is saved to the key-value store as OUTPUT.

How much does it cost to extract contacts from websites?

Pay per event. No monthly fee.

EventPriceWhen it is charged
Actor start$0.001Once per run in which at least one website could be fetched
Contact result$0.005Per website where at least one email, phone or social profile was found
Email verified$0.002Per email with a conclusive verification result (only when Verify emails is on). unknown results and checks that could not run are free

Websites where nothing is found cost nothing beyond the start fee, an email whose verification fails or comes back unknown is not charged, and if none of your websites can be fetched at all the run ends as failed and nothing is charged.

  • 100 websites, 70 with contacts, verification off: $0.001 + 70 × $0.005 = $0.351.
  • The same run with verification on and 120 emails verified: $0.351 + 120 × $0.002 = $0.591.

FAQ

Does it crawl the whole site? No. It reads the homepage plus up to four linked contact, about, team or careers pages (5 pages in total at most), which is where contact details live, and keeps runs fast and cheap.

Why is a site's row empty with pages_crawled: 0? The site refused the request, usually because it blocks datacenter IPs. Turn on Use residential proxy and run that site again. Rows with no contacts are not charged.

How are emails verified? Each address is checked against its own domain's mail servers: MX records, a live mailbox check, and catch-all and disposable-domain detection. No email is ever sent to the address.

Why are some phone numbers missing? Numbers are only kept when they are clickable tel: links or are formatted like a phone number (spaces, dashes, dots or brackets, or a leading +). Bare digit runs on a page are almost always prices, product IDs or timestamps, so they are deliberately skipped.

What if email verification is unavailable? Emails are still returned, with status and confidence set to null, and verification is not charged. The run log says so.

Can I use it with AI agents and automation tools? Yes. The output is clean JSON, ready for n8n, Make, Zapier and MCP-based agents.


Tags: contact extractor, email extractor, email scraper, phone scraper, social media links, lead generation, website crawler, b2b leads, contact finder, lead enrichment.