Website Contact Scraper – Verified Emails, Phones & LinkedIn avatar

Website Contact Scraper – Verified Emails, Phones & LinkedIn

Pricing

from $3.00 / 1,000 website with contacts

Go to Apify Store
Website Contact Scraper – Verified Emails, Phones & LinkedIn

Website Contact Scraper – Verified Emails, Phones & LinkedIn

Find emails, phone numbers and LinkedIn and social media profiles from any list of company websites. MX-verified emails for B2B lead generation. JavaScript and protected sites handled automatically. Export to CSV or Excel. Pay only for websites where contacts are found.

Pricing

from $3.00 / 1,000 website with contacts

Rating

0.0

(0)

Developer

Arishma

Arishma

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Turn a list of company websites into clean, verified contact data: emails (classified and MX-checked), phone numbers, LinkedIn and other social profiles, plus the company's name, description, address and logo. You only pay for websites where contacts were actually found.

Built for sales teams, agencies and data enrichment workflows that need reliable company contacts, not a pile of junk addresses.

What you get

  • Emails, cleaned. Finds addresses in links, page text, structured data and common obfuscations (name [at] company [dot] com, Cloudflare-protected emails), and filters out the junk other tools return (image file names, tracking addresses, placeholder emails like name@example.com).
  • Email verification (MX check). Confirms each email's domain has working mail servers and detects the provider (Google Workspace, Microsoft 365, Zoho, …). This tells you whether the domain can receive email at all. It does not prove a specific mailbox exists. mxStatus says why: mx, a_record (no MX, but the domain accepts mail on its address record), null_mx / no_mail / nxdomain (cannot receive mail), or timeout / dns_error (could not be determined, mxValid is null).
  • Email classification. Each email is tagged role (info@, sales@, support@) or personal, on-domain or not, free provider (gmail.com…) or disposable.
  • A smart primary email per company, preferring verified on-domain contact addresses.
  • Only the company's own contacts. Addresses of other companies that merely appear in page text (product screenshots, testimonials, partner lists) are left out; an off-domain address is kept when the website links it as a contact.
  • Phones from click-to-call links and structured data, normalized to digits (+ and country code for international numbers). The same number written in different formats is listed once, best-sourced number first.
  • Social profiles: LinkedIn, X/Twitter, Facebook, Instagram, YouTube, TikTok and GitHub. Share buttons and post links are excluded. linkedinUrl, twitterUrl, … hold the company's own profile (from structured data, a matching handle or a site-wide link) and stay empty rather than show an employee's account; every profile found is in socials.
  • Company profile: name, description, address, logo.
  • Smart crawling. The homepage plus the pages most likely to hold contacts (contact, about, team, imprint/impressum, legal), in many languages. It never wanders off-site.
  • Fast. Websites are processed in parallel and each result is saved as soon as its website is done; one slow or unreachable website never holds up the others.

How to use it

  1. Paste websites or domains, one per line (stripe.com, https://www.acme.com).
  2. Optionally set the pages per website (default 10) and turn on One row per email for CRM imports.
  3. Run, then export to CSV, Excel or JSON, or connect it to your CRM via Apify integrations.

Output example

{
"status": "ok",
"domain": "acme.com",
"url": "https://acme.com/",
"redirectedTo": null,
"companyName": "Acme Inc",
"description": "Acme makes widgets for modern teams.",
"address": "1 Main St, San Francisco, US",
"primaryEmail": "hello@acme.com",
"primaryEmailMxValid": true,
"emailProvider": "Google Workspace",
"emails": [
{ "email": "hello@acme.com", "type": "role", "onWebsiteDomain": true, "isFreeProvider": false,
"isDisposable": false, "mxValid": true, "mxProvider": "Google Workspace", "sources": ["https://acme.com/contact"] },
{ "email": "jane@acme.com", "type": "personal", "onWebsiteDomain": true, "isFreeProvider": false,
"isDisposable": false, "mxValid": true, "mxProvider": "Google Workspace", "sources": ["https://acme.com/team"] }
],
"primaryPhone": "+14155550100",
"linkedinUrl": "https://linkedin.com/company/acme",
"twitterUrl": "https://x.com/acmeinc",
"pagesCrawled": 6,
"scrapedAt": "2026-10-08T12:00:00+00:00"
}

status is ok (contacts found), no_contacts (website crawled, nothing published) or failed (with an error explaining why).

redirectedTo is set when the website itself redirects to another domain (a rebrand, an acquisition, a parent company): the contacts then belong to that domain. Check it if a result looks like a different company — you may have meant another website.

The run's OUTPUT record summarizes the run, including timing (total seconds, median and slowest website).

Pricing

Pay-per-event, with platform usage (compute and proxy) included. See the Pricing tab for current prices on your plan.

EventWhen it is charged
Website with contacts (domain-result)Each website where emails, phones or social profiles were found
Protected website (protected-page)Extra charge for each heavily protected website that needs additional processing
  • Websites with no contacts and failed websites are never charged the base price.
  • Protected websites are detected and handled automatically. Most business websites are not protected: in our tests about 1 in 20 were. You can turn off Process protected websites to skip them and never pay this charge.

FAQ

Does the MX check guarantee delivery? No tool can guarantee that without sending an email. The MX check confirms the domain accepts mail, which catches dead and mistyped domains. Combined with on-domain filtering, it removes most bad addresses.

How fast is it? Websites are processed in parallel, so a batch takes about as long as its slowest website, not the sum of all of them; protected websites that need extra handling take longer. Speed depends on the websites themselves. maxConcurrency (websites in parallel), pageTimeoutSecs and siteTimeoutSecs let you trade speed for completeness. More memory (4 GB) lets more websites that need a full browser run in parallel.

Why no emails for a website? Many companies only publish a contact form. Those websites are returned as no_contacts and are not charged.

Is this legal? The actor only collects contact details that companies publish on their own websites. If you process personal data (for example a named employee's email), you are responsible for complying with GDPR, CAN-SPAM and similar laws, including having a lawful basis for outreach.