Bulk Phone Number Validator & Formatter avatar

Bulk Phone Number Validator & Formatter

Pricing

from $0.80 / 1,000 phone number validateds

Go to Apify Store
Bulk Phone Number Validator & Formatter

Bulk Phone Number Validator & Formatter

Bulk phone number validator and formatter for lists of up to 10,000 numbers. Checks each number against its country numbering plan and returns E.164, international and national formats, the country and the line type (mobile, landline, VoIP, toll-free...). Works offline: no number is sent anywhere.

Pricing

from $0.80 / 1,000 phone number validateds

Rating

0.0

(0)

Developer

UHQxx

UHQxx

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Security

Limited permissions

Share

What is Phone Number Validator?

Phone Number Validator checks a list of phone numbers and cleans them up in seconds. For each number it tells you whether it is valid for its country, gives you the E.164, international and national formats, the country, and the line type (mobile, landline, VoIP, toll-free, premium-rate...). You can validate up to 10,000 numbers per run and export the result as JSON, CSV or Excel.

What makes it different: it works fully offline. No number is called, looked up or sent to a third-party service, nothing is guessed or enriched, and no phone number is written in the logs.

What can this phone validator do?

  • Validate numbers written in any common way: 01 23 45 67 89, 06.12.34.56.78, +33 6 12 34 56 78, 0033612345678, tel:+33612345678.
  • Check each number against the numbering plan of its country (valid length and valid number range).
  • Return clean formats ready for a CRM or an SMS tool: E.164 (+33612345678), international (+33 6 12 34 56 78) and national (06 12 34 56 78).
  • Detect the line type: mobile, landline, VoIP, toll-free, premium-rate, shared-cost and more.
  • Explain every verdict in plain English (Number is too short, Unknown country calling code...).
  • Remove duplicates, even when the same number is written in different ways.
  • Skip the numbers in your exclusion list.

Who is it for?

  • Marketing and sales teams cleaning a contact list before a campaign or a CRM import.
  • Developers who need a simple number check inside an import or sign-up workflow, through the Apify API.
  • Anyone who wants consistent phone formats across several countries.

3 ways to use it

  1. Clean a list before an SMS or call campaign. Remove numbers that cannot exist and review the risky ones (premium-rate, toll-free...).
  2. Standardise formats at import. Turn 06 12 34 56 78, 0612345678 and +33 6 12 34 56 78 into one E.164 value.
  3. Separate mobile from landline numbers. Use the numberType column to route messages to mobiles and calls to landlines.

Example output

Real output from the Actor (fictional numbers):

[
{
"phoneNumber": "01 23 45 67 89",
"verdict": "ok",
"reason": "Valid landline number (FR)",
"isValid": true,
"e164": "+33123456789",
"international": "+33 1 23 45 67 89",
"national": "01 23 45 67 89",
"country": "FR",
"countryCallingCode": "33",
"numberType": "FIXED_LINE",
"isPossible": true
},
{
"phoneNumber": "0899 12 34 56",
"verdict": "risky",
"reason": "Valid premium-rate (surcharged) number (FR): not an ordinary line to reach a person",
"isValid": true,
"e164": "+33899123456",
"international": "+33 899 12 34 56",
"national": "0 899 12 34 56",
"country": "FR",
"countryCallingCode": "33",
"numberType": "PREMIUM_RATE",
"isPossible": true
},
{
"phoneNumber": "12345",
"verdict": "invalid",
"reason": "Number is too short",
"isValid": false,
"e164": null,
"international": null,
"national": null,
"country": null,
"countryCallingCode": null,
"numberType": null,
"isPossible": false
}
]

How to use it

  1. Open the Actor on Apify and paste your numbers in Phone numbers (one per line; commas and semicolons also work).
  2. Set the Default country (FR by default) for the numbers written without a + and a country code. Numbers that start with + keep their own country.
  3. Optional: fill the Exclusion list with numbers that must not be processed (see the GDPR section).
  4. Click Start, then open the Results table or export it as JSON, CSV or Excel. A short run summary (totals only) is saved in the SUMMARY record of the key-value store.

You can also run it from your own tools through the Apify API, on a schedule, or from integrations such as Make, Zapier or n8n.

Input

FieldMeaningDefault
phoneNumbersNumbers to check (required).none
defaultCountryTwo-letter country code (FR, DE, GB, US, ES, IT...) applied to numbers without a +.FR
excludedNumbersNumbers that must NOT be processed. They are skipped, not saved and not counted. Written the same way as above.empty
maxNumbersSafety limit per run, from 1 to 10,000. Numbers beyond it are not checked (a warning is logged).1,000

Output columns

