Website Enrichment Scraper: Company Contacts & Tech
Pricing
from $3.40 / 1,000 website enricheds
Website Enrichment Scraper: Company Contacts & Tech
Scrape company websites for enrichment: business emails, phones, WhatsApp, social profiles and the tech stack (CMS, e-commerce, analytics). Paste domains or Google Maps results. Dead sites are free.
Pricing
from $3.40 / 1,000 website enricheds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Features
Share
Website Enrichment: company contacts and tech stack from any website
This website contact scraper does company enrichment from the company's own site. Paste domains, or plug in the dataset of a Google Maps Scraper run, and get one row per business: published emails, phones, WhatsApp numbers, social profiles and the technology stack (CMS, e-commerce platform, analytics, frameworks).
Use it for website enrichment before outreach, or to find every Shopify, WooCommerce or WordPress site in a list. Contacts and tech stack come in the same row. Sites that do not answer are free.
At a glance
| Apify plan | Per website | Per 1,000 websites |
|---|---|---|
| Free | US$ 0.004 | US$ 4.00 |
| Bronze | US$ 0.0038 | US$ 3.80 |
| Silver | US$ 0.0036 | US$ 3.60 |
| Gold and above | US$ 0.0034 | US$ 3.40 |
- One charge per website that loaded, whatever the number of pages read and whether technologies are on. 30 websites cost US$ 0.12.
- Free: domains that do not resolve, refuse the connection, time out or answer with an HTTP error, duplicated domains, and Google Maps places without a website.
- No monthly fee and no start fee; proxy and compute are included.
What it fixes
- Two Actors for one list. Contacts and technology stack come in the same row at one price, so "every Shopify store and its contact email" is one run.
- Paying for dead domains. Sites that do not answer come back as free rows with a stable
errorCode, and the run still ends as succeeded. - Not knowing where a contact came from.
pagesVisitedlists the exact pages read for each site. - Employee profiles mixed with company pages. LinkedIn results are limited to
/company,/schooland/showcasepages.
Quick start
{ "websites": ["python.org", "https://wordpress.org", "apify.com"] }
Contacts only, more pages per site: { "websites": ["example.com"], "detectTechnologies": false, "maxPagesPerSite": 5, "maxItems": 500 }. From a Google Maps run: { "googleMapsDatasetId": "aBcDeFgHiJkLmNoPq", "maxItems": 500 }.
One real row from 2026-10-02, technology list shortened:
{"url": "https://www.gymshark.com/","finalUrl": "https://www.gymshark.com/","domain": "gymshark.com","companyName": "Gymshark","title": "Gymshark Official Store - Gym Clothes & Workout Clothes","description": "Unlock your full potential with our game-changing workout clothes. ...","siteName": "Gymshark","language": "en-US","emails": ["press@gymshark.com", "support@gymshark.com"],"phones": [],"whatsapp": [],"facebook": ["https://facebook.com/Gymshark"],"instagram": ["https://instagram.com/gymshark"],"linkedin": ["https://linkedin.com/company/gymshark"],"twitter": ["https://twitter.com/Gymshark"],"youtube": ["https://youtube.com/@gymshark"],"tiktok": ["https://tiktok.com/@gymshark"],"otherSocials": {"pinterest": ["https://pinterest.com/gymshark"]},"cnpj": [],"technologies": [{ "name": "Contentful", "categories": ["CMS"], "version": "", "confidence": 100 },{ "name": "Next.js", "categories": ["JavaScript frameworks", "Web frameworks"], "version": "", "confidence": 100 }],"technologyNames": ["Algolia", "Amazon CloudFront", "Contentful", "HSTS", "Next.js", "React"],"pagesVisited": ["https://www.gymshark.com/", "https://www.gymshark.com/pages/about-us"],"error": null,"errorCode": null,"scrapedAt": "2026-10-02T19:14:48.665625+00:00","sourceUrl": "https://www.gymshark.com/"}
Switching from another enrichment actor? Your existing input works
| Field you already send | Here |
|---|---|
startUrls ([{"url": "..."}], file upload) | Accepted |
urls, domains, targetUrls | Same as websites |
url | A single website |
maxItems | Hard cap for the run |
Output fields
Fill rates from a run of 40 websites, of which 33 loaded and 7 came back free.
| Field | Example | Filled |
|---|---|---|
url, finalUrl, domain | the address you sent, where redirects ended, domain without www. | 100% |
title, description, siteName, language | page title, meta description, og:site_name, lang | 67 to 100% |
emails | company emails from text and mailto: links | 64% |
phones | phones in unambiguous formats only (tel:, international, area code in parentheses) | 27% |
whatsapp | numbers from wa.me and api.whatsapp.com links | 9% |
facebook, instagram, linkedin, twitter, youtube, tiktok | profile or page URLs | 27 to 82% |
otherSocials | GitHub, Threads, Telegram, Pinterest and others, keyed by name | 33% |
cnpj | Brazilian company registration numbers, validated by check digit | 21% |
technologyNames | flat sorted list of technology names | 100% |
technologies | {name, categories, version, confidence} per technology | 100% |
pagesVisited | the pages actually read | 100% |
companyName, placeId, address | carried over from a Google Maps dataset | with googleMapsDatasetId |
error, errorCode, scrapedAt, sourceUrl | see below |
The 33 sites produced 245 technology detections, a median of 7 per site; the most common were HSTS, Cloudflare, Amazon Web Services, Google Tag Manager and HTTP/3. A version is reported only when the site exposes it. Fingerprints come from the open source webappanalyzer project (GPL-3.0): 6,088 signatures detectable from HTML, script sources, meta tags, headers, cookies and URL patterns, without running JavaScript.
Rows not charged
errorCode | Meaning |
|---|---|
DNS_NOT_FOUND | The domain does not exist. Check the spelling. |
CONNECT_FAILED | The server refused the connection |
TIMEOUT | The site did not answer or never finished loading |
FETCH_FAILED | The server answered with an HTTP error; error says which (HTTP 403, HTTP 404) |
Use cases
- Enrich a lead list: domains from a CRM export or a Google Maps run come back with public email, phone, WhatsApp and social profiles.
- Find every store on a platform: filter
technologyNamesfor Shopify, WooCommerce, VTEX, Magento or Nuvemshop and get the contact in the same row. - Qualify accounts by stack: score prospects by whether they run HubSpot, Google Analytics, Cloudflare or Next.js.
- Detect stack migrations: schedule your customer list weekly and compare
technologyNamesbetween runs.
FAQ
Am I charged per page or per website?
Per website that loaded. maxPagesPerSite reads more contact and about pages at no extra cost.
How fast is it?
Ten websites are processed in parallel: 40 websites with 3 pages each took 155 seconds, about 4 seconds per site. Rows arrive in the order they finish; join on sourceUrl.
Why is a technology missing?
Detection reads HTML, headers and cookies without running JavaScript, only on the pages in pagesVisited. Tags that appear only after scripts run can be missed.
Does it verify or guess email addresses? No. It returns only what the website publishes, never guessed patterns, and does not check mailboxes.
What is cnpj?
The Brazilian company registration number, extracted when a Brazilian site publishes it and validated by check digit. Other sites return an empty list.
Can I call it from the API, n8n, Make, Zapier or an AI agent?
Yes: scrapewise/website-enrichment through the Apify API, the Apify app in those tools, or the MCP server at https://mcp.apify.com/?tools=scrapewise/website-enrichment. A site that does not respond is a row with error, so a one-domain-per-call workflow does not break.
curl -X POST "https://api.apify.com/v2/acts/scrapewise~website-enrichment/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" -d '{"websites": ["example.com"]}'
Is it legal? The Actor reads public pages without login and collects business contact information that companies publish, not personal profiles or identity numbers. GDPR, LGPD and similar laws still apply to how you store and use the contacts.
Limitations
- Only what the website publishes: no email guessing, verification or third-party data.
- Some websites refuse automated visits and answer with an error (free row).
- Responses are read up to 2 MB per page.
- Contact pages are found from links on the home page; a site with JavaScript-only navigation may be read on the home page only.
- Something broke or a field is missing? Open an issue on the Issues tab.
Changelog
- 2026-09-11 (0.1.2): first public release: contacts, WhatsApp, 9 social networks, CNPJ by check digit, 6,088 technology signatures, Google Maps dataset as input.