Contact Details Scraper
/vdrmota/contact-info-scraperasync$0.005 / resultEmail 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. Runs as an Apify actor (20–120 s); results are dataset rows.
Charged per returned row plus the flat fee.
startUrlsarrayrequiredThe list of web pages from which the scraper will start crawling.You can also pass Linktree (linktr.ee) link-in-bio pages. The Actor reads every link on the profile and scrapes those linked sites for contact details, even with Stay within domain 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 Start URLs that the Actor will crawl. If 0, 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.Links found on a Linktree (linktr.ee) 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 0, meaning no leads are scraped.⚠️ Some fields contain personal data, 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 u (default 0)
leadsEnrichmentDepartmentsarrayInclude only specific departments (e.g. Sales, Marketing, or C-Suite). Only works when the Maximum leads per domain add-on (maximumLeadsEnrichmentRecords) 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 emailVerification object with the verification result and quality assessment.Charged (decisive results): valid (ok), invalid, and disposable email addresses.Not charged: catch-all, (default false)
scrapeSocialMediaProfilesobjectEnriched profiles are available in the Social profiles 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)
waitUntilstringSelect when a page should be considered loaded so that the Actor can start scraping it. *Only works with the browser.* (default "domcontentloaded")
commit, domcontentloaded, load, networkidle
proxyConfigobjectrequiredProxy 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})
| Field | Type | Required | Description |
|---|---|---|---|
| startUrls | array | yes | The list of web pages from which the scraper will start crawling.You can also pass Linktree (linktr.ee) link-in-bio pages. The Actor reads every link on the profile and scrapes those linked sites for contact details, even with Stay within domain enabled. |
| maxRequestsPerStartUrl | integer | — | The maximum number of pages that will be enqueued from each start URL you provide. |
| mergeContacts | boolean | — | Enable 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) |
| maxDepth | integer | — | The maximum number of links away from the Start URLs that the Actor will crawl. If 0, the scraper will not follow any links. If empty or null, the scraper will follow links to an arbitrary depth. |
| maxRequests | integer | — | The 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. |
| sameDomain | boolean | — | If set, the scraper will only follow links within the same domain as the referring page.Links found on a Linktree (linktr.ee) page are an exception - they are always followed, even when this is enabled. (default true) |
| considerChildFrames | boolean | — | If 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) |
| maximumLeadsEnrichmentRecords | integer | — | Set the maximum number of lead records to scrape per domain found. Default is 0, meaning no leads are scraped.⚠️ Some fields contain personal data, 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 u (default 0) |
| leadsEnrichmentDepartments | array | — | Include only specific departments (e.g. Sales, Marketing, or C-Suite). Only works when the Maximum leads per domain add-on (maximumLeadsEnrichmentRecords) is enabled. Note that some job titles may be miscategorized. |
| verifyLeadsEnrichmentEmails | boolean | — | When enabled, verifies the email address of each lead extracted during business leads enrichment. Each lead receives an emailVerification object with the verification result and quality assessment.Charged (decisive results): valid (ok), invalid, and disposable email addresses.Not charged: catch-all, (default false) |
| scrapeSocialMediaProfiles | object | — | Enriched profiles are available in the Social profiles 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}) |
| useBrowser | boolean | — | If set, the scraper will use a browser for crawling the pages. (default false) |
| waitUntil | string (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 | object | yes | Proxy 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}) |
Run it
Or ask your agent: it will call inspect for this schema and run it over MCP.