ColumnMeaning
phoneNumberThe number as you provided it (trimmed).
verdictok, risky or invalid (see below).
reasonWhy, in plain English.
isValidThe number matches a known number range of its country.
e164International format without spaces, for example +33612345678 (null if invalid).
international / nationalThe same number formatted with spaces (null if invalid).
countryTwo-letter country code (null if invalid). Where several countries share a calling code (for example +44), it is the best match: GB, GG, JE or IM.
countryCallingCodeThe country calling code without the +.
numberTypeMOBILE, FIXED_LINE, FIXED_LINE_OR_MOBILE, VOIP, TOLL_FREE, PREMIUM_RATE, SHARED_COST, PERSONAL_NUMBER, PAGER, UAN, VOICEMAIL, or null if unknown or invalid.
isPossibleThe length is plausible for the country (weaker than isValid).

What the verdicts mean

  • ok: a valid number on an ordinary line (mobile, landline, VoIP, or a type the numbering data does not specify).
  • risky: a valid number, but on a special line type that is not an ordinary line to reach a person: premium-rate, toll-free, shared-cost, personal, pager, universal access or voicemail numbers.
  • invalid: not a valid number for its country (too short, too long, unknown country code, a range that does not exist, or not a number at all).

FAQ

Does it tell me whether a number is active or reachable?

No. The Actor does not call numbers or query any operator, so it cannot know whether a number is in service, who owns it, or whether it can receive SMS. ok means "a valid number of an existing range", not "this person can be reached".

Where does the validation data come from?

From the open-source library libphonenumber-js (MIT licence), which uses the numbering data of Google's libphonenumber project. Numbering plans change; the data reflects the version of the library bundled in the Actor.

What if my numbers have no country code?

Set the Default country. A number written without + is read as a number of that country: 020 7946 0958 is valid with GB and invalid with FR. Numbers written with a + or 00 prefix always keep their own country.

Is it safe for personal data?

Phone numbers are personal data when they identify a person. The Actor makes no network call: numbers are not sent to any service, and no number is written in the logs. You remain responsible for your use: see the GDPR section below.

How many numbers can I check in one run?

Up to 10,000 (the maxNumbers setting, 1,000 by default). In our local test, 10,000 numbers were processed in a few seconds.

Honest limits

  • It cannot tell whether a number is in service (see the FAQ).
  • The line type comes from the numbering data and can be missing or approximate for some countries. When the data does not give a type, the number is ok with the reason "line type unknown".
  • Extensions are accepted (+33 6 12 34 56 78 ext 12) but are not part of the e164 value.
  • Text around a number is not extracted: call me on 0612345678 is invalid. Give one number per line.
  • Numbers with more than 100 characters are rejected as invalid.

Data and GDPR: please read

Data processed. The phone numbers you provide, which are personal data when they identify a person. The output contains the same number plus fields derived from it. Nothing else is collected: no names, addresses, profiles or sensitive data.

What leaves the Actor. Nothing. The Actor makes no network call. No number is sent to a third-party service. Logs contain totals only, never numbers.

What is kept. The Actor keeps nothing of its own. Your results and your run input (including any exclusion list) are stored by Apify with your run, according to Apify's own retention rules. You can delete them from the Console.

You are responsible for your use. You decide why and how the numbers are used, so you are responsible for compliance. In particular:

  • Have a valid legal basis for any processing and any contact, and follow the rules of your country on phone and SMS prospecting, which are often stricter than for other channels.
  • Inform the people concerned and honour objections and other requests (within one month under the GDPR).
  • Make sure your list was obtained lawfully.
  • Do not use this Actor to guess or rebuild phone numbers.
  • Use the Exclusion list for people who objected, so they are never processed again.

This is general information, not legal advice.

En bref (français)

Contrôlez et nettoyez une liste de numéros de téléphone : validité selon le pays, formats E.164 / international / national, pays, type de ligne (mobile, fixe, VoIP, numéro vert, surtaxé...). Chaque numéro reçoit un verdict (ok, risky, invalid) avec la raison. L'Actor fonctionne entièrement hors ligne : il n'appelle aucun numéro, n'interroge aucun opérateur ni service tiers, ne devine aucun numéro et n'écrit aucun numéro dans ses logs. Limite principale : il ne peut pas savoir si le numéro est en service. Vous restez responsable de l'usage de vos listes (base légale, information des personnes, droit d'opposition, règles de la prospection téléphonique et par SMS) : voir la section « Data and GDPR ». Une liste d'exclusion permet d'écarter les personnes qui se sont opposées.

Pricing

You pay per number checked. The price is shown in the Pricing tab of the Actor.

  • Charged: each number that was actually checked and got a verdict of ok, risky or invalid.
  • Never charged: duplicates, numbers in your exclusion list, and numbers beyond your maxNumbers limit.
  • A small fixed fee per run start may also apply, as shown in the Pricing tab.
  • You can cap what a run can spend with the maximum cost setting of the run. The Actor stops cleanly when the cap is reached; results already saved are kept.

More tools by the same developer

  • Bulk Email Verifier & Validator (No SMTP): checks email addresses the same privacy-friendly way (format, domain, mail server, disposable domains, typos), with no probing of mail servers.