Company Contact & Profile Extractor: Emails, Phones, Socials avatar

Company Contact & Profile Extractor: Emails, Phones, Socials

Pricing

Pay per event

Go to Apify Store
Company Contact & Profile Extractor: Emails, Phones, Socials

Company Contact & Profile Extractor: Emails, Phones, Socials

Use this when you need a company's public contacts and profile from its website. $0.004/site, $0.012 if a browser is needed; empty or blocked sites free. Input: {"url":"apify.com"}. Output: name, description, logo, generic emails (info@, sales@), phones, address, socials. No named-person emails.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Isaac

Isaac

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 minutes ago

Last modified

Share

Company Contact & Profile Extractor API: Generic Emails, Phones, Socials, Address

Use this when you or your AI agent need a company's public contact details and profile from its own website. Give it a domain or a list of company websites. For each one it reads the homepage plus the most useful contact, imprint, about and support pages, and returns one clean JSON record:

  • 🏢 Company profile: name, legal name, description, logo, language, country, founding date, VAT/tax ID (when the site publishes them in schema.org)
  • 📧 Generic and role emails only: info@, sales@, support@, hello@, press@, careers@ and similar shared inboxes, with whether the domain accepts mail (MX check)
  • 📞 Phone numbers, validated and normalised to E.164 with line type (landline, mobile, toll-free)
  • 📍 Postal addresses from structured data
  • 🔗 Social profiles: LinkedIn company page, Facebook, Instagram, X, YouTube, TikTok, GitHub, Pinterest, Threads, Crunchbase
  • 📄 Contact page URL, so a human or agent can follow up
  • 💸 $0.004 per website with results. Unreachable, blocked, parked and empty sites are free. No start fee

Privacy by design: no personal emails. Addresses that look like a person (jane.smith@, jsmith@) are never returned; the Actor only counts them in personalEmailsOmitted. It does not read team or staff pages, and it only keeps LinkedIn company pages, not personal profiles. It respects robots.txt by default and reads at most 15 pages per site.

What can I use it for?

  • Enriching lead lists and CRMs from a column of domains (from Google Maps, directories or sign-up forms)
  • AI sales and research agents: "find a contact email and phone for acme.com.au"
  • Supplier and partner onboarding: get the official support and sales channels of a company
  • Data cleaning: fill in missing company names, logos, descriptions and social links
  • Pairing with our other tools: check the emails with the Bulk Email Verifier and phones with the Phone Number Validator

Input

FieldTypeDefaultDescription
urlstringOne website or domain (shortcut for agents)
urlsarrayWebsites or domains, up to 10,000 per run
maxPagesPerSiteinteger5Homepage plus contact, imprint, about and support pages (max 15)
useBrowserbooleanfalseRetry blocked or JavaScript-only sites in real Chrome ($0.012 per site; needs 1 GB memory)
defaultCountrystringautoISO code for reading local phone numbers; guessed from the domain if empty
includeOtherDomainEmailsbooleanfalseAlso keep role addresses on other domains (e.g. bookings@gmail.com)
respectRobotsTxtbooleantrueSkip pages the site asks bots not to read
concurrencyinteger8Websites read in parallel
{
"urls": ["apify.com", "atlassian.com", "smh.com.au"],
"maxPagesPerSite": 5
}

Output

{
"input": "https://apify.com/",
"url": "https://apify.com/",
"domain": "apify.com",
"companyName": "Apify",
"legalName": "Apify Technologies s.r.o.",
"description": "Thousands of tools to automate your business. Get real-time web data, track competitors, generate leads, and integrate your apps and AI agents.",
"logo": "https://apify.com/img/apify-logo/apify-symbol-200x200.svg",
"language": "en",
"country": "CZ",
"emails": [
{"email": "hello@apify.com", "role": "hello", "domain": "apify.com", "sameDomainAsSite": true,
"foundOn": "https://apify.com/contact", "source": "mailto", "domainAcceptsMail": true},
{"email": "support@apify.com", "role": "support", "domain": "apify.com", "sameDomainAsSite": true,
"foundOn": "https://apify.com/", "source": "schema.org", "domainAcceptsMail": true}
],
"phones": [],
"addresses": [{"street": "Na Příkopě 959/27", "locality": "Prague", "region": null, "postalCode": "11000", "country": "CZ",
"full": "Na Příkopě 959/27, Prague, 11000, CZ"}],
"socialProfiles": {"linkedin": "http://linkedin.com/company/apify", "x": "https://x.com/apify", "github": "https://github.com/apify",
"youtube": "https://www.youtube.com/@Apify", "tiktok": "https://www.tiktok.com/@apifytech"},
"contactPageUrl": "https://apify.com/contact",
"foundingDate": null, "vatId": null, "taxId": null,
"personalEmailsOmitted": 0,
"pagesScanned": ["https://apify.com/", "https://apify.com/contact", "https://apify.com/about"],
"mode": "http", "httpStatus": 200, "error": null
}

Phones look like {"phone": "+61293744000", "international": "+61 2 9374 4000", "country": "AU", "lineType": "landline", "source": "tel-link", "mentions": 3}. source tells you how reliable a value is: mailto / tel-link and schema.org come straight from the site's markup, page-text was read from visible text.

Sites that return nothing get an error note such as "Site blocks automated requests (bot challenge or 403). Enable \"useBrowser\" to try a real browser. Not charged."

Pricing

EventPriceWhen
Website extracted$0.004A site read over plain HTTP returned at least one contact or profile detail
Website extracted with a real browser$0.012Only with useBrowser, when the site needed Chrome. Charged instead of the HTTP event, never both

A site counts as "with results" when we return at least one generic email, phone, address, social profile or contact page, or both a company name and a description. Unreachable, blocked, parked and empty sites are free. Set Maximum cost per run and the Actor stops cleanly at your limit.

Use it from an AI agent

Call it through the Apify MCP server with https://mcp.apify.com/?tools=poised_beardlichen/company-contact-extractor. One site usually takes 3–10 seconds. It also works with Make, Zapier, n8n and Google Sheets through Apify integrations.

For long lists, start the run and fetch results afterwards:

  1. POST https://api.apify.com/v2/acts/poised_beardlichen~company-contact-extractor/runs with {"urls": [...]}
  2. Poll GET https://api.apify.com/v2/actor-runs/<runId>?waitForFinish=60 until SUCCEEDED
  3. GET https://api.apify.com/v2/datasets/<defaultDatasetId>/items?clean=true

FAQ

Why didn't it find an email? Many companies publish only a contact form, or load their contact details with JavaScript. Try useBrowser, and check contactPageUrl. Large retailers and government sites often block automated visitors entirely; those are marked and not charged.

Why are personal emails excluded? Named-person addresses are personal data under GDPR and the Australian Privacy Act, and collecting them for outreach needs a lawful basis you probably can't show. Shared role inboxes are published precisely so people can contact the business.

Is this legal? It reads publicly available pages of the company's own website, identifies itself in its user agent, respects robots.txt, limits pages per site and never logs in. You are responsible for how you use the data, including anti-spam laws (CAN-SPAM, the Australian Spam Act, PECR) when you send email.

Does it use proxies? No. Sites behind strong bot protection may stay blocked even in browser mode; those are free.

Other tools by us

Support

Wrong or missing details for a site? Open an issue on the Issues tab with the domain.