Fast Phone Number Extractor | Bulk, Any Website & Low Cost avatar

Fast Phone Number Extractor | Bulk, Any Website & Low Cost

Under maintenance

Pricing

$10.00 / 1,000 results

Go to Apify Store
Fast Phone Number Extractor | Bulk, Any Website & Low Cost

Fast Phone Number Extractor | Bulk, Any Website & Low Cost

Under maintenance

Fast Phone Number Extractor efficiently extracts phone numbers from static websites at high speed while keeping usage costs low. It detects various number formats, supports country code filtering. Ideal for cost-effective web scraping projects.

Pricing

$10.00 / 1,000 results

Rating

0.0

(0)

Developer

Muzaffer Kadir YILMAZ

Muzaffer Kadir YILMAZ

Maintained by Community

Actor stats

2

Bookmarked

74

Total users

1

Monthly active users

3 days ago

Last modified

Share

Fast Phone Number Extractor

Extract phone numbers from any website in bulk — fast and at low cost. Give it one or more URLs and it returns every valid phone number found on each page, correctly parsed and formatted.

Use this actor to:

  • Lead generation — collect contact numbers from a list of business websites
  • Directory building — enrich a company list with phone numbers
  • Data verification — check that a phone number listed elsewhere actually appears on a business's site
  • Contact discovery — quickly find the phone number on any single page

Features

  • Fast bulk extraction with inexpensive HTTP requests for the common case
  • Automatic JavaScript rendering when a number is not present in static HTML
  • Country-aware validation and national/international formatting
  • Per-page deduplication, source text, and match position for auditability
  • Run statistics that explain crawl coverage and browser fallback usage

How it works

  1. The actor visits each start URL and follows same-site links up to maxRequestsPerCrawl.
  2. It extracts and validates phone-like text using the selected country as a local-number hint.
  3. If static HTML contains no valid number, it retries that page once with JavaScript rendering.
  4. It writes one dataset item per page and a STATS record for the run.

Getting more results

  • Start from a contact or location page when you only need one business's number.
  • Increase maxRequestsPerCrawl when numbers may live on deeper pages.
  • Set the correct phoneCountryCode for local numbers without a + country prefix.
  • Results reflect phone numbers actually exposed by the website. Login walls, CAPTCHAs, and numbers embedded only in images are not bypassed.

What data you get

Each page you crawl returns:

FieldDescription
urlThe page that was crawled
titleThe page's title
phoneNumbersArray of phone numbers found (see below)
renderedWithBrowsertrue if the page needed JavaScript rendering to reveal its numbers

Each entry in phoneNumbers includes:

FieldDescription
numberNumber in E.164 international format, e.g. +12125550198
formattedNumberNumber formatted for its country, e.g. (212) 555-0198
countryDetected country code, e.g. US
textThe exact text the number was found in

Input

FieldTypeDescription
startUrlsarrayPages to extract phone numbers from
maxRequestsPerCrawlnumberMaximum number of pages to visit, including links found on the start pages (default: 1)
phoneCountryCodestringCountry hint for parsing numbers that aren't already in international format, e.g. US, TR, GB (default: US)

Examples

One contact page

{
"startUrls": [{ "url": "https://example-business.com/contact" }],
"maxRequestsPerCrawl": 1,
"phoneCountryCode": "US"
}

Turkish local numbers

{
"startUrls": [{ "url": "https://example.com/iletisim" }],
"maxRequestsPerCrawl": 1,
"phoneCountryCode": "TR"
}

Crawl several pages from multiple sites

{
"startUrls": [
{ "url": "https://example.com" },
{ "url": "https://example.org/contact" }
],
"maxRequestsPerCrawl": 20,
"phoneCountryCode": "GB"
}

Output sample

{
"url": "https://example-business.com/contact",
"title": "Contact Us",
"phoneNumbers": [
{
"number": "+12125550198",
"nationalNumber": "2125550198",
"formattedNumber": "(212) 555-0198",
"country": "US",
"text": "(212) 555-0198",
"position": { "start": 152, "end": 166 }
}
],
"renderedWithBrowser": false
}

Notes

  • Most sites are crawled with plain HTTP requests, which keeps this actor fast and cheap. If a page's static HTML has no phone numbers, it's automatically retried with a headless browser to catch numbers that only appear after JavaScript renders — most runs never need this, so it doesn't add cost or time by default.
  • phoneCountryCode only affects numbers written in a local (non-international) format. Numbers already written with a country code, e.g. +1 212 555 0198, are parsed correctly regardless.
  • The default key-value store contains a STATS record with finished/failed requests, pages with numbers, unique-number events, and browser fallback counts. uniqueNumbersFound is the sum of per-page unique numbers; the same number on two pages is counted twice.

License

ISC