Domain Contact Enricher: Emails & Phones
Pricing
from $3.30 / 1,000 enriched companies
Domain Contact Enricher: Emails & Phones
Turn company domains into contactable records. Returns role emails, phones, social profiles, postal addresses, company name, 90+ technology signals, the ATS a company uses, and live MX/SPF/DMARC email infrastructure. One row per domain, and every value carries the page it came from.
Pricing
from $3.30 / 1,000 enriched companies
Rating
0.0
(0)
Developer
Axiora Solutions
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Domain Contact Enricher — Email Finder & Company Enrichment
Domain Contact Enricher is an Apify email finder and company enrichment Actor that turns a plain list of company domains into a contactable lead list — one row per domain with e-mail addresses, phone numbers, social profiles, 90+ technology signals, the applicant tracking system the company uses, and live MX/SPF/DMARC e-mail infrastructure. Every value records the exact source page it was found on, alongside confidence labels and detection evidence, so you can audit a row instead of trusting it. No API key, no login, nothing to configure — paste your domains and click Start.
What you get
emails[]— published addresses withconfidence,isRoleAccountand the exactfoundOnpage URL.phones[]— E.164-range numbers withtel:links ranked first, each with its source page.socialProfilesandlinkedinUrl— LinkedIn, GitHub, YouTube, X and more, deduplicated.company— legal name, description, logo, founding date, employee count, VAT/tax ID and postal addresses.technologyIds[]/technologies[]— 90+ tech signals across 14 categories, each with the evidence that fired it.atsProvider/emailInfrastructure— the ATS in use plus a ready-to-paste scraper input, and live MX/provider/SPF/DMARC data withcontentHashfor change detection.
Honest coverage note: contact details are only returned when the site publishes them. Modern sites often route contact through forms, images or client-side JavaScript, so an e-mail per domain is not guaranteed. The coverage block in the run summary reports the real hit rate on your list before you scale.
Quick start
- Open the Actor on Apify and paste your domains into Company domains. A bare domain (
apify.com), a full URL or an e-mail address all work; the input is prefilled with a working example. - Leave Pages per domain at
4and Find contact and imprint pages enabled. Those defaults reach the contact, about and imprint pages on most sites. - Click Start — no API key or login is needed. When the run finishes, switch between the Contacts, Every e-mail and Technology & hiring dataset tabs, or export to JSON, CSV, Excel or Google Sheets.
Minimal input:
{ "domains": ["apify.com", "stripe.com"] }
Example output
One dataset row:
{"ok": true,"errorCode": null,"requestedInput": "apify.com","domain": "apify.com","websiteUrl": "https://apify.com/","redirectedToDomain": null,"httpStatus": 200,"companyName": "Apify","company": {"name": "Apify","legalName": "Apify Technologies s.r.o.","description": "Full-stack web scraping and data extraction platform.","logoUrl": "https://apify.com/og-image.png","foundingDate": "2015","employeeCount": null,"industry": null,"vatId": null,"addresses": [{"street": "Vodickova 704/36","locality": "Prague","region": null,"postalCode": "110 00","country": "Czechia","formatted": "Vodickova 704/36, Prague, 110 00, Czechia"}],"sameAs": ["https://github.com/apify"]},"primaryEmail": "hello@apify.com","emailCount": 2,"emails": [{"email": "hello@apify.com","emailDomain": "apify.com","isRoleAccount": true,"isOnSiteDomain": true,"confidence": "high","foundOn": "https://apify.com/contact"}],"primaryPhone": null,"phoneCount": 0,"phones": [],"linkedinUrl": "https://www.linkedin.com/company/apify","socialProfiles": {"linkedin": "https://www.linkedin.com/company/apify","github": "https://github.com/apify","youtube": "https://www.youtube.com/@apify"},"socialProfileCount": 3,"technologyCount": 7,"technologyIds": ["cloudflare", "google-tag-manager", "hubspot", "intercom", "nextjs", "react", "sentry"],"technologies": [{ "id": "nextjs", "name": "Next.js", "category": "framework", "evidence": "html: __NEXT_DATA__" },{ "id": "cloudflare", "name": "Cloudflare", "category": "infrastructure", "evidence": "headers: cf-ray" }],"atsDetected": [{"provider": "greenhouse","name": "Greenhouse","boardToken": "apify","boardUrl": "https://boards.greenhouse.io/apify","atsJobScraperInput": "greenhouse:apify"}],"atsProvider": "greenhouse","atsJobScraperInput": "greenhouse:apify","emailInfrastructure": {"mxHosts": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"],"mailProvider": "Google Workspace","hasSpf": true,"hasDmarc": true,"spfIncludes": ["_spf.google.com"],"resolved": true},"pagesCrawled": [{ "url": "https://apify.com/", "kind": "homepage", "status": 200, "bytes": 142331, "title": "Apify" },{ "url": "https://apify.com/contact", "kind": "discovered", "status": 200, "bytes": 51220, "title": "Contact us" }],"pageCount": 2,"contentHash": "5b1f7c2e9a3d4061","scrapedAt": "2026-10-02T12:00:00.000Z"}
What this contact enricher returns
- 📧 E-mails with provenance, not guesses —
confidence: highmeans amailto:link or a role account (info@,sales@,careers@) on the company's own domain.mediumis a plain-text match on the company domain.lowis a third-party address (agency, CDN, partner). You decide what to trust. No address is ever generated from a name pattern. - ☎️ Phones that survive validation — only 8–15 digit numbers inside the ITU E.164 range, with
tel:links ranked first. Dates, version strings and asset hashes are rejected. - 🏢 Company identity from structured data — legal name, description, logo, founding date, employee count, VAT/tax ID and postal addresses, read from the site's own JSON-LD and OpenGraph markup.
- 🧱 90+ technology signals in 14 categories — e-commerce, CMS, framework, hosting, analytics, marketing, support, payments, security, privacy, reviews and more. Each hit ships its evidence string.
- 🎯 Hiring-platform detection — finds Greenhouse, Ashby, Lever, Workable, SmartRecruiters, Recruitee, Personio, Teamtailor, BambooHR or Rippling and returns the board URL plus a ready-to-paste input for the ATS Job Scraper.
- 📬 E-mail infrastructure via live DNS — MX records in priority order, the resolved mail provider (Google Workspace, Microsoft 365, Zoho, Proofpoint, Mimecast…), and whether SPF and DMARC are published. A missing DMARC record is both a security finding and a sales trigger.
- 🧾 Full audit trail —
pagesCrawledlists every URL read with status, bytes and title.contentHashlets a scheduled run detect website changes without storing any HTML. - 🤖 Agent-ready — the main input is an array, no field is a credential, and the output schema is fully documented, so an autonomous agent can call this without a human.
Running on Apify adds scheduling, run history, webhooks, monitoring, the API and SDKs, and one-click export to JSON, CSV, Excel, Google Sheets and 20+ integrations.
How to use it
- Put your domains in Company domains. A bare domain, a full URL or an e-mail address all work.
- Set Pages per domain.
1reads only the homepage;4is the default and usually enough;8–12digs into deep imprint pages. - Leave Find contact and imprint pages on. The Actor scores homepage links by URL and anchor text and visits the best candidates —
/contact,/about,/team,/impressum,/legal,/support. - Toggle the enrichment blocks you need. They are independent and do not change the price, which is per company.
- Click Start, then switch between the Contacts, Every e-mail and Technology & hiring dataset tabs.
How do I get more e-mails per company?
Raise Pages per domain to 8 and add known paths to Always try these paths (for example /contact-us, /en/imprint, /company/contact). German, Austrian and Swiss sites are legally required to publish an imprint, so /impressum has a very high hit rate there.
Example input
{"domains": ["apify.com", "stripe.com", "https://www.ramp.com"],"maxPagesPerDomain": 4,"discoverContactPages": true,"extraPaths": ["/contact", "/impressum"],"includeCompanyProfile": true,"includeTechnologies": true,"includeAtsDetection": true,"includeDnsSignals": true,"maxEmailsPerDomain": 15,"respectRobotsTxt": true}
How much does it cost to enrich company domains?
Pricing is pay per event with a single event:
| Event | What triggers it | Billed |
|---|---|---|
| Enriched company | A domain was fetched and a company row was written | per company |
| Actor start | Once per run, platform fee | per run |
Domains that cannot be fetched are free. A dead domain, a 403, a DNS failure or a timeout produces an ok: false row and is never charged — you only pay for companies you actually received data for.
The price is per company, not per page, so turning on every enrichment block costs exactly the same as turning them all off. 1,000 domains is 1,000 billed events. Compute, bandwidth and storage are included; there is no separate platform-usage charge on top.
Set Max cost per run in the run options for a hard ceiling. Higher Apify plans receive progressively lower per-company pricing through Apify Store tier discounts.
Evaluating? Run 5 domains first and look at the coverage block in the run summary — it reports how many companies yielded an e-mail, a phone and an ATS. That tells you the real hit rate on your list before you scale it.
Use cases
- Outbound lead enrichment — take a domain list from any source and make it contactable in one run.
- ICP and segmentation — filter by
technologyIdsto find every prospect on Shopify, HubSpot, Next.js or Stripe. - Hiring-signal prospecting —
atsProvidertells you who is hiring and on which platform; chain into the ATS Job Scraper for the actual roles. - E-mail deliverability audits — list every domain in a portfolio without DMARC.
- CRM hygiene — re-run monthly and diff
contentHashto catch rebrands, acquisitions (redirectedToDomain) and dead sites. - Agent tool — a clean, credential-free tool call for an autonomous research agent.
Related Actors by Axiora Solutions
| Actor | Use it for |
|---|---|
| ATS Job Scraper | Paste atsJobScraperInput and get every open role at the companies you just enriched |
| Shopify Product & Variant Scraper | For every prospect detected as Shopify, pull their full catalogue and pricing |
| Sitemap & Indexability Audit | Technical SEO state of the same domains, for agency pitches |
Frequently asked questions
Does this find personal e-mail addresses of employees?
No, and that is deliberate. This Actor reads only what a company publishes on its own website, which in practice means role accounts and office numbers. It does not guess firstname.lastname@ patterns, does not query third-party people databases, and does not scrape social networks for individuals. If a site publishes a named person's address on its own contact page, that address will appear — flagged by confidence — because the company chose to publish it.
Is scraping company contact details from websites legal?
The Actor fetches publicly served pages and honours robots.txt by default. Business contact details published by a company on its own website are the least sensitive category of this data, but you remain responsible for your lawful basis for processing and for your outreach — GDPR, CAN-SPAM, PECR and equivalents apply to how you use the output. Nothing here is legal advice.
Why does a company have no e-mail at all?
Common and expected. Many companies route all contact through a form, put the address in an image, or render it only after JavaScript runs. This Actor uses plain HTTP and does not execute JavaScript, which is what makes it fast and cheap. Check pagesCrawled to confirm the contact page was actually read, then raise Pages per domain or add the exact path.
Does it run JavaScript or use a browser?
No. Every request is plain HTTP, which is why a run costs a fraction of a browser-based crawl. For sites that only render contacts client-side, expect lower coverage — the coverage block in the run summary quantifies it honestly rather than hiding it.
What does confidence actually mean?
high — the address was in a mailto: link, or it is a role account on the company's own domain. medium — plain-text match on the company's own domain. low — a different domain entirely, so it may belong to an agency, a hosting provider or a partner. Filter to high and medium for outbound.
Why is emailInfrastructure useful?
mailProvider is a reliable company-size and stack signal. hasDmarc: false means the domain is spoofable, which is a genuine finding for security vendors and a credible opening line for outbound. These come from live DNS, not from the page.
Should I enable the proxy?
Usually not. Most sites answer plain requests fine, and running without a proxy is faster and costs you nothing extra. Turn on datacenter proxy rotation if you hit ACCESS_DENIED on many domains. Residential groups also work but Apify bills them per gigabyte, so only use them when you must.
Can I run this on a schedule?
Yes. Add a Schedule, then diff contentHash to find changed sites, redirectedToDomain to catch acquisitions, and atsProvider to spot companies that just started hiring.
Something looks wrong — how do I report it?
Open the Issues tab on this Actor page with the domain and the field you expected. A false-positive e-mail or technology detection is treated as a bug and gets a narrower rule.
Runnable examples and how-to guides for these Actors: github.com/batow133/axiora-apify-actors