Website Contact & Tech Extractor: Emails, Phones
Pricing
from $2.00 / 1,000 domains
Website Contact & Tech Extractor: Emails, Phones
Crawl company websites and get emails, phone numbers (E.164), social profiles, the contact page, company name and tech stack (Shopify, WordPress, HubSpot, Stripe and more). Visits only each site's own pages, respects robots.txt, one result per domain.
Pricing
from $2.00 / 1,000 domains
Rating
0.0
(0)
Developer
leo xing
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
Website Contact & Tech Extractor: emails, phones, socials and tech stack
Give it a list of company websites and get back, for each one, every email address and phone number published on the site, its social profiles, the contact page, the company name and the technologies it runs on (Shopify, WordPress, Webflow, HubSpot, Google Analytics, Stripe, Intercom, Next.js and more: about 60 in all). One clean result per domain.
- Only the company's own website. The actor crawls pages on the site's own domain (including
subdomains like
shop.orblog.), never social networks or third-party sites. Social profile links are read from the site's pages, not visited. - Contact pages first. Links like Contact, About, Team, Impressum and Careers are fetched before anything else, so a 10-page budget is usually enough.
- Decodes what simple scrapers miss:
name [at] company [dot] com,jobs(at)company(dot)io, HTML-entity addresses and Cloudflare-protected emails. Image names likelogo@2x.png, template placeholders and error-tracker keys are dropped. - Phone numbers in E.164 (
+14165550123) when the country is clear from the domain, the page language or the company's structured data; otherwise the number as written. - Polite. Follows
robots.txt(including crawl delays), identifies itself honestly asWebsiteContactExtractor, and sends at most two requests at a time to any site.
Who uses this
- Sales and lead gen: turn a list of target accounts into emails, phone numbers and LinkedIn pages, and segment them by tech stack ("Shopify stores using Klaviyo", "sites without HubSpot").
- Agencies and SaaS vendors: find companies running a competitor's product or an outdated CMS.
- CRM enrichment: fill in missing contact fields and social links for existing accounts.
- Research and AI agents: a structured snapshot of what a company publishes about itself.
Input
| Field | Example | Notes |
|---|---|---|
| Websites or domains | stripe.com, https://www.acme.co.uk | One result per domain; duplicates merged |
| Max pages per domain | 10 | Includes the start page |
| Crawl depth | 2 | Clicks away from the start page |
| Visit contact-style pages first | true | Contact, About, Team, Impressum, Careers |
| Detect technologies | true | |
| Sites crawled in parallel | 5 | Each site still gets at most 2 requests at once |
Output (one dataset item per domain)
{"input": "maplewidgets.ca","domain": "maplewidgets.ca","url": "https://maplewidgets.ca/","companyName": "Maple Widgets","emails": ["info@maplewidgets.ca", "jobs@maplewidgets.ca", "press@maplewidgets.ca", "sales@maplewidgets.ca", "support@maplewidgets.ca"],"phones": [{ "raw": "+1-416-555-0199", "e164": "+14165550199" },{ "raw": "(416) 555-0123", "e164": "+14165550123" },{ "raw": "1-800-555-0177", "e164": "+18005550177" }],"socials": {"linkedin": ["https://linkedin.com/company/maple-widgets"],"twitter": ["https://x.com/maplewidgets"],"facebook": ["https://facebook.com/maplewidgets"],"instagram": ["https://instagram.com/maplewidgets"],"youtube": ["https://youtube.com/@maplewidgets"],"tiktok": ["https://tiktok.com/@maplewidgets"],"github": ["https://github.com/maple-widgets"]},"contactPageUrl": "https://maplewidgets.ca/contact/","technologies": [{ "name": "Google Analytics", "category": "Analytics" },{ "name": "WordPress", "category": "CMS" },{ "name": "HubSpot", "category": "Marketing automation" },{ "name": "Nginx", "category": "Web server" }],"pagesCrawled": 4,"crawledUrls": ["https://maplewidgets.ca/", "https://maplewidgets.ca/contact/", "https://maplewidgets.ca/about-us/", "https://maplewidgets.ca/products/"],"errors": [{ "url": "https://maplewidgets.ca/history/", "error": "HTTP 404" }],"scrapedAt": "2026-10-23T06:00:00.000Z"}
Emails on the company's own domain come first. Sites that can't be reached (or that block the
crawler) still get an item with pagesCrawled: 0 and the reason in errors; those aren't charged.
Pricing
Pay per event: charged per domain with at least one page fetched, whatever the number of pages. Sites that can't be reached cost nothing beyond Apify's actor start.
Limits
- Pages that build their content with JavaScript after loading (some single-page apps) may show fewer contacts, since the actor reads the HTML the server sends and doesn't run a browser.
- Sites behind bot protection (Cloudflare challenges and the like) may refuse the crawler; the
item then reports the HTTP status in
errors. - Phone numbers are found in
tel:links, structured data and number-shaped text (international+numbers and North American formats). Local formats without a country code are reported as written when the country can't be told. - Technology detection uses simple signatures and reports what the fetched pages show; it isn't an exhaustive audit.
Notes
The actor only reads pages that websites publish for anyone to see, and it stores nothing beyond the run's output. You're responsible for using contact data in line with the laws that apply to you (e.g. GDPR, CASL, CAN-SPAM).