Website Contact & Company Enricher
Under maintenancePricing
from $5.00 / 1,000 domain enricheds
Website Contact & Company Enricher
Under maintenanceEnrich domains into structured company contact data — emails, phone numbers, social profiles, and addresses. One clean JSON record per domain, pay per result. Built for AI agents and lead-gen pipelines.
Pricing
from $5.00 / 1,000 domain enricheds
Rating
0.0
(0)
Developer
Neal Johnson
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Turn a list of domains into clean, structured company contact data — business emails, phone numbers, social profiles, and postal addresses. One tidy JSON record per domain, and you only pay for domains where data is actually found.
Give it apify.com and get back the company name, description, emails, E.164-formatted phone numbers, LinkedIn / X / Facebook / Instagram / YouTube / GitHub / TikTok links, and any postal address published on the site. It's a focused, single-purpose enrichment tool built to be hammered repeatedly — by sales teams, lead-generation pipelines, and autonomous AI agents.
What it does
This Actor takes one or more company domains, crawls each site's homepage plus its contact and about pages, and returns a normalized company contact record. It's designed for B2B lead enrichment, domain-to-contact lookup, sales prospecting, CRM data cleaning, and agent-driven research — anywhere you have a website and need the people-and-contact data behind it.
Because it crawls each company's own public website rather than fighting a third-party platform's bot defenses, it's fast, cheap, and reliable — and it composes cleanly with map and directory scrapers: pipe their output URLs straight into this Actor to enrich them.
Output
One record per input domain:
{"domain": "apify.com","url": "https://apify.com","companyName": "Apify","description": "Full-stack web scraping and browser automation platform.","emails": ["hello@apify.com", "support@apify.com"],"phones": ["+14158000000"],"socialProfiles": {"linkedin": "https://linkedin.com/company/apify","twitter": "https://x.com/apify","github": "https://github.com/apify"},"addresses": ["Vodičkova 704/36, Prague, Czechia"],"pagesCrawled": 3,"enrichedAt": "2026-07-06T02:10:00.000Z"}
Every field is documented in the output schema, so the Console renders a clean table and AI agents know exactly what they'll receive before they call.
Input
{"domains": ["apify.com", "https://stripe.com", "github.com"],"maxPagesPerDomain": 3,"includePhones": true,"defaultCountry": "US"}
| Field | Description |
|---|---|
domains | List of domains or URLs to enrich. apify.com and https://apify.com both work. |
maxPagesPerDomain | Homepage plus this many contact/about pages. Higher = more coverage, slightly higher cost. Default 3. |
includePhones | Validate and return phone numbers in E.164 format. Default true. |
defaultCountry | ISO country code used to parse local numbers without a country prefix. Default US. |
Pricing
Pay per result. You're charged only for domains where contact data is actually found — empty lookups are free. No monthly fee, no platform usage costs passed through; the per-result price is the whole price.
That model is built for automation: predictable unit economics whether a human runs a hundred domains or an agent runs a hundred thousand.
Built for AI agents
This Actor is agent-ready. It uses pay-per-event pricing with limited permissions, so it's discoverable and callable by autonomous agents through Apify's MCP integration and agentic (x402) payments — no account or API key setup required on the agent's side.
Agents get everything they need to buy confidently: a single clear purpose, a documented output schema, per-result pricing, and structured JSON returned straight from the synchronous run endpoint. Feed it a domain, get back a contact record, pay for what you got.
Typical agent jobs:
- Enrich a lead list a CRM or research agent just assembled.
- Resolve a company website into contactable emails and socials for outreach.
- Add a contact-data step to a multi-tool prospecting or market-research workflow.
How it works
For each domain it visits the homepage and up to a few contact/about pages, then extracts and cleans:
- Emails — from
mailto:links and page text, with image sprites, trackers, and placeholder addresses filtered out. - Phones — from
tel:links and page text, validated and normalized to E.164 with libphonenumber. - Social profiles — LinkedIn, X/Twitter, Facebook, Instagram, YouTube, GitHub, and TikTok, de-duplicated to one canonical link each.
- Company name & description — from OpenGraph, meta tags, and JSON-LD
Organization/LocalBusinessdata. - Postal address — parsed from JSON-LD structured data when the site publishes it.
Tips
- For the widest coverage on a single company, raise
maxPagesPerDomainto 5–6. - Set
defaultCountryto match the region of the companies you're enriching for cleaner phone parsing. - Running large batches? Split them into runs of a few hundred domains for easy monitoring and predictable billing.
Limitations
- Uses a fast HTTP crawler, so contact details rendered only by client-side JavaScript may be missed on some sites. The vast majority of businesses publish contact data in plain HTML.
- Only returns data a company publishes on its own public website — it doesn't guess or infer addresses.
- Use responsibly: respect each site's terms and robots directives, and handle any personal data in line with applicable privacy law (GDPR, CCPA, and similar).
For developers
Run the health/iteration monitor locally against your published Actor:
$APIFY_TOKEN=xxx ACTOR_ID=your-username~website-contact-enricher npm run monitor
It reports success rate, latency, and week-over-week usage trend, with concrete next actions.