πŸ“ž Phone Number Validator - Bulk, Line Type & Country avatar

πŸ“ž Phone Number Validator - Bulk, Line Type & Country

Pricing

from $4.65 / 1,000 phone validateds

Go to Apify Store
πŸ“ž Phone Number Validator - Bulk, Line Type & Country

πŸ“ž 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

Renzo Madueno

Maintained by Community

Actor 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

  1. 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.
  2. Split mobile from landline. A fixed line cannot receive a text β€” isMobile and not_sms_reachable let you build an SMS list that actually delivers.
  3. Normalize everything to E.164. +14155552671 is 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

FieldMeaning
isValidRight length and an allocated prefix under the country's numbering plan. Filter on this.
isPossibleLength is plausible only β€” separates "typo" from "looks real but unallocated".
e164 / national / internationalThe three formats; store e164.
country / countryCallingCodeISO code (US, GB, DE…) and dialing prefix.
type / lineTypeMOBILE, FIXED_LINE, FIXED_LINE_OR_MOBILE, VOIP, TOLL_FREE, PREMIUM_RATE, SHARED_COST, UAN, PAGER β€” plus a plain-English label.
isMobileSMS candidate (mobile or the ambiguous fixed-or-mobile).
riskFlagsinvalid, premium_rate, toll_free, shared_cost, uan, pager, not_sms_reachable. Empty = clean, textable.
reasonok, 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, drop not_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 isValid rows.
  • Routing β€” mobiles to SMS, landlines to the dialer, VoIP flagged for review.