📞 Phone Number Validator avatar

📞 Phone Number Validator

Pricing

Pay per event

Go to Apify Store
📞 Phone Number Validator

📞 Phone Number Validator

Validate and format phone numbers for 250+ countries using google-libphonenumber. Detect type (mobile, landline, VoIP), country, E.164 format. Fully offline, no API key, bulk processing.

Pricing

Pay per event

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Validate and format phone numbers for 250+ countries using google-libphonenumber. Detect type (mobile, landline, VoIP), country, E.164 format.

Store Quickstart

Start with the Quickstart template (10 sample numbers). For CRM cleaning, use Bulk Validation with defaultCountry set.

Key Features

  • 📞 250+ countries — Every country's numbering plan supported
  • 🏷️ Type detection — Mobile, landline, VoIP, toll-free, premium
  • 📝 Multiple format outputs — E.164, international, national
  • 🌍 Country detection — Auto-detect country from number format
  • Offline processing — google-libphonenumber runs locally, no network
  • 🔑 No API key needed — Fully offline validation

Use Cases

WhoWhy
CRM managersClean phone number columns in customer databases
Sales operationsValidate lead phone numbers before outreach
SaaS onboardingReal-time validation at signup
International complianceEnforce E.164 format for SMS/voice APIs
Data migrationNormalize phone numbers across systems

Input

FieldTypeDefaultDescription
numbersstring[](required)Phone numbers to validate (max 1000)
defaultCountrystringUSDefault ISO country code

Input Example

{
"numbers": ["+1-555-1234567", "03-1234-5678", "020 7946 0958"],
"defaultCountry": "JP"
}

Output

FieldTypeDescription
inputstringOriginal phone string
validbooleanWhether the number is valid
e164stringE.164 formatted version
countrystringISO country code
countryNamestringFull country name
carrierstringCarrier name (if known)
lineTypestringmobile, fixed-line, voip, etc.
errorstringnull

Output Example

{
"input": "03-1234-5678",
"isValid": true,
"type": "FIXED_LINE",
"formatted": {
"e164": "+81312345678",
"international": "+81 3-1234-5678",
"national": "03-1234-5678"
},
"country": "Japan",
"countryCode": "JP"
}

API Usage

Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.

cURL

curl -X POST "https://api.apify.com/v2/acts/taroyamada~phone-number-validator/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "numbers": ["+1-555-1234567", "03-1234-5678", "020 7946 0958"], "defaultCountry": "JP" }'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/phone-number-validator").call(run_input={
"numbers": ["+1-555-1234567", "03-1234-5678", "020 7946 0958"],
"defaultCountry": "JP"
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('taroyamada/phone-number-validator').call({
"numbers": ["+1-555-1234567", "03-1234-5678", "020 7946 0958"],
"defaultCountry": "JP"
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Tips & Limitations

  • Use defaultCountry: "US" for ambiguous numbers without country codes.
  • Filter by lineType: "mobile" for SMS marketing campaigns.
  • Combine with Email Deliverability Checker for full lead-data hygiene.
  • Powered by libphonenumber — Google's industry-standard library.

FAQ

How accurate is this?

Uses google-libphonenumber — Google's official phone validation library. Industry standard.

Does it verify if the number is in service?

No — format validation only. Actual reachability requires an SMS/voice ping (not offered).

What's a 'valid' number?

One with correct country code, valid length, and matching number plan. May still be unassigned.

Type detection accuracy?

Very high for countries with strict mobile/landline separation (US, JP, DE). Weaker for Asia/Africa.

Does this charge per validation like Twilio Lookup?

No — flat per-item dataset pricing. No per-API-call fees.

Will it call the number to verify it's active?

No — format and metadata validation only. No HLR lookups.

Lead Generation & B2B cluster — explore related Apify tools:

Cost

Pay Per Event:

  • actor-start: $0.01 (flat fee per run)
  • dataset-item: $0.002 per output item

Example: 1,000 items = $0.01 + (1,000 × $0.002) = $2.01

No subscription required — you only pay for what you use.