Company Contact & Enrichment: Emails, Phones, Socials, LEI avatar

Company Contact & Enrichment: Emails, Phones, Socials, LEI

Pricing

from $3.00 / 1,000 domain enricheds

Go to Apify Store
Company Contact & Enrichment: Emails, Phones, Socials, LEI

Company Contact & Enrichment: Emails, Phones, Socials, LEI

AI-agent & MCP ready: turn company domains into one JSON record each with business emails (MX-checked), E.164 phones, social profiles, LEI and SEC CIK, each with confidence and source URL. Domains with no contacts are free.

Pricing

from $3.00 / 1,000 domain enricheds

Rating

0.0

(0)

Developer

Clearfeed Labs

Clearfeed Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Share

Company Contact & Enrichment: emails, phones, socials and LEI from company websites

Paste a list of company domains and get one clean row per company:

  • business emails, with role addresses like info@ and sales@ by default
  • phone numbers in E.164 format with a country
  • company social profiles
  • schema.org company data, address and description
  • tech hints
  • GLEIF LEI and SEC CIK and ticker matches

Every value comes with a confidence score and the page it was found on. Domains with no contacts are free, and incremental mode bills only companies whose contacts changed.

For AI agents & MCP

Tool summary: given company domains, read each company's own website (up to 6 pages, robots.txt respected) and return one JSON record of its published business contacts.

When to call it: "Get contact info for these companies", "Enrich this lead list", "What's the LEI for this company?"

Input (key fields):

  • domains (array, required)
  • maxPagesPerDomain, checkMx, matchGleif, matchSec, defaultCountry, maxDomains
  • suppressionList; includePersonalEmails and includePersonalLinkedIn are off by default

