Company Enrichment by Domain – LinkedIn URL, Socials, Tech avatar

Company Enrichment by Domain – LinkedIn URL, Socials, Tech

Pricing

from $1.00 / 1,000 company enricheds

Go to Apify Store
Company Enrichment by Domain – LinkedIn URL, Socials, Tech

Company Enrichment by Domain – LinkedIn URL, Socials, Tech

Enrich company domains: name, legal name, country, founded year, LinkedIn URL & socials, public emails/phones, tech stack, email provider (MX), SPF/DMARC and domain age. Read from the company's own website, DNS and RDAP. Dead and parked domains are free.

Pricing

from $1.00 / 1,000 company enricheds

Rating

0.0

(0)

Developer

Cemal Atakli

Cemal Atakli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Company enrichment API for a list of domains. For each domain you get the company name, legal name, description, logo, country, city, founded year, LinkedIn company URL and other social profiles, public emails and phones, tech stack (CMS, ecommerce platform, analytics, CRM), email provider from MX (Google Workspace / Microsoft 365...), SPF/DMARC and domain age. Use it for lead-list building, CRM cleanup and firmographic data enrichment. Every value is read from the company's own website, public DNS and the public RDAP registry, and comes back as one clean row per company. Dead, parked and blocked domains are free.

  • Data from the source, not a stale database. The Actor reads the homepage and the most useful pages (about, contact, imprint/impressum, legal) right now. Each firmographic field states where it came from (legalNameSource, foundedYearSource, countrySource).
  • LinkedIn company URL without touching LinkedIn. The LinkedIn, X/Twitter, Facebook, Instagram, YouTube, TikTok, GitHub and Pinterest links are the ones the company itself publishes on its site. Share buttons and post links are ignored. LinkedIn and other networks are never fetched.
  • Tech stack from 7,600+ open-source fingerprints (webappanalyzer, GPL-3.0): WordPress, Shopify, HubSpot, Klaviyo, Google Analytics, Stripe, Cloudflare and so on, with summary columns such as cms, ecommercePlatform, analytics and crm. Services that the company has only verified in DNS (TXT tokens for Atlassian, HubSpot, OpenAI, DocuSign...) are listed separately in dnsVerifiedServices.
  • Email setup from DNS: email provider (Google Workspace, Microsoft 365, Zoho...), security gateway (Proofpoint, Mimecast...), SPF and DMARC policy, and the sending services named in SPF (HubSpot, Salesforce, Mailchimp...). This is useful for cold-email and deliverability agencies.
  • Domain age (creation date, expiry and registrar) from RDAP.
  • Optional AI classification: industry, sub-industry, B2B/B2C, business model and a one-line summary, made from the company's own homepage text. The fields start with ai so they are never confused with source data.
  • No guesses. Headcount appears only when the site states it in schema.org. Revenue is never estimated.
  • Polite and cheap. HTTP only (no browser), robots.txt respected (including Crawl-delay), at most 2 parallel requests per site, and an honest User-Agent.

What can I use it for?

  • Lead-list building: turn a list of domains from Google Maps, a trade-show list, a CRM or a scraper into rows with company name, country, LinkedIn page and contacts.
  • CRM cleanup and enrichment: fill in missing legal names, countries, logos, LinkedIn URLs and descriptions for existing accounts.
  • Cold email and deliverability: segment prospects by email provider (Google vs Microsoft) and by SPF/DMARC setup.
  • Technographic segmentation: find every Shopify store, WordPress site or HubSpot user in a list.
  • Due diligence and KYB pre-checks: check the stated legal name, address, domain age and whether the site is live or parked.
  • AI agents: give an agent a "tell me about this company" tool (see below).

Input

