Company Enrichment — Emails, Phones, Socials & Tech Stack avatar

Company Enrichment — Emails, Phones, Socials & Tech Stack

Pricing

from $9.00 / 1,000 results

Go to Apify Store
Company Enrichment — Emails, Phones, Socials & Tech Stack

Company Enrichment — Emails, Phones, Socials & Tech Stack

Turns a list of company websites into structured company profiles: contact emails, phone numbers, social profiles, address and the technologies each site runs on.

Pricing

from $9.00 / 1,000 results

Rating

0.0

(0)

Developer

Maged

Maged

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Turn a plain list of company websites into a full contact database. Paste the domains you already have and get back emails, phone numbers, social profiles, company details and the technology each business runs on — one clean row per fact, ready for your CRM.

What does Company Enrichment do?

Sales and research teams always have the same starting point: a list of company domains, and nothing else. This Actor fills in the rest. For every website it returns:

  • Email addresses, classified by type (role inbox, personal, and more)
  • Phone numbers, validated and normalized to international format with their country
  • Social profiles — LinkedIn, Facebook, Instagram, X, YouTube, TikTok, GitHub, Crunchbase and more
  • Company details — name, description, postal address and logo
  • Technology stack — the ecommerce platform, analytics, chat, payment and marketing tools the site uses

It is built for speed and reliability, handling modern JavaScript-heavy and bot-protected sites automatically. No API keys, no per-record subscription. A dozen companies are enriched in well under a minute, and thousands run comfortably in one job.

Running on the Apify platform gives you the REST API, scheduling, webhooks and integrations with Google Sheets, Slack, Zapier and Make, so enrichment can sit directly inside your sales workflow.

Why use Company Enrichment?

  • Fill in a cold list — you exported 2,000 domains and need somebody to contact at each one.
  • Enrich your CRM — refresh contact details on accounts that have gone stale.
  • Qualify leads before outreach — the tech stack tells you whether a prospect is even a fit. Selling a Shopify app? Filter for the ones running Shopify.
  • Build partner and supplier lists — collect contact routes for hundreds of firms at once.
  • Competitive research — see which analytics, chat and marketing tools a market segment has standardized on.
  • Recruiting and outreach — find the careers inbox and the company's social presence in one pass.

Commercial enrichment services charge a monthly subscription and meter every record. Here you pay per result, with no floor.

How to use Company Enrichment

  1. Open the Actor in Apify Console and click Try for free.
  2. Paste your domains into Company Websitesacme.com, www.acme.com or a full URL all work.
  3. Optionally list result types in Exclude Result Types to drop what you don't need — those are skipped entirely, saving time and cost.
  4. Click Start.
  5. Read the results in the Output tab.
  6. Export to JSON, CSV, Excel, or pull the results straight from the API.

Input

FieldTypeDefaultDescription
domainsarrayCompany websites to enrich. Bare domains, www addresses and full URLs are all normalized.
maxPagesPerSiteinteger4How many pages to read per company. Higher finds more contacts and takes longer.
excludeTypesarray[]Result types to leave out: company, description, address, logo, email, phone, social, technology. Excluded types are never looked for, so the run is faster and you are not billed for them. Excluding all of them keeps the company row so the output is never empty.
companyEmailsOnlybooleantrueReturn only addresses on the company's own domain. Off = also collect other addresses found on the site (may include unrelated ones).
maxResultsPerTypeinteger25Cap on emails, phones, socials and technologies per company. 0 = unlimited.
allowBrowserbooleantrueAutomatically re-read difficult (JavaScript-only or protected) sites for best coverage. Leave on unless you want the cheapest possible run.
proxyConfigurationobjectdisabledOptional; only needed for unusually large lists.
{
"domains": ["acme.com", "example.com", "www.example.org"],
"maxPagesPerSite": 4,
"excludeTypes": ["technology"],
"companyEmailsOnly": true
}

Output

Every result — a company, an email, a phone, a social profile, a technology, or an error — is the same seven-column row, so the dataset drops straight into a spreadsheet, a database table, or a CRM import with no reshaping. Group by domain to reassemble a company. You can download the dataset in JSON, CSV, Excel or HTML.

