Website Phone Number Finder ✅ $2/1k avatar

Website Phone Number Finder ✅ $2/1k

Pricing

from $2.00 / 1,000 saved website phone results

Go to Apify Store
Website Phone Number Finder ✅ $2/1k

Website Phone Number Finder ✅ $2/1k

From $2.00 / 1,000 saved phone results. Fast website phone number finder for public business phone numbers, tel links, social profiles, source URLs, and contact-page diagnostics from domains.

Pricing

from $2.00 / 1,000 saved website phone results

Rating

0.0

(0)

Developer

Hundevmode Labs

Hundevmode Labs

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

Website Phone Number Finder: Scrape Phone Numbers from Websites

From $2.00 / 1,000 saved phone results on paid Apify plans. Use this website phone number finder and business phone number scraper to scan domains or website URLs and extract public phone numbers, tel: links, social profiles, source URLs, and crawl diagnostics.

This actor is built for fast domain phone number scraping. Paste a list of websites, run a shallow browserless crawl, and get one clean result per website where at least one public phone number is found. It checks the homepage or supplied URL, follows likely contact/about/legal/team pages, and saves phone-first lead records by default.

Use it when you already have domains from Google Maps, CRMs, spreadsheets, directories, search results, company databases, or lead lists and need public phone contacts from each website.

AI agent skill

Use the dedicated Website Phone Number Finder Apify agent skill when you want AI agents to normalize domain lists, run this actor through Apify, control spend with maxTotalChargeUsd, and return public website phone rows for outreach, CRM, Sheets, n8n, BI, or enrichment workflows.

Install with skills.sh-compatible agents:

npx skills add hundevmode/apify-website-phone-number-finder-agent-skill \
--skill website-phone-number-finder-apify

ClawHub skill slug: website-phone-number-finder-apify.

At a glance

NeedUse this actor for
Website phone scrapingFind public phone numbers from company websites
Domain phone number finderTurn domains and URLs into structured phone lead records
Business phone scraperExtract visible phone numbers and tel: links from contact pages
Lead generationEnrich existing website lists with phone-ready outreach data
Sales enrichmentAdd phones, source URLs, and social profiles to domain lists
CRM cleanupConvert raw domains into normalized phone contact records
Agency prospectingScan niche website lists collected from Google Maps, directories, or search results
Bulk exportDownload phone results as JSON, CSV, Excel, or through the Apify API

Quick start

Start with a list of domains. The actor accepts bare domains and full URLs in the same input field.

{
"domains": [
"alchemist.dk",
"disfrutarbarcelona.com",
"diverxo.com"
],
"maxResults": 1000,
"resultMode": "phonesOnly",
"maxPagesPerWebsite": 3,
"concurrency": 100,
"extractPhones": true,
"extractEmails": false,
"extractSocials": true,
"includePersonalData": true
}

Pricing

The actor uses Apify pay-per-event pricing. The primary event is website-phone-saved, charged only when a website phone result is saved to the dataset.

EventFreePaid plans
Saved website phone result$5.00 / 1,000 saved phone results$2.00 / 1,000 saved phone results
Actor start$0.00005 per start event$0.00001 per start event

Scanned websites that do not match the selected result mode are not charged as saved phone results. The actor respects Apify maxTotalChargeUsd and stops before saving more paid results than the run budget allows.

What it extracts

Data groupExample fields
Website identityinput, url, domain, status
Phone numbersphones, phoneDetails.phone, phoneDetails.sourceUrl
Optional emailsemails, emailDetails.email, emailDetails.type, emailDetails.sourceUrl, emailDetails.domainMatch
Social linksfacebooks, instagrams, linkedIns, twitters, youtubes, tiktoks, socialLinks
Crawl diagnosticspagesFetched, fetchedUrls, httpStatusCodes, errors, durationMs
Contact countscontactSignals.phones, contactSignals.emails, contactSignals.socialProfiles, contactSignals.pagesFetched

Phone numbers are normalized to an international-style format when possible. For example, many US 10-digit numbers are returned as +1..., while international + numbers keep their country code.

Input options

Domains or URLs

Use domains for domains and URLs. Both formats are accepted:

{
"domains": [
"example.com",
"https://example.com/contact"
]
}

The actor tries HTTPS, WWW, and HTTP variants when needed. For bulk phone scraping, paste one domain per row. For exact-page extraction, paste full URLs such as contact pages, locations pages, booking pages, or company profile pages.