FieldDescription
domainsDomains or URLs (acme.com, https://www.acme.de/en/, even jane@acme.com). One row per company domain; duplicates are merged.
bulkTextPaste any list: one per line, comma separated, or a whole CSV export
sourceFileUrlPublic URL of a .txt/.csv file (e.g. a published Google Sheet)
datasetId, datasetFieldRead domains from another Actor's dataset (e.g. a Google Maps scraper run)
includeContactsPublic emails (MX-checked) and phone numbers (default on)
includeTechStackTech stack detection (default on)
includeEmailDnsEmail provider, SPF and DMARC (default on)
includeDomainAgeDomain creation date and registrar from RDAP (default on)
aiClassify, aiModelOptional AI industry/B2B classification (default off)
maxPagesPerSitePages per website, homepage included (default 5, max 20). The price stays the same.
maxDomains, maxConcurrency, requestTimeoutSecs, proxyConfigurationAdvanced
{
"domains": ["hawksheadrelish.com", "puccinibomboni.com", "basecamp.com"],
"includeContacts": true,
"includeTechStack": true,
"includeEmailDns": true,
"includeDomainAge": true,
"aiClassify": false
}

Output

You get one row per domain. The Output tab has three tables (Companies, LinkedIn & social profiles, Tech stack & email). The full JSON looks like this (real result, shortened):

{
"domain": "zapier.com",
"websiteUrl": "https://zapier.com",
"companyName": "Zapier",
"legalName": "Zapier Inc",
"legalNameSource": "schema.org legalName",
"description": "Build and scale AI workflows and agents across 9,000+ apps with Zapier—the most connected AI orchestration platform. Trusted by 3 million+ businesses.",
"logo": "https://res.cloudinary.com/zapier-media/image/upload/f_png,h_224/v1757453971/Zapier_Logo_yjhvbo",
"country": "US",
"countryName": "United States",
"countrySource": "schema.org address",
"city": "San Francisco",
"address": "548 Market St. #62411, 94104, San Francisco, CA, US",
"foundedYear": 2011,
"foundedYearSource": "schema.org foundingDate",
"employees": null,
"linkedin": "https://www.linkedin.com/company/zapier",
"twitter": "https://x.com/zapier",
"facebook": "https://www.facebook.com/ZapierApp",
"instagram": "https://www.instagram.com/zapier",
"youtube": "https://www.youtube.com/user/ZapierApp",
"github": "https://github.com/zapier",
"emails": [],
"phones": [],
"emailProvider": "Google Workspace",
"hasSpf": true,
"spfPolicy": "fail",
"hasDmarc": true,
"dmarcPolicy": "reject",
"emailSendingServices": ["Google Workspace", "Mailgun", "HubSpot", "Zendesk"],
"domainCreatedAt": "2011-10-30T20:11:40Z",
"domainAgeYears": 15.0,
"registrar": "Name.com, Inc.",
"cms": "Contentful",
"ecommercePlatform": null,
"hosting": ["Amazon Web Services", "Heroku", "Vercel", "Amazon Route 53"],
"webFrameworks": ["Next.js", "React"],
"technologyNames": ["Contentful", "Next.js", "React", "Vercel", "Amazon CloudFront", "OneTrust", "..."],
"dnsVerifiedServices": ["Atlassian Cloud", "Zendesk", "HubSpot", "Stripe", "OpenAI", "DocuSign", "..."],
"parked": false,
"blocked": false,
"charged": true,
"error": null
}

The fields are null when the website does not publish the information. Rows with error set (DNS failure, HTTP error, bot protection, parked domain, no company name) are free. See SAMPLE_OUTPUT.json for complete real rows.

Where each field comes from:

  • companyName: schema.org Organization, og:site_name or the page title
  • legalName: schema.org legalName, or a name with a legal form (Ltd, GmbH, Inc, BV...) on the imprint/legal page or in the copyright line. It must match the company's name or domain, so the web agency in the footer is skipped.
  • foundedYear: schema.org foundingDate, or "founded in / since / seit / est." on the about page or homepage
  • country: schema.org address, then the phone numbers' country, then the country-code domain, then the RDAP registrant country
  • employees: only schema.org numberOfEmployees

Pricing

Pay per event:

EventPrice
Company enriched (the site answered and a company name was found)$0.001 ($1.00 per 1,000 companies)
AI classification (only with aiClassify)$0.0005, plus LLM tokens of about $0.0002 billed by Apify's OpenRouter Actor
Actor start$0.00005
Dead, parked, blocked or failed domainsfree

How that compares with company-enrichment Actors in the Apify Store (listed prices, October 2026):

ActorListed price per company
foxlabs/company-enrichment$0.001
bovi/company-lookup-scraper$0.0015
b2bsearch/domain-to-company$0.0055
Domain → LinkedIn URL finders (s-r, mambalabs)$0.006–0.009
This Actor$0.001, with dead and parked domains free

Set a maximum cost per run in the run options. The Actor stops cleanly before going over it.

Limitations

  • Data appears only if the company publishes it. Small sites often have no legal name, founded year or LinkedIn link. In that case the field is null; it is never guessed.
  • JavaScript-only sites (jsRenderedSite: true) show little text to an HTTP client, so expect fewer fields there.
  • Bot-protected sites (Cloudflare/Incapsula challenges) are returned with blocked: true and are free. Some sites rate-limit automated clients (HTTP 429/503). Those rows are also free; retry them later.
  • Domain age: some registries (e.g. .de, .jp) publish no creation date over RDAP, so rdapError explains why it is missing.
  • Headcount and revenue are not estimated.

FAQ

Is this legal? The Actor reads only information that companies publish about themselves on their own website, plus public DNS and RDAP registry data. It respects robots.txt and never logs in or fetches LinkedIn or other social networks. Emails and phone numbers of named people can still be personal data under the GDPR/UK GDPR, and email marketing is regulated (CAN-SPAM, ePrivacy/PECR, CASL). Make sure you have a lawful basis for your use. You are responsible for how you use the data.

Why is the LinkedIn URL empty for some companies? The Actor only returns a LinkedIn page that the company links from its own website, which keeps the result verified and compliant. If the site has no LinkedIn link, the field is null.

What does charged: true mean? It marks the rows you paid for. Rows with charged: false were free.

Can I chain it after a Google Maps or lead scraper? Yes. Put that run's dataset ID in datasetId. If the website field has an unusual name, set it in datasetField.

Use with AI agents / Apify MCP

This Actor is a good "company lookup" tool for AI agents: the input is small (a list of domains) and the output is one compact row per company. Through the Apify MCP server (https://mcp.apify.com?actors=gazidev/company-enrichment), Claude, ChatGPT, Cursor and other MCP clients can call it directly, for example: "enrich these 50 domains with country, LinkedIn page and email provider". You can also call it over the API: POST https://api.apify.com/v2/acts/gazidev~company-enrichment/run-sync-get-dataset-items with the input JSON.

Categories

Lead generation · Marketing · Developer tools · Automation