Business Website Contact Enricher
Pricing
from $8.00 / 1,000 website results
Business Website Contact Enricher
Extract published business emails, phones, social links and source evidence from websites. Multilingual contact discovery, role labels and optional MX checks.
Pricing
from $8.00 / 1,000 website results
Rating
0.0
(0)
Developer
Marco Schwartz
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
Turn public business websites into company contact records with published emails, phone numbers, social profile links, and the source page for each email and phone. No login, proxy subscription, AI service, or additional API key is required.
Useful for enriching a company list, researching potential suppliers, or preparing CRM imports from contacts a business publishes on its own website.
Quick start
- Enter business website URLs in the input form.
- Choose a page limit: the homepage plus up to four relevant contact, about, or legal pages.
- Run the Actor and open Website contacts in the Output tab.
- Export JSON, CSV, or Excel. Nested evidence arrays are most convenient in JSON.
{"websiteUrls": ["https://www.scrapingbee.com/"],"maxPagesPerWebsite": 5,"checkMx": false}
URLs are normalized to their homepages and deduplicated by domain, including www aliases. Up to 100 website URLs can be supplied per run. Relevant contact links are discovered in several languages, including English, French, German, Spanish, Italian and Portuguese. By default, email results are limited to the website's domain and common public mail providers such as Gmail. Enable Include external-domain emails to also return other published email domains.
Output and evidence
One successful or partial website check produces one record:
| Field | Meaning |
|---|---|
| websiteUrl, domain | Requested website and domain |
| companyName | Published site name or page title; not a verified legal entity |
| emails, phones | Deduplicated contacts published in visible HTML or mailto/tel links |
| socialUrls | Links to public social profiles; sharing links are excluded |
| emailDetails | Email, heuristic role label, domainRelation, sourceUrls and optional MX status |
| phoneDetails | Phone number and sourceUrls |
| contactPageUrl | First successfully scanned contact page, if found |
| sourceUrls, pagesScanned | Evidence pages and successful page count |
| status | ok or partial; partial means one or more attempted pages failed or were blocked |
| errors | Per-page errors or robots exclusions |
| checkedAt | UTC observation time |
Role labels include sales, support, careers, press, billing, general and other. They describe the email prefix, not the recipient's confirmed job. domainRelation is same_website, public_mail_provider or external; it is a domain comparison, not proof of ownership. Phone values retain published formatting rather than guessing a country code. No contacts found is a valid result for an accessible website.
Optional MX checking reports mx_present, no_mx, unknown or not_checked. It checks email-domain mail-exchange records only. It does not verify mailbox existence, deliverability, ownership, or permission to contact someone. A no_mx result does not prove an email is undeliverable; SMTP can also fall back to address records.
RUN_SUMMARY in the run's key-value store lists coverage, failed websites, partial results and spending-limit status. Completely inaccessible sites are reported there and do not produce paid contact records. If every website fails, the run fails with diagnostic information.
Pricing
$8 per 1,000 emitted website records ($0.008 each). The same Actor event price applies across Apify plans. A record can contain several emails, phones and evidence pages. Partial accessible results and accessible websites with no contacts are billable; completely failed websites are not.
Use Maximum total charge to bound the number of paid results. The Actor checks the limit before beginning each website and stops emitting when it is reached. Ordinary Apify platform usage charges may apply according to your plan. The Store pricing panel is authoritative.
Coverage and limitations
- Reads public HTML and published mailto/tel links. It does not run a browser or execute JavaScript, solve challenges, log in, or bypass access restrictions.
- robots.txt is checked before scanning each origin. If robots rules cannot be checked, or access is explicitly denied, that origin is skipped.
- Page limits bound scan depth; this is not a whole-site crawler. Homepage plus discovered relevant pages are attempted; PDFs and binary documents are excluded.
- Obfuscated emails, JavaScript-only contacts and image-based phone numbers may not be detected. International phone text extraction is conservative; explicit tel links are preferred.
- Source URLs show where a contact was found. Published data can be stale or belong to a third party mentioned on the page.
- Public network targets only, with redirect and DNS checks. Local networks, URL credentials and nonstandard ports are rejected.
- Response size, request timeout and retry limits prevent oversized or indefinitely hanging pages.
Privacy and support
Results remain in the running user's Apify storage. No data is sent to an external AI or analytics provider. The Actor does not send emails or submit forms. Use the Actor's Issues tab for support and include a public website URL and run ID; do not include credentials.
Local development
Use Node.js 22 or newer: npm ci, npm test, then npm start with Apify local INPUT.json. Dependencies are pinned in package-lock.json. Actor input, output and dataset schemas are in .actor. Release scripts read APIFY_TOKEN from the environment; no token is embedded in the source.