Website Contact & Tech Extractor: Emails, Phones avatar

Website Contact & Tech Extractor: Emails, Phones

Pricing

from $2.00 / 1,000 domains

Go to Apify Store
Website Contact & Tech Extractor: Emails, Phones

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

leo xing

Maintained by Community

Actor 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. or blog.), 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 like logo@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 as WebsiteContactExtractor, 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

FieldExampleNotes
Websites or domainsstripe.com, https://www.acme.co.ukOne result per domain; duplicates merged
Max pages per domain10Includes the start page
Crawl depth2Clicks away from the start page
Visit contact-style pages firsttrueContact, About, Team, Impressum, Careers
Detect technologiestrue
Sites crawled in parallel5Each 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).