Website Contact Extractor — Bulk Company Domains
Pricing
from $1.60 / 1,000 processed websites
Website Contact Extractor — Bulk Company Domains
Extract public company website emails, phone numbers and social links from bulk domain lists or a source dataset. One site result by default; $0.002 per site with a contact, free when none is found.
Pricing
from $1.60 / 1,000 processed websites
Rating
0.0
(0)
Developer
Yukai Lin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Website Contact Extractor for Bulk Company Domains
What does Website Contact Extractor do?
Paste a list of public company websites or domains, or select a dataset that contains their websites. The Actor reads each site and returns its best email, phone number and social profiles. The default sites output keeps one result per source website or row. It does not log in, crawl LinkedIn people, or discover companies from a directory.
How to use
- Replace the example entries in Company websites or domains with a few sites you want to check, one per line. Bare domains such as
hofbraeuhaus.dework. The prefilled example list containskatzsdelicatessen.comandhofbraeuhaus.de. - Alternatively, select a Source dataset ID containing a website column. Clear the prefilled domain list if you want to process only the dataset. The engine finds common fields such as
Website,website,urlanddomain; Dataset field can choose a different field. - Run the Actor and inspect the Dataset's Bulk company website contacts view. It shows
domain,bestEmail,primaryPhone,socialProfiles,chargedanderrorType. The full Dataset includes source row details and other contact fields.
Input example
For a spreadsheet or API workflow, rows also accepts objects such as:
{"domains": [],"rows": [{ "Name": "Hofbräuhaus München", "Website": "hofbraeuhaus.de", "City": "München" }]}
Output example
The Bulk company website contacts view shows domain, bestEmail, primaryPhone, socialProfiles, charged and errorType. Rows with a usable website keep their row identifier in the full result. The view is a concise projection; export the full Dataset to inspect all columns.
Pricing
The default requiredContact: "any" charges one site-processed event for a website with at least one email, phone number or social profile. The Free/Bronze event price in the engine is $0.002 per charged website; higher Apify tiers use the engine's tier prices. Each website is charged at most once even when more than one page is read. outputMode: "sites" is the default. Advanced JSON can select emailRows, but billing still stays per website.
A readable site with no qualifying contact has charged: false. Invalid lines, unreachable sites and sites whose home page is disallowed by robots.txt are free. With the default respectRobotsTxt: true, the crawler skips disallowed pages and returns errorType: "robots_disallowed" when its home page is disallowed. Recognized sign-in pages return a free login_required row. Requests identify the crawler; it does not log in, solve CAPTCHAs or bypass an explicit block. If robots.txt cannot be checked, see the full result and logs for the actual outcome rather than assuming a block was enforced.
Limitations
Domains can be combined with either rows or a dataset. rows and datasetId cannot be combined.
Company names and other advanced inputs
This version starts with findWebsitesForNames: false. A company-name line in the domain list therefore returns a free invalid_input row. If you explicitly set findWebsitesForNames: true in advanced JSON, the original engine can look up a company's website using its name plus city, address or phone. An unverified lookup stays free (company_not_found). Other valid engine inputs, including startUrls, remain available in advanced JSON; this version does not reject them at runtime.
Use only public company websites you are entitled to process. A LinkedIn profile or other social page is not treated as the company's website.
FAQ
Can I enter company names instead of domains? This version starts with findWebsitesForNames: false; a company-name line returns a free invalid_input row unless you explicitly enable the original engine's lookup in advanced JSON.