Output (one item per domain):

  • status (ok, no_contacts, needs_js, blocked, ...), companyName, legalName, country
  • primaryEmail, primaryPhone (E.164)
  • emails[], each with type, mx and confidence
  • phones[], each with e164, country and confidence
  • linkedin, x, facebook, instagram, youtube, tiktok, github
  • lei, secCik, secTickers
  • thirdPartyEmails (other organizations' addresses, kept separate)

Every value carries its source URL.

Call it through Apify's hosted MCP server: connect your MCP client to https://mcp.apify.com?tools=clearfeedlabs/company-contact-enrichment (Apify's server; you'll need your own Apify account). Then:

call-actor { "actor": "clearfeedlabs/company-contact-enrichment",
"input": { "domains": ["n26.com", "stripe.com"], "checkMx": true, "matchGleif": true } }

call-actor returns the run and its datasetId. Fetch the records with get-dataset-items { "datasetId": "<id>" }. You're billed only for domains where contacts are found.

Why switch

This ActorTypical contact scrapers
Output shapeOne row per company, deduplicatedOften one row per page, so merging is a separate step
Billing unitPer company with contacts found; empty domains freeOften per page crawled
Re-checksIncremental: unchanged companies not billedRe-bill every run
PhonesE.164 plus country; fictional, repeated and sequential numbers droppedRaw strings, "uncertain" lists
EmailsImage, placeholder and tracking addresses dropped; role vs personal labelled; MX checked via DNSRaw matches
Trust signalsConfidence and source URL for every valueUsually a list of pages visited
Company dataName, legal name, address, description, logo, founding date, VAT ID from the site's own structured dataUsually only via paid lead databases
IdentifiersGLEIF LEI and SEC CIK/ticker, attached only on unambiguous matchesRare
Privacy defaultsPersonal-name emails and personal LinkedIn profiles withheld unless you opt in; suppression listEverything found is returned

What you get

FieldExample
domain, status, changeStatusacme.com, ok, new
companyName, legalName, countryAcme, Acme Inc., US
primaryEmail, emailsJoinedsales@acme.com, sales@acme.com; support@acme.com
primaryPhone, phonesJoined+14155552671
linkedin, x, facebook, instagram, youtube, tiktok, githubcompany profile URLs
addressText1 Main St, Austin, TX, 78701, US
lei, secCik, secTickersLEI code, 10-digit CIK, tickers
emails[]{ email, type: role/personal, onCompanyDomain, freemail, mx, confidence, sources[] }
phones[]{ e164, country, raw, confidence, sources[] }
socials{}per network: { url, confidence, sources[] }
teche.g. WordPress, HubSpot, Google Tag Manager
personalEmailsWithheldcount of personal-name addresses not returned

There are three dataset views:

  • Companies, which is flat and CSV-ready
  • Details, with confidence and sources
  • Per-domain status

The run also saves RUN_SUMMARY and DOMAIN_STATUS records.

Status values

StatusMeaning
okContacts found
no_contactsThe site was read but publishes no contacts. Not billed.
robots_disallowedThe site's robots.txt asks crawlers not to visit, so we didn't
blocked / captchaThe site refused access or showed a challenge. We stop and don't retry around it.
needs_jsThe site only shows content with JavaScript. This version reads HTML only.
unreachableDNS, TLS, timeout or a server error
suppressedThe domain is on your suppression list
not_processedYour run spending limit was reached. Not billed; re-run to continue.

Ready-made examples you can run as-is or copy with your own domains:

How to use

Enrich a CRM export

{ "domains": ["acme.com", "globex.com, Globex Corporation", "https://initech.com/about"] }

Weekly watchlist, billed only for changes

{ "domains": ["acme.com", "globex.com"], "incremental": true, "stateKey": "q4-accounts" }

US public-company matching is on by default (SEC CIK and tickers). Turn it off with "matchSec": false.

Honor opt-outs

{ "domains": ["acme.com"], "suppressionList": ["ceo@acme.com", "do-not-contact.com"] }

Use cases:

  • enriching CRM accounts
  • filling out lead lists from the ATS Jobs Feed or Form D filings
  • vendor due diligence (LEI)
  • agency prospecting
  • research datasets

Pricing

Pay per event:

  • One event per company returned with at least one contact. Companies with no contacts, and blocked or unreachable sites, are free.
  • Duplicate inputs are merged, so each company is billed once per run.
  • In incremental mode, unchanged companies are free.
  • Set a maximum cost per run in Apify Console, and the Actor stops cleanly when it's reached.

See the Pricing tab for the current price.

API and AI agents

Call the Actor from the Apify API, the JavaScript or Python clients, or the Apify MCP server. With MCP, an agent can say "Get contact details for these 20 domains and list the ones with a sales@ address." Read results from the overview view.

Responsible use and compliance

  • We only collect what companies publish on their own public websites. That means public pages only, no logins, and a small number of pages per site.
  • We respect each site's crawling preferences. We follow robots.txt, identify ourselves honestly, keep the request rate low, and stop when a site refuses access.
  • We use no proxies and no CAPTCHA solving. We don't circumvent sites' anti-harvesting measures.
  • Privacy-first defaults. Only role addresses are returned unless you opt in. We support a suppression list. Mail domains are checked by DNS only, and we never probe mail servers.
  • You're responsible for how you use the data. Business contact data can still be personal data under the GDPR, the CCPA and similar laws. You need a lawful basis, and you must give notice where required and honor opt-out and deletion requests. Follow CAN-SPAM, CASL, PECR and other anti-spam rules, and respect the terms of the websites you process.
  • This README is not legal advice.
  • We're not affiliated with GLEIF, the U.S. SEC, or any website processed.
  • Registry matches are only attached when the name match is unambiguous. They are provided as-is.

FAQ

Is it legal to scrape contact details? Collecting publicly published business contact data is generally lower risk than collecting personal data, but the rules depend on your country and use. That's why personal-name data is off by default. Ask your own counsel.

Why are some fields empty? Many sites publish only a contact form. The row still shows the socials, address and company data the site publishes.

Why was a domain skipped? Check status and statusReason. For example, the site's robots.txt asked crawlers to stay out.


Built and maintained by Clearfeed Labs: clean, compliant data feeds. Questions or bugs? Use the Issues tab.