Phone Number Validator: Bulk, Country, Mobile or Landline avatar

Phone Number Validator: Bulk, Country, Mobile or Landline

Pricing

$0.30 / 1,000 number checkeds

Go to Apify Store
Phone Number Validator: Bulk, Country, Mobile or Landline

Phone Number Validator: Bulk, Country, Mobile or Landline

Validate and clean phone number lists: valid or not, country, mobile / landline / toll-free / VoIP, E.164 and international format, extensions and duplicates. 240+ countries, Google's libphonenumber data. CSV link input. Nothing is dialed.

Pricing

$0.30 / 1,000 number checkeds

Rating

0.0

(0)

Developer

SwiftKit

SwiftKit

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

16 days ago

Last modified

Share

Clean a phone number list in seconds. For every number you get:

  • valid / possible / invalid, and the reason (too_short, too_long, unknown_country_code…)
  • Country and calling code
  • Line type: mobile, landline, toll-free, premium rate, VoIP, shared cost…
  • Clean formats: E.164 (+14155552671, what CRMs and SMS tools want), international, national and a tel: link
  • Extensions split out (ext. 12)
  • Duplicates: 090-1234-5678 and +81 90 1234 5678 are the same number

It uses the numbering-plan data from Google's open-source libphonenumber, covering 240+ countries and regions. No number is called, texted or looked up anywhere. It's fast, cheap and private.

Who it's for

  • CRM and marketing ops: normalize numbers to E.164 before importing or sending SMS.
  • Sign-up forms and lead lists: catch typos and fake numbers like 12345.
  • Sales teams: separate mobile from landline numbers.
  • Developers and AI agents: one call, consistent JSON.

Input

  • Phone numbers: one per line, in any common format.
  • Or a CSV link (for example a Google Sheet published as CSV). Every phone-looking cell is used.
  • Default country (optional): for numbers written without +country code, like 020 7946 0958 with GB.

Output

{
"input": "090-1234-5678",
"valid": true,
"result": "valid",
"reason": null,
"e164": "+819012345678",
"international": "+81 90 1234 5678",
"national": "090-1234-5678",
"countryCode": "JP",
"country": "Japan",
"callingCode": "+81",
"type": "mobile",
"extension": null,
"uri": "tel:+819012345678",
"isDuplicate": false
}
resultmeaning
validRight length and in a number range that's in use for that country.
possibleRight length, but in a range not assigned (yet). Often a typo.
invalidWrong length, unknown country code, or not a number.

A SUMMARY record in the key-value store counts each result and the duplicates.

Pricing

You pay per number checked. See the Pricing tab.

Limits, honestly

  • "Valid" means the number fits the country's official numbering plan. It does not mean the line is active or who owns it. Checking that needs a carrier lookup, which this tool doesn't do.
  • Some countries don't separate mobile and landline ranges (the US and Canada, for example). Those numbers show landline_or_mobile.
  • Numbers keep moving between carriers, so the carrier isn't reported.
  • We process only the numbers you send and don't store or reuse them.

More tools from SwiftKit

Questions?

Open an issue on the Issues tab.