Website Contact Scraper: Emails, Phones & Social Links
Pricing
from $2.00 / 1,000 website processeds
Website Contact Scraper: Emails, Phones & Social Links
Bulk contact info scraper: give it company websites, get the publicly listed business emails, phone numbers, LinkedIn/X/Facebook/Instagram/YouTube/GitHub/TikTok links and the contact page URL. Checks contact/about/imprint pages, respects robots.txt, $2 per 1,000 sites. By Steadyline Data.
Pricing
from $2.00 / 1,000 website processeds
Rating
0.0
(0)
Developer
Steadyline Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 hours ago
Last modified
Categories
Share
Website Contact Scraper: public emails, phones & social links from any list of websites
Give it a list of websites. For each one it reads the page you supplied and, optionally, a few same-site Contact / About / Imprint / Team pages linked from it. It returns the publicly listed business contact details: email addresses, phone numbers, social profile links and the contact page URL. One row per site.
- Respects robots.txt. Pages disallowed for our crawler are skipped and listed in
skippedByRobots. - No logins, no search engines, no third-party data brokers. Only the public pages of the sites you supply are read.
- Small footprint. At most 20 pages per site (5 by default), no headless browser.
Use cases
- Lead list enrichment: add the public info@/sales@ address, switchboard phone and LinkedIn page to a list of company domains.
- CRM clean-up: fill missing company phone numbers and social links in HubSpot, Salesforce or Pipedrive.
- Agency prospecting: combine with Tech Stack Detector to find, e.g., Shopify stores and how to reach them.
- Partner and supplier research: collect contact pages for a list of vendors in one run.
- Social profile discovery: find a brand's official LinkedIn, X, Instagram, YouTube, GitHub and TikTok accounts.
Input
{ "startUrls": ["https://apify.com", "python.org"], "followContactPages": true, "maxPagesPerSite": 5 }
Output sample
{"site": "https://www.acme-example.com","status": "ok","emails": ["info@acme-example.com", "sales@acme-example.com"],"phones": ["+1 (555) 010-2000"],"linkedin": "https://www.linkedin.com/company/acme-example","twitter": "https://x.com/acmeexample","contactPage": "https://www.acme-example.com/contact","pagesScanned": 4,"scannedUrls": ["https://www.acme-example.com/", "https://www.acme-example.com/contact"],"skippedByRobots": [],"error": null}
status is ok, unreachable or blocked-by-robots. Other social keys: facebook, instagram, youtube, github, tiktok.
Pricing (pay per event)
| Event | Price | When |
|---|---|---|
site-processed | $0.002 | One website fetched and scanned successfully |
Invalid URLs, duplicates, unreachable sites and sites fully blocked by robots.txt are never charged. A site where no contacts are found is still charged, because the scan was done.
Cost example: 1,000 websites = $2.00 plus a small amount of platform usage (in our tests about $0.0001 per site).
Use it from AI agents (MCP), Zapier, Make, n8n or the API
AI agents (Claude, Cursor, VS Code, ChatGPT and other MCP clients). Add Apify's hosted MCP server with just this Actor as a tool:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=steadyline/website-contact-extractor"}}}
Sign in with Apify (OAuth) on first connect, or add an Authorization: Bearer <APIFY_TOKEN> header. Then ask your agent, for example:
Use steadyline/website-contact-extractor to find the public contact email, phone number and LinkedIn page for these 20 company websites, and return a table.
The agent sees this Actor's input schema and output fields, so it can call it without extra prompting. Agents that use the general Apify MCP server can also find it with search-actors.
This Actor uses pay-per-event pricing with limited permissions, so it can also be run through Apify's agentic payments (no Apify account needed for the agent). See the Apify docs.
Zapier, Make and n8n. Use the official Apify app: Zapier "Run Actor" action, Make "Run an Actor" module, or the n8n Apify node. Choose steadyline/website-contact-extractor, paste the input below, then use "Get dataset items" (or the run's dataset) to send results to Google Sheets, Slack, a CRM or a database.
API (any language). Run it and get the results in one call:
curl -X POST "https://api.apify.com/v2/acts/steadyline~website-contact-extractor/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": ["https://apify.com", "https://www.python.org"], "followContactPages": true, "maxPagesPerSite": 5}'
Or with the Python client (pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("steadyline/website-contact-extractor").call(run_input={"startUrls": ["https://apify.com", "https://www.python.org"], "followContactPages": true, "maxPagesPerSite": 5})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Works well with other Steadyline Data tools
- Tech-targeted lead list: filter domains with Tech Stack Detector (e.g. Shopify + Klaviyo), run this Actor on the matches, then clean the emails with Email Deliverability Checker. About $2.83 for 1,000 domains.
- Map, profile, contact: Site Discovery → Tech Stack Detector → this Actor, about $0.006 per domain.
- Related: Tech Stack Detector, Email Deliverability Checker, Site Discovery (sitemaps, robots.txt, llms.txt).
FAQ
Is this an email scraper? It extracts e-mail addresses that a website publishes on its own pages (homepage plus up to 19 same-site contact/about/imprint/team pages). It does not guess addresses, query search engines or buy data from brokers.
Does it find personal emails? Only what the site itself publishes. It's meant for business contact points. If you keep personal data such as a named employee's address, you need a lawful basis under GDPR/CCPA. See Acceptable use below.
What happens with sites that block bots or are down?
They are returned with status = unreachable or blocked-by-robots and are not charged.
Can I pass bare domains?
Yes. python.org, https://python.org and a deep page URL all work; one row is returned per site.
Can I run it on a schedule? Yes. Create an Apify Schedule (or a saved Task with a schedule) and connect a webhook or integration to receive results.
Need a feature or found a bug? Open an issue on the Issues tab of this page or email steadylinedata@proton.me. Built and maintained by Steadyline Data.
Acceptable use and GDPR
This tool is for finding business contact points that organizations publish on purpose, such as info@, sales@ or a switchboard number. You are responsible for how you use the results:
- Personal data (for example a named employee's email address) is protected under GDPR, UK GDPR, CCPA and similar laws. You need a lawful basis, such as legitimate interest with a documented balancing test, to store or contact it. You must honor opt-outs and data-subject requests.
- Follow anti-spam laws (CAN-SPAM, PECR, ePrivacy, CASL). Do not send bulk unsolicited messages.
- Only supply sites that you are allowed to process, and follow each site's terms of use.
- Don't use the results for harassment, profiling of individuals or reselling personal data.
Steadyline Data provides this tool as is and does not give legal advice.
Limits
Contacts that only appear after JavaScript runs, inside images, or behind forms or logins are not found. Obfuscated emails (e.g. "name [at] domain") are not decoded.