Result mode

ModeSaved dataset items
phonesOnlyOnly websites where at least one public phone number was found. This is the default.
contactsOnlyWebsites with at least one phone, optional email, or social profile.
allWebsitesAll scanned websites, including websites where no phone number was found.

Crawl depth and speed

FieldWhat it does
maxPagesPerWebsiteNumber of pages to fetch per website. Default is 3.
concurrencyNumber of websites scanned in parallel. Default is 100.
requestTimeoutSecsPer-page timeout. Default is 5 seconds.
sameDomainOnlyFollow only same-domain contact/about links. Social links are still extracted.

The actor prioritizes URLs containing contact, about, team, staff, impressum, imprint, legal, privacy, reservation, booking, and similar contact-page hints.

Contact fields

FieldWhat it does
extractPhonesExtract phone numbers from visible text and tel: links. Keep this enabled for phone scraping.
extractEmailsOptionally include public emails as secondary fields. Disabled by default.
extractSocialsExtract public social media profile links.
includePersonalDataInclude personal LinkedIn URLs and person-like emails when optional email extraction is enabled.

How it works

  1. Normalizes every domain or URL.
  2. Tries HTTPS, WWW, and HTTP variants when needed.
  3. Downloads HTML with a Chrome-like HTTP client optimized for high concurrency.
  4. Extracts phone numbers from visible text and tel: links.
  5. Scores internal links and follows the best contact/about/legal/team pages.
  6. Optionally extracts emails and social profile links.
  7. Applies resultMode.
  8. Saves one dataset item per matching website using the PPE result event.
  9. Writes RUN_SUMMARY with processed count, saved count, filters, and budget guard details.

The default path is HTTP-first and browserless for speed. It uses a Chrome-like HTTP client with high concurrency, so large domain lists can run faster than browser-first website contact scrapers.

Output example

{
"input": "alchemist.dk",
"url": "https://alchemist.dk/",
"domain": "alchemist.dk",
"status": "found",
"phones": ["+4531716161"],
"phoneDetails": [
{
"phone": "+4531716161",
"sourceUrl": "https://alchemist.dk/"
}
],
"emails": [],
"emailDetails": [],
"facebooks": [],
"instagrams": ["https://www.instagram.com/restaurantalchemist/"],
"linkedIns": [],
"contactSignals": {
"emails": 0,
"phones": 1,
"socialProfiles": 1,
"pagesFetched": 3
},
"pagesFetched": 3,
"fetchedUrls": [
"https://alchemist.dk/",
"https://alchemist.dk/contact",
"https://alchemist.dk/about"
],
"durationMs": 1240
}

Run summary

Every run writes RUN_SUMMARY to the default key-value store.

Useful fields:

FieldMeaning
inputWebsitesNumber of submitted websites
processedNumber of websites scanned
savedNumber of saved dataset items
filteredOutWebsites scanned but not saved due to result mode
failedWebsites that could not be fetched
chargeLimitReachedWhether Apify PPE budget stopped the run
budget.remainingItemsPPE budget guard estimate before saving
exhaustionReasontarget_reached, input_exhausted, or charge_limit_reached

Per-website errors are stored in the item and run summary. The actor is designed to finish successfully and report failed websites in RUN_SUMMARY instead of failing the whole run because one domain is slow, invalid, or blocked.

API usage

curl -X POST "https://api.apify.com/v2/acts/x_guru~website-phone-number-finder/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"domains": ["alchemist.dk", "disfrutarbarcelona.com"],
"resultMode": "phonesOnly",
"maxPagesPerWebsite": 3,
"concurrency": 100,
"extractPhones": true,
"extractEmails": false,
"extractSocials": true
}'

Tips

  • Use phonesOnly for paid phone lead extraction and website phone scraping.
  • Use contactsOnly if social profiles or optional emails are useful even when no phone number is found.
  • Increase maxPagesPerWebsite to 5-10 for sites where phones are hidden on locations, booking, contact, legal, or imprint pages.
  • Keep requestTimeoutSecs low for large batches so slow websites do not block throughput.
  • Set an Apify maximum cost per run when processing very large domain lists.
  • Paste full contact-page URLs when you already know the exact page that contains phone numbers.

Common searches this actor covers

  • website phone number finder
  • website phone scraper
  • domain phone number finder
  • business phone number scraper
  • company phone finder
  • phone number scraper
  • phone scraper for lead generation
  • website contact phone extractor