Phone Number Validator & Formatter (libphonenumber)
Pricing
from $0.50 / 1,000 phone number validateds
Phone Number Validator & Formatter (libphonenumber)
Validate and format phone numbers for 240+ countries with Google's libphonenumber data: E.164, international and national formats, mobile/landline type, original carrier, location, time zones. Extract numbers from text. Offline, no lookups.
Pricing
from $0.50 / 1,000 phone number validateds
Rating
0.0
(0)
Developer
oqen
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Clean up phone numbers from a CRM export, a lead list or a sign-up form. Every number is parsed with Google's libphonenumber metadata (via libphonenumber-js, the max dataset) and returned in standard formats with its type, country, original carrier, location and time zones.
Everything runs offline inside the Actor: no HLR lookups, no calls or SMS, no "who owns this number" databases. It is fast and cheap, and it doesn't touch personal data beyond what you send it.
What you get for each number
| Field | Example |
|---|---|
status / reason | valid, or invalid with too_short, too_long, not_a_valid_number_for_region, needs_country_code_or_default_country, not_a_number |
e164 | +14155552671, the format Twilio, WhatsApp and most CRMs want |
international / national / rfc3966 | +1 415 555 2671 / (415) 555-2671 / tel:+14155552671 |
type | MOBILE, FIXED_LINE, FIXED_LINE_OR_MOBILE, TOLL_FREE, VOIP, PREMIUM_RATE, SHARED_COST, PAGER, UAN, ... |
country, countryName, countryCode | US, United States, +1 |
carrier | Network the number range was originally assigned to, e.g. Vodafone. Numbers can be ported, so treat this as a hint. |
location | City or region from the prefix (San Francisco, CA, London) when it's more specific than the country |
timeZones | ["America/Los_Angeles"], handy for scheduling calls |
extension | 99 from +1 415 555 2671 ext. 99 |
Messy input is fine
00and US011international prefixes are converted to+- The UK-style
+44 (0)20...trunk zero is removed tel:links, dashes, dots, brackets, non-breaking characters and extensions are handled- Numbers without a country code are parsed with your defaultCountry
- Extract from text: paste a page or an email thread and every phone number in it is found and validated
Input example
{ "phoneNumbers": ["(415) 555-2671", "00351 912 345 678", "+44 (0)20 7946 0000"], "defaultCountry": "US" }
Output example
{ "input": "00351 912 345 678", "valid": true, "status": "valid", "e164": "+351912345678", "international": "+351 912 345 678","national": "912 345 678", "rfc3966": "tel:+351912345678", "countryCode": "+351", "country": "PT", "countryName": "Portugal","type": "MOBILE", "carrier": "Vodafone", "location": null, "timeZones": ["Atlantic/Azores", "Europe/Lisbon"] }
Accuracy
The test suite cross-checks 2,019 numbers across all 245 regions (fixed line, mobile, toll-free and truncated variants) against Google's reference google-libphonenumber. They agree on validity, E.164 and type for 99.85%. The three differences come from small metadata version gaps (Saint Helena number types, one Paraguay range).
"Valid" means the number matches the official numbering plan for its country. It does not prove that the line is currently connected.
Pricing
Pay per event: one phone-validated event per number returned. Duplicates, blank and non-numeric rows (not_a_number), and numbers dropped by onlyValid or maxNumbers are free. 100,000 numbers usually take under a minute.