ParseForge Scrapers

Website Contact & Leads Scraper - Pay Per Lead

parseforge/website-contact-leads-scraper

Lead generationAutomationBusiness

Read company websites for the contacts they publish today: emails, phones, address, socials. Charges only reachable leads. Export CSV, Excel, JSON, XML.

Run this scraper See the API call
Total runs
30
Bookmarked
0
Last modified
2 days ago

This scraper was last updated on .

What does the Website Contact & Leads Scraper - Pay Per Lead return?

ParseForge Banner

๐Ÿ“ฌ Website Contact & Leads Scraper

๐Ÿš€ Export any list of company websites into a mailable contact list in seconds. Paste domains, or describe the companies you want, and each one comes back as a flat 29-field row: email, phone, contact form, postal address, six social profiles and the company's own name and description, read from the live site at the moment you run it. Measured on 46 live sites: 72% published an email, 78% an email or a phone.

Most lead tools on this marketplace are not scrapers. They are search boxes on top of a contact database somebody bought, which is why their reviews say the same three things: the emails bounce, the data is two to three years old, and you get charged when nothing comes back.

This Actor does not have a database. It reads the company's own website, which is the one place where a contact is current by definition: if the site says info@acme.com today, that address is live today. And it only bills you for a company that actually published a way to reach it.

๐ŸŽฏ Target Audience ๐Ÿ’ก Primary Use Cases
Sales and outbound teams Turn a target-account list into a reachable contact list
Agencies and consultancies Build a local prospect list for a service area
Recruiters Reach employers directly instead of through job boards
Data teams Enrich an existing CRM with contacts that are live today

๐Ÿ“‹ What the Website Contact & Leads Scraper does

๐Ÿ’ก Why it matters: in a measured comparison on 2026-09-11, a leading paid leads Actor filled the email column on 3 of the 25 rows it charged for. Reading the companies' own websites filled it on 33 of 46. The difference is not a better database. It is not using a database at all.

  • ๐ŸŒ Works from a domain list. Paste acme.com or https://www.acme.com. Both are accepted, deduplicated, and normalised.
  • ๐Ÿ”Ž Or finds the websites for you. Describe the companies ("commercial roofing contractors phoenix az") and the Actor locates candidate company sites first. Directories, review sites and news outlets are filtered out.
  • ๐Ÿ“ง Finds the email even when it is hidden. Reads mailto: links, plain text, name [at] domain [dot] com obfuscation, and Cloudflare's encoded email protection, which returns nothing at all to a scraper that only reads visible text.
  • ๐Ÿ“ž Phones normalised. tel: links first, then the page text. +31 (0)73 631 5101 and +31 73 631 5101 are stored as one number, not two.
  • ๐Ÿ“จ Contact form detected when a company publishes a form instead of an address.
  • ๐Ÿ“ Postal address, city, region, postcode and country from the site's own schema.org data.
  • ๐Ÿ”— Six social profiles: LinkedIn, Facebook, Instagram, X, YouTube and TikTok.
  • ๐Ÿ’ธ You are only charged for a reachable company. A site that publishes no email and no phone is skipped and never billed. There is no start fee, so a run that finds nothing costs nothing.
  • ๐Ÿ” Clean data: one row per company, the same 29 columns every time, N/A instead of blank cells and error reserved for failures.

๐ŸŽฌ Full Demo (๐Ÿšง Coming soon)

A short walkthrough video is in production.

๐Ÿ“Š Output

