Website Enrichment Scraper: Company Contacts & Tech avatar

Website Enrichment Scraper: Company Contacts & Tech

Pricing

from $3.40 / 1,000 website enricheds

Go to Apify Store
Website Enrichment Scraper: Company Contacts & Tech

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

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Features

Limited permissions

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 planPer websitePer 1,000 websites
FreeUS$ 0.004US$ 4.00
BronzeUS$ 0.0038US$ 3.80
SilverUS$ 0.0036US$ 3.60
Gold and aboveUS$ 0.0034US$ 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. pagesVisited lists the exact pages read for each site.
  • Employee profiles mixed with company pages. LinkedIn results are limited to /company, /school and /showcase pages.

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 sendHere
startUrls ([{"url": "..."}], file upload)Accepted
urls, domains, targetUrlsSame as websites
urlA single website
maxItemsHard cap for the run

Output fields

Fill rates from a run of 40 websites, of which 33 loaded and 7 came back free.

FieldExampleFilled
url, finalUrl, domainthe address you sent, where redirects ended, domain without www.100%
title, description, siteName, languagepage title, meta description, og:site_name, lang67 to 100%
emailscompany emails from text and mailto: links64%
phonesphones in unambiguous formats only (tel:, international, area code in parentheses)27%
whatsappnumbers from wa.me and api.whatsapp.com links9%
facebook, instagram, linkedin, twitter, youtube, tiktokprofile or page URLs27 to 82%
otherSocialsGitHub, Threads, Telegram, Pinterest and others, keyed by name33%
cnpjBrazilian company registration numbers, validated by check digit21%
technologyNamesflat sorted list of technology names100%
technologies{name, categories, version, confidence} per technology100%
pagesVisitedthe pages actually read100%
companyName, placeId, addresscarried over from a Google Maps datasetwith googleMapsDatasetId
error, errorCode, scrapedAt, sourceUrlsee 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

errorCodeMeaning
DNS_NOT_FOUNDThe domain does not exist. Check the spelling.
CONNECT_FAILEDThe server refused the connection
TIMEOUTThe site did not answer or never finished loading
FETCH_FAILEDThe 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 technologyNames for 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 technologyNames between 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.