π Phone Number Validator - Bulk, Line Type & Country
Pricing
from $4.65 / 1,000 phone validateds
π Phone Number Validator - Bulk, Line Type & Country
Validate and enrich phone numbers in bulk for any country: valid/possible, line type (mobile/landline/VoIP), country, E.164 format, and outreach risk flags. Offline libphonenumber engine, no API key, no per-lookup fees. A NumVerify/Twilio Lookup alternative for cleaning international lead lists.
Pricing
from $4.65 / 1,000 phone validateds
Rating
0.0
(0)
Developer
Renzo Madueno
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
π Phone Number Validator β Bulk, International, Line Type
Validate and normalize any list of phone numbers β mixed countries, messy formats β into valid/invalid, canonical E.164, country, and line type (mobile / landline / VoIP / toll-free / premium-rate), with outreach risk flags. For SMS campaign prep, CRM hygiene and call-center list cleaning.
Pricing: $0.005 per number validated. Runs Google's libphonenumber engine entirely offline β no API key, no per-lookup service.
π₯ Video walkthrough
Start here: three jobs this does in one pass
- Kill the numbers that waste money. Invalid numbers your SMS platform still charges you to attempt; premium-rate lines that rack up charges; toll-free IVRs that aren't people. All flagged in
riskFlags. - Split mobile from landline. A fixed line cannot receive a text β
isMobileandnot_sms_reachablelet you build an SMS list that actually delivers. - Normalize everything to E.164.
+14155552671is the one format SMS APIs, CRMs and dialers universally accept. Store that column and your routing problems disappear.
Bulk international phone number validator with line type detection
The engine is Google's libphonenumber numbering-plan metadata, bundled and run offline β the same library behind most paid lookup APIs' basic layer. That makes this Actor:
- International by default β every country's numbering plan; local-format numbers are interpreted via your
defaultCountry. - Fast β no network call per number; thousands of numbers validate in seconds.
- Keyless β nothing to sign up for, unlike NumVerify or Twilio Lookup, which meter the same basic checks per request behind an API key.
Long-tail jobs: validate phone numbers in bulk free of API keys, check if a number is mobile or landline before texting, convert a phone list to E.164, detect premium-rate numbers in a purchased list.
Where a paid lookup still wins
libphonenumber is offline metadata. It proves a number is valid and typed (e.g. mobile in GB) β it does not do a live carrier/HLR query, so it can't name the current carrier or confirm the line is active or ported. This Actor doesn't invent that data. The economical pattern: clean the whole list here for $0.005/number, then run a paid HLR lookup only on the survivors where live status truly matters.
Real input β real output
{"phoneNumbers": ["+14155552671", "+442071838750", "2025551234"],"defaultCountry": "US"}
{"input": "+442071838750","isValid": true,"isPossible": true,"e164": "+442071838750","national": "020 7183 8750","international": "+44 20 7183 8750","country": "GB","countryCallingCode": "44","type": "FIXED_LINE","lineType": "Landline (fixed line)","isMobile": false,"riskFlags": ["not_sms_reachable"],"reason": "ok"}
input echoes your original string so you can join results back to source rows. The dataset has a ready table view and exports to CSV, JSON, Excel or the API.
Field guide
| Field | Meaning |
|---|---|
isValid | Right length and an allocated prefix under the country's numbering plan. Filter on this. |
isPossible | Length is plausible only β separates "typo" from "looks real but unallocated". |
e164 / national / international | The three formats; store e164. |
country / countryCallingCode | ISO code (US, GB, DEβ¦) and dialing prefix. |
type / lineType | MOBILE, FIXED_LINE, FIXED_LINE_OR_MOBILE, VOIP, TOLL_FREE, PREMIUM_RATE, SHARED_COST, UAN, PAGER β plus a plain-English label. |
isMobile | SMS candidate (mobile or the ambiguous fixed-or-mobile). |
riskFlags | invalid, premium_rate, toll_free, shared_cost, uan, pager, not_sms_reachable. Empty = clean, textable. |
reason | ok, possible-but-invalid, invalid-number, unparseable, empty-input. |
FAQ β what buyers ask before running a list
Can it tell me if a phone number is mobile or landline?
Yes β that's the type/lineType/isMobile trio, derived from the country's numbering plan. Landlines additionally get not_sms_reachable so SMS lists exclude them automatically.
Does it work for international numbers, or US only?
Every country. Numbers with +country code parse as-is; local-format numbers are interpreted with defaultCountry (set it to GB, DE, PE, etc. to match your list).
Will it tell me the carrier or whether the line is active? No β that requires a live HLR query, which this offline engine can't and won't fake. You get validity, country, format and line type: enough for 90% of list-cleaning. Run paid lookups only on the cleaned survivors.
What's isValid vs isPossible?
isPossible checks length only; isValid also checks the prefix is actually allocated. A row with isPossible: true, isValid: false looks real but isn't a working allocation.
How much does cleaning 10,000 numbers cost? $50 flat ($0.005 each), and it finishes in well under a minute since validation is offline. No idle-time compute charges.
Do duplicates get billed twice? No β the input list is de-duplicated (whitespace-insensitive) before validation.
Can I run it automatically when new leads arrive? Yes: schedule it in Apify Console or call it from the API/SDK (Node, Python), then pipe results to Google Sheets, Zapier, Make or a webhook.
What do I run on the email column of the same list? The sibling Bulk Email Verifier β same keyless, pay-per-result approach for emails (MX, disposable, role checks). Contacts often come from the Website Contact Finder upstream.
Typical workflows
- SMS campaign prep β keep
isMobile: true, dropnot_sms_reachable, export E.164. - CRM import hygiene β one canonical phone column, invalids and premium-rate stripped.
- Form validation at scale β batch-validate user-typed numbers in the right country.
- Purchased-list triage β measure list quality instantly by the share of
isValidrows. - Routing β mobiles to SMS, landlines to the dialer, VoIP flagged for review.