Field Type Description
๐Ÿ–ผ imageUrl string The company's own share image or logo
๐Ÿ”— website string The URL that answered, after redirects
๐ŸŒ domain string Normalised domain, without www.
๐Ÿข companyName string From schema.org, og:site_name, or the page title
๐Ÿ“ description string The company's own description of itself
๐Ÿ“ง primaryEmail string The best address to write to
๐Ÿ”ข emailCount integer How many distinct addresses were found
๐Ÿ“ž primaryPhone string The first number published
๐Ÿ”ข phoneCount integer How many distinct numbers were found
๐Ÿ“จ contactFormUrl string Page carrying a contact form, when there is one
๐Ÿ“ address string Street, town, region and postcode as one line
๐Ÿ™ city string Town or city
๐Ÿ—บ region string State, province or region
๐Ÿ“ฎ postalCode string Postal or ZIP code
๐ŸŒ country string Country
๐Ÿ’ผ linkedinUrl string Company or personal LinkedIn page
๐Ÿ“˜ facebookUrl string Facebook page
๐Ÿ“ธ instagramUrl string Instagram profile
๐Ÿฆ twitterUrl string X / Twitter profile
โ–ถ๏ธ youtubeUrl string YouTube channel
๐ŸŽต tiktokUrl string TikTok profile
๐Ÿ”ข socialProfileCount integer How many of the six were found
๐Ÿ“ฌ hasContactChannel string Yes when an email or a phone was found
๐Ÿ”Ž sourceQuery string Which search term produced this company, if any
๐Ÿ“„ pagesCrawled integer How many pages were read for this row
๐Ÿ“ง emails array Every address found
๐Ÿ“ž phones array Every number found
๐Ÿ•’ scrapedAt string ISO timestamp of the read
โŒ error string Only on failure rows
Example rows
[
  {
    "imageUrl": "N/A",
    "website": "https://comfortmonster.com/",
    "domain": "comfortmonster.com",
    "companyName": "Comfort Monster Heating & Air",
    "description": "Comfort Monster Heating & Air is the leading HVAC service company in the Raleigh-Durham area. Experience our great service & affordable pricing!",
    "primaryEmail": "info@comfortmonster.com",
    "emailCount": 1,
    "primaryPhone": "9196667837",
    "phoneCount": 2,
    "contactFormUrl": "N/A",
    "address": "N/A",
    "city": "N/A",
    "region": "N/A",
    "postalCode": "N/A",
    "country": "N/A",
    "linkedinUrl": "N/A",
    "facebookUrl": "https://www.facebook.com/comfortmonster",
    "instagramUrl": "N/A",
    "twitterUrl": "https://twitter.com/comfortmonster",
    "youtubeUrl": "N/A",
    "tiktokUrl": "N/A",
    "socialProfileCount": 2,
    "hasContactChannel": "Yes",
    "sourceQuery": "N/A",
    "pagesCrawled": 1,
    "emails": [
      "info@comfortmonster.com"
    ],
    "phones": [
      "9196667837",
      "7049997467"
    ],
    "scrapedAt": "2026-09-16T19:19:03.207Z",
    "error": null
  },
  {
    "imageUrl": "https://brookstonelandscapes.com/wp-content/uploads/cropped-brookstone-leaf-icon-32x32.png",
    "website": "https://brookstonelandscapes.com/",
    "domain": "brookstonelandscapes.com",
    "companyName": "Brookstone Landscape & Design",
    "description": "Brookstone Landscape & Design is a leader in commercial landscaping services in the greater Seattle metroplex and King County, Washington.",
    "primaryEmail": "sales@brookstonelandscapes.com",
    "emailCount": 1,
    "primaryPhone": "8447181260",
    "phoneCount": 1,
    "contactFormUrl": "https://brookstonelandscapes.com/",
    "address": "N/A",
    "city": "N/A",
    "region": "N/A",
    "postalCode": "N/A",
    "country": "N/A",
    "linkedinUrl": "https://www.linkedin.com/company/brookstone-landscape-design",
    "facebookUrl": "https://www.facebook.com/brookstonelandscapedesign",
    "instagramUrl": "N/A",
    "twitterUrl": "N/A",
    "youtubeUrl": "N/A",
    "tiktokUrl": "N/A",
    "socialProfileCount": 2,
    "hasContactChannel": "Yes",
    "sourceQuery": "N/A",
    "pagesCrawled": 1,
    "emails": [
      "sales@brookstonelandscapes.com"
    ],
    "phones": [
      "8447181260"
    ],
    "scrapedAt": "2026-09-16T19:19:02.003Z",
    "error": null
  },
  {
    "imageUrl": "https://thebarn.de/cdn/shop/files/barn_logo_large_house_copy.png?crop=center&height=32&v=1718815603&width=32",
    "website": "https://thebarn.de/",
    "domain": "thebarn.de",
    "companyName": "THE BARN Coffee Roasters",
    "description": "THE BARN Coffee Roasters are one of the leading Specialty Coffee Roasters in Europe. We roast the best coffees available on this planet.",
    "primaryEmail": "webshop@thebarn.de",
    "emailCount": 1,
    "primaryPhone": "N/A",
    "phoneCount": 0,
    "contactFormUrl": "N/A",
    "address": "WattstraรŸe 10-13, Berlin, 13355",
    "city": "Berlin",
    "region": "N/A",
    "postalCode": "13355",
    "country": "Germany",
    "linkedinUrl": "N/A",
    "facebookUrl": "https://www.facebook.com/THEBARNBERLIN/",
    "instagramUrl": "https://www.instagram.com/thebarnberlin",
    "twitterUrl": "https://twitter.com/THEBARNBERLIN",
    "youtubeUrl": "https://www.youtube.com/@thebarncoffeeroastersberlin",
    "tiktokUrl": "N/A",
    "socialProfileCount": 4,
    "hasContactChannel": "Yes",
    "sourceQuery": "N/A",
    "pagesCrawled": 1,
    "emails": [
      "webshop@thebarn.de"
    ],
    "phones": [],
    "scrapedAt": "2026-09-16T19:19:01.916Z",
    "error": null
  }
]

