Business Contact Extractor
Pricing
from $4.00 / 1,000 processed websites
Business Contact Extractor
Extract public business emails, phone numbers, addresses, contact pages, and social profiles from company websites.
Pricing
from $4.00 / 1,000 processed websites
Rating
0.0
(0)
Developer
Justin Grizzle
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 days ago
Last modified
Categories
Share
Extract public business contacts from company websites
Business Contact Extractor visits company websites and produces one clean, consolidated contact record for each site. Give it a list of URLs and it finds public business email addresses, phone numbers, postal addresses, contact pages, and major social profiles.
It is designed for lightweight prospect research, CRM enrichment, supplier research, and directory maintenance. Runs are intentionally bounded by page and depth limits, so costs and execution time stay predictable. Results are stored in an Apify dataset and can be downloaded as JSON, CSV, Excel, XML, or RSS, accessed through the API, scheduled, or sent to another service with an integration.
What it extracts
- Public email addresses, including
mailto:links and Cloudflare-protected addresses - Valid phone numbers normalized to international E.164 format
- Postal addresses from page markup and Schema.org JSON-LD
- LinkedIn, Facebook, Instagram, X/Twitter, YouTube, TikTok, and Pinterest profiles
- Contact, about, support, team, company, location, and imprint pages
- Business names from structured data and site metadata
- Source pages, crawl counts, status, and recoverable errors for auditing
How to use Business Contact Extractor
- Add one or more company website URLs under Company website URLs.
- Leave the default 15-page, two-level crawl for a balanced first run.
- Set Default phone country to the two-letter country code most relevant to the sites. This is only used for local-format numbers without a country prefix.
- Click Start.
- Open the dataset to review or export the consolidated results.
The Actor prioritizes likely contact pages before ordinary internal links. It stays on the exact input hostname unless Include subdomains is enabled. Duplicate values are removed automatically.
Example input
{"startUrls": [{ "url": "https://apify.com/contact" }],"maxPagesPerWebsite": 10,"maxDepth": 1,"includeSubdomains": false,"defaultCountry": "CZ"}
Example result
{"inputUrl": "https://apify.com/contact","websiteUrl": "https://apify.com/","businessName": "Apify","emails": ["hello@apify.com", "support@apify.com"],"phoneNumbers": [],"addresses": ["Na Příkopě 959/27, Prague, 11000, CZ"],"contactPages": ["https://apify.com/about","https://apify.com/contact","https://apify.com/contact-sales"],"socialProfiles": {"linkedin": "https://www.linkedin.com/company/apify","x": "https://x.com/apify","youtube": "https://www.youtube.com/apify","tiktok": "https://www.tiktok.com/@apifytech"},"pagesCrawled": 10,"status": "SUCCEEDED"}
This example was produced by a live Apify Cloud run. Website content changes over time, so future results may differ.
How much does business contact extraction cost?
This Actor uses Apify platform compute. Actual cost depends mainly on the number and speed of websites, the page limit, retries, and proxy selection. Begin with the defaults and a small URL sample, then use the completed run's platform usage to estimate larger batches. Lowering Maximum pages per website is the simplest way to reduce both runtime and cost. Most public company sites do not require a paid proxy.
Accuracy and limitations
The Actor extracts contact details present in server-rendered HTML and structured data. It does not guess addresses, buy third-party data, bypass access controls, submit forms, or log in. Sites that render all content only after JavaScript execution may return limited results. A NO_CONTACTS_FOUND result means no supported public contact detail was found within the configured crawl limits; it does not prove that the business has no contact information.
Use the data responsibly. Follow applicable privacy, marketing, anti-spam, database, and website terms in your jurisdiction. Only collect and use information you have a lawful purpose to process.
Run locally
Requires Node.js 20 or newer.
npm installnpm testnpm start
Local input is read from storage/key_value_stores/default/INPUT.json. Deploy with the Apify CLI using apify push, then complete the Actor's Store listing, pricing, support, and publication settings in Apify Console.
Support
For reproducible issues, include the input URL, run ID, relevant settings, and expected result. Do not post private credentials or non-public personal data in support requests.