Apify Store
AS
Apify Store
/vdrmota/contact-info-scraper

Extract Contact Info from Sites

Email extractor and lead scraper to extract and download emails, phone numbers, Facebook, Twitter, LinkedIn, Instagram, Threads, Snapchat, and Telegram profiles from any website. Extract contact information at scale from lists of URLs and download the data as Excel, CSV, JSON, HTML, and XML.

liveverifiedasyncdegraded · 6.9s~30s typical
emailsphonescontactleads
$0.0020
per result + $0.01 call
plus $0.001 platform fee per run
Usage-based actor: event charges passed through at cost plus 25%
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /vdrmota/contact-info-scraper for me.

Input

FieldTypeDescription
startUrls*arrayThe list of web pages from which the scraper will start crawling.<br><br>You can also pass <a href="https://linktr.ee">Linktree</a> (<code>linktr.ee</code>) link-in-bio pages. The Actor reads every link on the profile and scrapes those linked sites for contact details, even with <b>Stay within domain</b> enabled.
maxRequestsPerStartUrlintegerThe maximum number of pages that will be enqueued from each start URL you provide.
mergeContactsbooleanEnable this option to merge all contacts and social media from every page of the same start URL into a single, clean result row. default true
maxDepthintegerThe maximum number of links away from the <b>Start URLs</b> that the Actor will crawl. If <code>0</code>, the scraper will not follow any links. If empty or null, the scraper will follow links to an arbitrary depth.
maxRequestsintegerThe maximum number of pages the scraper will load. It is always a good idea to limit the number of pages, otherwise the scraper might run infinitely or consume too many resources.
sameDomainbooleanIf set, the scraper will only follow links within the same domain as the referring page.<br><br>Links found on a <a href="https://linktr.ee">Linktree</a> (<code>linktr.ee</code>) page are an exception - they are always followed, even when this is enabled. default true
considerChildFramesbooleanIf set, the scraper will also extract contact information from iframes. You might not always want this (e.g. it will include data from online ads). default true
maximumLeadsEnrichmentRecordsintegerSet the maximum number of lead records to scrape per domain found. Default is <code>0</code>, meaning no leads are scraped.<br><br>⚠️ Some fields contain <b>personal data</b>, which is protected by GDPR in the EU and by other regulations worldwide. Only scrape personal data if you have a legitimate reason to do so; if you're unsure, consult an attorney.<br><br>To keep leads relevant, large chains and online platforms (e.g. social media, retail giants, food delivery) are filtered out automatically. default 0
leadsEnrichmentDepartmentsarrayInclude only specific departments (e.g. Sales, Marketing, or C-Suite). Only works when the <b>Maximum leads per domain</b> add-on (<code>maximumLeadsEnrichmentRecords</code>) is enabled. Note that some job titles may be miscategorized.
verifyLeadsEnrichmentEmailsbooleanWhen enabled, verifies the email address of each lead extracted during business leads enrichment. Each lead receives an <b>emailVerification</b> object with the verification result and quality assessment.<br><br><b>Charged (decisive results):</b> valid (<code>ok</code>), invalid, and disposable email addresses.<br><b>Not charged:</b> catch-all, unknown, and error results.<br><br>⚠️ This add-on requires business leads enrichment to be enabled. default false
scrapeSocialMediaProfilesobjectEnriched profiles are available in the <b>Social profiles</b> output tab. See the section description above for what data is retrieved and how it's priced. default {"facebooks":false,"instagrams":false,"youtubes":false,"tiktoks":false,"twitters":false}
useBrowserbooleanIf set, the scraper will use a browser for crawling the pages. default false
waitUntilstring (commit | domcontentloaded | load | networkidle)Select when a page should be considered loaded so that the Actor can start scraping it. *Only works with the browser.* default "domcontentloaded"
proxyConfig*objectProxy servers let you bypass website protections, avoid IP address blocking, and view content for other countries. Try to use a proxy if you are experiencing timeout errors. default {"useApifyProxy":true}

Call it

curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
  -H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
  -d '{"provider":"apify","endpoint":"/vdrmota/contact-info-scraper","input":{"startUrls":[{"url":"https://example.com"}],"maxDepth":1},"wait":false}'
poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."
cli
npx cracked-ai run -p apify -e /vdrmota/contact-info-scraper -i '{"startUrls":[{"url":"https://example.com"}],"maxDepth":1}' -w 120
mcp
run_tool({ provider: "apify", endpoint: "/vdrmota/contact-info-scraper", input: {"startUrls":[{"url":"https://example.com"}],"maxDepth":1}, wait: false })

Try it

Runs against your signed-in workspace balance. Sign in if you have not.