โœจ Why choose this Actor

  • The contact is live, not remembered. Every field is read from the company's site during your run. There is no dump to go stale.
  • You are not charged for empty rows. No start fee, and a company with no published contact is skipped rather than billed.
  • Hidden addresses are found. Cloudflare-protected and [at]-obfuscated emails are decoded, which is most of the gap between a 40% and a 70% hit rate.
  • Nothing is invented. An address is only reported if the site published it. An earlier version guessed addresses from running text and produced landscaping@lees.g.landscaping, a valid-looking address that does not exist. That behaviour was removed, because a fabricated contact is worse than a missing one.
  • Honest ceilings. Measured on 46 live company sites: 87% answered, 72% published an email, 61% a phone, 78% at least one of the two. The README tells you that instead of promising 100%.

๐Ÿ“ˆ How it compares to alternatives

This Actor Database-backed leads Actors
Where the contact comes from The company's website, during your run A contact dump bought from a wholesaler
Age of the data Today "at least 2 to 3 years old", their reviews
Email column filled 72% measured on 46 sites 12% measured on a 25-row run
Charged when the run returns nothing โŒ never โœ… start fee still applies
Account permissions required None One leading Actor demands full read/write on your Apify account
Coverage outside the US Same as anywhere: any site in any country Reviews report France, Germany, Brazil and Spain as empty

๐Ÿš€ How to use

  1. Create a free Apify account with $5 in credit.
  2. Open the Website Contact & Leads Scraper.
  3. Paste your domains into Company websites, or type what you are looking for into Or find websites by search.
  4. Set Maximum leads. Leave Only return companies with a contact on unless you want a row for every site.
  5. Click Start and download the dataset as CSV, Excel, JSON or XML.

Free-plan runs return up to 10 leads as a preview. Upgrade your Apify plan to collect up to 1,000,000 leads per run.

๐Ÿ’ผ Business use cases

  • Target-account outreach. You know the 400 companies you want; this turns them into 400 reachable contacts.
  • Local service prospecting. Search a trade and a city, get the businesses in it with their emails.
  • CRM hygiene. Re-read the websites of accounts you already have and replace the addresses that have moved on.
  • Partner and supplier discovery. Find who to write to at companies in an adjacent market.
  • Event and list building. Assemble a contactable list for a launch, a survey or an invitation.

๐Ÿ”Œ Automating Website Contact & Leads Scraper

Schedule the Actor from the Apify Console and it reruns on its own. Point a webhook at your CRM and each finished run lands there. Company sites change addresses quietly, so a monthly re-read of your account list is a cheap way to keep it warm.

๐ŸŒŸ Beyond business use cases

  • Find the right address to complain to, instead of a support ticket form.
  • Collect the contact details of every club or charity in your town.
  • Check what your own website exposes to anyone who looks.

๐Ÿค– Ask an AI assistant about this scraper

Paste this into ChatGPT, Claude or any assistant with web access:

I want to build a contact list from a set of company websites. Look at https://apify.com/parseforge/website-contact-leads-scraper and tell me how to configure a run over 300 domains, what each of the 29 output fields means, and when a row is charged.

โ“ Frequently Asked Questions

๐ŸŒ What do I put in Company websites?

Domains or full URLs, one per line. acme.com, www.acme.com and https://acme.com/ are all read as the same company and returned once.

๐Ÿ”Ž Do I need a domain list?

No, but it gives cleaner results. Search discovery finds candidate company sites from a description, and filters out directories, review sites and news outlets, but a search engine will always return some of them, while a domain list returns exactly what you asked for.

๐Ÿ“ง How often is an email actually found?

Measured on 46 live company sites across six countries: 72% published an email, 61% a phone, 78% at least one. Small businesses are the strongest case; large corporations often publish only a form.

๐Ÿ” Does it find emails hidden behind Cloudflare?

Yes. Cloudflare replaces the address with an encoded blob that plain-text scrapers read as nothing. This Actor decodes it, along with the name [at] domain [dot] com style of obfuscation.

๐Ÿ’ธ When am I charged?

Only for a delivered row that carries an email or a phone. There is no start fee, and skipped or failed sites are never billed.

๐Ÿ“„ How many pages does it read per company?

One, when the home page already carries an email, which is the common case, because most small businesses put the address in the header or footer. Otherwise it follows the site's own contact, about or imprint links, up to the limit you set.

๐Ÿ›ก๏ธ Do I need a proxy?

The default datacenter proxy is already correct: company websites serve it normally, and its transfer is not billed, which is what keeps the price per lead down. Switch to residential only if a specific target refuses datacenter.

๐Ÿง‘โ€๐Ÿ’ผ Does it return named people, like a CEO?

No. It returns the company's published contact channels. A name scraped off an About page is a guess about who holds which role, and this Actor does not guess.

