Website Contact Scraper — Emails & Phones from a URL List API
Pricing
from $40.00 / 1,000 contact records
Website Contact Scraper — Emails & Phones from a URL List API
Paste a list of website URLs and extract every email, phone number, and social profile per domain — homepage plus auto-discovered contact, about, and team pages. A bulk URL-to-contact extractor: bring the domains, get one clean row per site. No API key. Pay per record.
Pricing
from $40.00 / 1,000 contact records
Rating
0.0
(0)
Developer
NexGenData
Maintained by CommunityActor stats
0
Bookmarked
144
Total users
11
Monthly active users
3 days ago
Last modified
Categories
Share
Website Contact Scraper
Extract emails, phones and social links from a list of website URLs. Feed it domains, get back one row per contact found (one row per email, phone number or social profile) — homepage plus auto-discovered contact/about/team pages (default 3 pages per site).
Output is a prospect list for your sales team, assembled from public web and business sources. Use it in line with applicable outreach and privacy law.
📊 Sample Output

url | domain | type | value | http_status | status |
|---|---|---|---|---|---|
| https://www.shopify.com | www.shopify.com | [email on record] | 200 | ok | |
| https://www.shopify.com | www.shopify.com | social | https://github.com/shopify | 200 | ok |
| https://www.shopify.com | www.shopify.com | social | https://linkedin.com/company/shopify | 200 | ok |
| https://www.shopify.com | www.shopify.com | social | https://facebook.com/shopify | 200 | ok |
| https://www.hubspot.com | www.hubspot.com | phone | +0008000503669 | 200 | ok |
| https://www.shopify.com | www.shopify.com | social | https://facebook.com/shopifyde | 200 | ok |
Real rows from run Czg5lvnD4R4hEbBSX on build 0.0.39 (2026-09-24), unedited apart from masked emails/phones and shortened long text; fields the source does not publish are empty.
⚙️ Sample inputs
This is the Store example input — the same input Apify's automated check runs — so it is proven to return rows on the current build. Paste it into the input form, or send it through the API, CLI or a schedule:
{"urls": ["https://www.shopify.com","https://www.hubspot.com","https://www.atlassian.com"],"crawl_contact_pages": true,"max_pages_per_site": 3,"request_timeout_secs": 20,"proxyConfiguration": {"useApifyProxy": true}}
🔧 Input reference
| Field | Type | Default | What it does |
|---|---|---|---|
urls | ['array', 'string'] | ["https://www.shopify.com", "https://www.hubspot.com", "htt… | Website URLs to scrape for contact info. Accepts a list of URLs OR a single URL string OR a comma/newline-separated list. Also accepts these alternative field names: startUrls, do… |
crawl_contact_pages | boolean | true | Also crawl /contact, /about, /team and similar pages for additional contact data. |
max_pages_per_site | integer | 3 | Maximum number of pages to visit per site (homepage + discovered contact pages). Defaults to 3 (homepage + contact + about — where contact details almost always live), which keeps… |
request_timeout_secs | integer | 20 | Per-request HTTP timeout in seconds. |
proxyConfiguration | object | {"useApifyProxy": true} | Apify proxy configuration. Residential is recommended for higher success rates. |
startUrls | ['array', 'string'] | Alternative name for urls. Accepts a list of URLs OR a single URL string OR comma/newline-separated. | |
domains | ['array', 'string'] | Alternative name for urls. Accepts a list of URLs OR a single URL string OR comma/newline-separated. | |
websites | ['array', 'string'] | Alternative name for urls. Accepts a list of URLs OR a single URL string OR comma/newline-separated. | |
targetUrls | ['array', 'string'] | Alternative name for urls. Accepts a list of URLs OR a single URL string OR comma/newline-separated. | |
siteUrls | ['array', 'string'] | Alternative name for urls. Accepts a list of URLs OR a single URL string OR comma/newline-separated. | |
url | string | Alternative — a single URL when you only need one. Comma-separated values are auto-split. | |
notionConnector | string | Optional. Connect your Notion workspace and the scraped contacts are also written as a Notion page in the same run — the Actor never sees your Notion credentials. Authorize a Noti… | |
notionParentId | string | Optional. The Notion page ID to create the page under. If blank, Notion creates a private page in your workspace. | |
supabaseConnector | string | Optional. Connect your own Supabase project and the results are also inserted into a table in the same run — the Actor never sees your Supabase credentials. Authorize a write-scop… | |
supabaseTable | string | "nexgendata_leads" | Target table in the public schema (created if missing, with id, a jsonb data column, and a scraped_at timestamp). Default: nexgendata_leads. |
supabaseProjectId | string | Your Supabase project reference (e.g. abcdefghijklmnop). Required unless your connector URL is already project-scoped. Find it in your project URL: supabase.com/dashboard/project/… | |
deliveryDedup | boolean | true | When on (default), records already delivered in a previous run are not delivered again to the same destination — so scheduled runs only push new items. Turn off to deliver every r… |
🧾 JSON sample record
One real record from run Czg5lvnD4R4hEbBSX (emails/phones masked, long text shortened):
{"url": "https://www.shopify.com","domain": "www.shopify.com","type": "email","value": "[email on record]","email": "[email on record]","http_status": 200,"status": "ok"}
💰 Pricing
| Event | Price (USD) | When it is charged |
|---|---|---|
Actor Start (apify-actor-start) | $5e-05 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
Contact record (apify-default-dataset-item) | $0.04 | Single result in the default dataset. |
Pay-per-event: you pay only for what the run delivers. A run that delivers nothing bills no result events (only the actor-start event, when the actor defines one). Example: a run that delivers 100 results costs 100 × $0.04 = $4.00 plus the start fee.
🔗 Related Actors
More from the NexGenData Leads, contacts & enrichment family:
- Company Logo API — Clearbit Logo Alternative
- Company SERP Snapshot Monitor
- Website Tech Stack Audit — Bulk BuiltWith Alternative API
- Domain Security Posture Checker — DNS, SPF, DMARC, TLS
- Email DMARC Auditor — SPF/DKIM/DMARC Bulk Check
- Bulk Email Validator — Verify & Clean Lists API
30 more in this family on the NexGenData Store page.
📊 What you get
Clean JSON, one row per contact (email, phone, or social profile) — a contact-rich site can produce 20+ rows. Every row has 6 core fields; social rows add platform and social_url, email rows add email, phone rows add phone:
url— site URL that was scrapeddomain— site domaintype—email|phone|socialvalue— the contact (email address, E.164-style phone such as+14155550142, or canonical profile URL)http_status— HTTP status of the site homepagestatus—okplatform— social rows only:linkedin,twitter,facebook,instagram,youtube,tiktok,githubsocial_url/email/phone— the value again under a type-specific key
Example row: {"url": "https://acme.io", "domain": "acme.io", "type": "email", "value": "sales@acme.io", "email": "sales@acme.io", "http_status": 200, "status": "ok"}
Pricing: $0.04 per delivered contact row (Pay-Per-Event) plus $0.00005 per run start — about 25 contact rows per $1. Pages crawled are not billed. Sites with no contacts, blocked/unreachable sites, and sites not processed within the run's time budget push no rows and cost nothing; the run status message reports each of these counts. Large lists are processed until the time budget is reached — the default 3 pages per site keeps a first run small.
🤖 Use with AI agents
Point Claude, the OpenAI Agents SDK, an n8n flow or any MCP-aware client at it and run prospecting on demand.
Agentic payments (x402): Supports agentic payment via x402 — agents can call this actor with USDC, no API key required.
🔗 Related lead-gen actors
The lead-gen workflow chain — found leads? verify → enrich → push to CRM:
- Find: B2B Leads Finder · Company Email Finder · Person Email Finder · Yellow Pages
- Enrich: Company Enrichment · B2B Contact Enricher · Lead List Enricher · Website Tech & Contact Audit
- Verify & clean: Email Verification · Bulk Email Validator · Lead List Cleaner
- Deliver: Leads to Notion CRM
Front door — Sales Intelligence MCP: the sales-intelligence agent that fronts this whole cluster → Sales Intelligence MCP
Public web & business-source data, assembled as sales-team prospect lists.
Validate the phone column too: Phone Number Validation — format, line type and carrier for every number in your list.