ColumnWhat it holds
domainThe company the row belongs to. Group by this.
entityTypecompany, description, address, logo, email, phone, social, technology, or error.
valueThe datum itself — the email address, the phone number, the company name, the technology, the social handle.
labelA qualifier for the row's type: email category, phone line type, or the address country.
channelHow to reach a phone (call, whatsapp, telegram, viber, fax, hotline, …) or which network a social profile is on (linkedin, instagram, …).
urlThe canonical link for the row — the profile URL, the source page, or the website.
errorSet only on error rows; null everywhere else.
[
{ "domain": "acme.com", "entityType": "company", "value": "Acme Widgets Ltd",
"label": "4 pages", "channel": null, "url": "https://acme.com/", "error": null },
{ "domain": "acme.com", "entityType": "address",
"value": "12 Example Street, Springfield, United States",
"label": "United States", "channel": null, "url": "https://acme.com/", "error": null },
{ "domain": "acme.com", "entityType": "email", "value": "hello@acme.com",
"label": "role", "channel": null, "url": "https://acme.com/contact", "error": null },
{ "domain": "acme.com", "entityType": "phone", "value": "+15551234567",
"label": "mobile", "channel": "whatsapp", "url": "https://acme.com/contact", "error": null },
{ "domain": "acme.com", "entityType": "social", "value": "acme",
"label": null, "channel": "linkedin", "url": "https://linkedin.com/company/acme",
"error": null },
{ "domain": "acme.com", "entityType": "technology", "value": "Shopify",
"label": null, "channel": null, "url": "https://acme.com/", "error": null }
]

What label and channel carry per row type

entityTypevaluelabelchannel
companycompany namepages read
descriptionthe description
addressfull postal addresscountry
logologo image URL
emailthe addressrole, person, personal_freemail, third_party, other
phoneinternational numberline type: mobile, landline, toll_free, voip, fax, …call, whatsapp, telegram, viber, fax, hotline (comma-separated if several)
socialhandlenetwork: linkedin, facebook, x, …
technologythe technology
errorthe input, if any— (reason is in error)

WhatsApp numbers surface as a phone row with whatsapp in channel. The same number found more than once is returned as a single row with all its channels merged.

Dataset view

  • Results — the single seven-column table. Filter or pivot on entityType in your own tool after export.

How much does it cost to enrich a company list?

You are charged per result. The company row plus every email, phone, social profile and technology is one result.

Typical yield is 8–12 results per company, so:

JobApproximate results
100 companies, everything on~1,000
1,000 companies, everything on~10,000
1,000 companies, contacts only (socials and tech excluded)~3,000

Levers to control the bill:

  • excludeTypes — drop whole result types you don't need (e.g. ["technology","social"], usually the highest-volume rows). Excluded types aren't fetched, so they cost neither time nor money.
  • maxResultsPerType — cap the long tail of emails, phones, socials and technologies per company.
  • maxPagesPerSite: 1 — the quickest, cheapest pass, though it finds fewer contacts.

Tips

  • The default page depth is the sweet spot. A single page misses most contact details; a few pages per site is where the emails and phones actually turn up.
  • Filter the tech rows to qualify leads — "runs Shopify", "runs HubSpot" is often a better buying signal than company size.
  • Small and mid-sized businesses publish the most. Large enterprises route everything through contact forms; smaller firms print their details openly, and they are usually the ones worth emailing.
  • Leave allowBrowser on for best coverage; switch it off only if you want the absolute cheapest run and don't mind that some difficult sites return less.
  • Turn the proxy on only if a batch of sites returns errors; it isn't needed for typical lists.

FAQ

How many pages per company are read? As many as you set in Pages to Crawl per Company, always on the company's own domain. More pages means more contacts and a longer run.

Why does one company return fewer results than another? Every website publishes a different amount. Some list a full address, phones and every social network; others expose only a contact form. The Actor returns whatever a company actually makes public.

Are the phone numbers real? Every number is validated before it is returned, so order references, IDs and postcodes never leak in as phone results.

Is the technology detection accurate? Technologies are detected from a site's technical fingerprints, not from its marketing copy — a site that merely mentions a tool in text is not reported as running it.

Is scraping company websites legal? It collects only publicly published business information — the same details a visitor sees on a contact page. Business contact data is still personal data in some jurisdictions: follow GDPR, CAN-SPAM and local marketing rules, honour opt-outs, and do not use the output for spam.

Support

Need another field, another network, or a technology added? Open an issue on the Actor's Issues tab. Custom enrichment pipelines are available on request.