โœ… Are the emails verified as deliverable?

No, and be careful with any tool that claims otherwise. Mail servers do not reliably answer that question: a major provider returns the same "accepted" response for a real address and an invented one at the same domain. What is reported here is that the company published the address, which is a fact, not a prediction.

โš ๏ธ What do N/A values mean?

The company does not publish that value on its site. Blank cells never appear.

โฐ Can I run this on a schedule?

Yes. Schedule it in the Apify Console. Monthly is a sensible cadence for refreshing an account list.

๐Ÿ“„ What output formats are supported?

CSV, Excel, JSON, XML, JSONL and RSS, from the dataset tab or the API.

โŒ What happens when a site fails?

It is retried on a fresh proxy exit, and if it still fails it is counted as unreachable and not charged. A genuine error writes a row carrying only error, which is also never charged.

๐Ÿ”Œ Integrate with any app

The dataset is available through the Apify API the moment the run finishes. Use the run-sync-get-dataset-items endpoint for one-shot calls, webhooks to trigger downstream jobs, or the Make, Zapier, Airbyte and LangChain integrations listed on the Actor page.

Next step

Use these results as input for other ParseForge actors:

  • Lead Formatter: send the rows to clean names, check emails and write a personalized first line.
  • LinkedIn Company Scraper: paste the LinkedIn company URLs from this dataset to add industry, size and headquarters.
  • Crunchbase Scraper: add funding, investors and growth signals for each company.

๐Ÿ”— Recommended Actors


๐Ÿ’ก Pro Tip: browse the complete ParseForge collection.

๐Ÿ†˜ Need Help? Open our contact form with your run ID, your input and what you expected.

โš ๏ธ Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by any of the companies whose websites it reads. It collects only publicly available data. You are responsible for using the collected contact data in compliance with applicable law, including GDPR and other privacy and anti-spam rules in your jurisdiction.

What input does the Website Contact & Leads Scraper - Pay Per Lead accept?

FieldTypeWhat it doesDefault
websiteUrls array The company websites to read. Paste domains (acme.com) or full URLs, both work. This is the main input: point it at a list you already have and every row comes back with the contact details that site publishes today. ["https://www.hollandpackaging.nl","http
searchTerms array Describe the companies you want and the Actor finds candidate websites first, then reads them. Directories, review sites and news outlets are filtered out. Use this when you do not have a domain list yet; a domain list always gives cleaner results. []
maxItems integer Stop after this many leads. Free users get up to 10 results per run; paid users get up to 1,000,000. 10
requireContact boolean On by default. A company whose site publishes no email and no phone is skipped and never charged. Turn it off to get a row for every website, including the ones with nothing to show. true
resultsPerSearch integer How many company websites to take from each search term. Directories and review sites do not count toward this number. 10
maxPagesPerSite integer The home page is read first. If it already carries an email, no further page is requested. Otherwise the Actor follows the site's own contact, about or imprint links, up to this many pages. 3
concurrency integer How many company sites to read at once. Each site only ever gets one request at a time from this run; the parallelism is spread across different companies. Lower it if your list holds many sites hosted together and you want to be gentle with that host. 40
directSiteRequests boolean On by default: company websites are read straight from the run, which is faster, and a site that fails is tried once more through the proxy. Search always uses the proxy. Turn it off to send every request through the proxy below. true
proxyConfiguration object Datacenter proxy by default: company websites serve it normally, and its transfer is not billed, which is what keeps the price per lead down. Switch to residential only if a specific target refuses datacenter. {"useApifyProxy":true,"apifyProxyGroups"

How much does the Website Contact & Leads Scraper - Pay Per Lead cost?

from $2.00 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. Charged only for a company whose website published an email or a phone. $0.002

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

How do I call the Website Contact & Leads Scraper - Pay Per Lead API?

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~website-contact-leads-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "websiteUrls": [
      "https://www.hollandpackaging.nl",
      "https://www.comfortmonster.com",
      "https://www.gilbertsondavis.com"
    ],
    "searchTerms": [],
    "maxItems": 10,
    "requireContact": true,
    "resultsPerSearch": 10
  }'

What example inputs can I use?

Use these inputs to see how a run is configured.

input.json
{
  "websiteUrls": [
    "https://www.hollandpackaging.nl",
    "https://www.comfortmonster.com",
    "https://www.gilbertsondavis.com"
  ],
  "searchTerms": [],
  "maxItems": 10,
  "requireContact": true,
  "resultsPerSearch": 10
}

What do users say about the Website Contact & Leads Scraper - Pay Per Lead?

No reviews yet. Be the first.

How do I report an issue with the Website Contact & Leads Scraper - Pay Per Lead?

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

What related scrapers can I use?

Run Website Contact & Leads Scraper - Pay Per Lead on Apify All scrapers