Free tools

Phone number checker

Check if a phone number is valid, which country it belongs to and whether it is a mobile, VoIP, toll-free or premium rate number. Free, no account needed.

Examples:

Free · nothing is stored · 10 checks per minute

Enter a phone number or pick an example to see the result and the reasons.

Why check the phone number of a signup?

Asking for a phone number is a common way to slow down fake signups, because a real mobile number is harder to get than an email address. That only works if the number is checked. Invalid numbers, VoIP numbers that anyone can create online, and premium or toll-free numbers are typical signs of a signup that is not a real person.

What this checker looks at

  • Valid number: does the number have the right length and range for its country? phone_format_valid, phone_format_invalid
  • Country of the number, from its country code.
  • Line type, based on the number range: mobile, landline, VoIP, toll-free, premium rate and other special numbers. line_type_mobile, line_type_voip, line_type_toll_free, line_type_premium_rate

Enter the number in international format, starting with + and the country code. In the API you can also send a national number together with a country hint, for example country_hint: "US".

What it cannot tell you

The line type comes from the number range the number belongs to. A number that was moved to another network, or a VoIP service that uses normal mobile ranges, cannot be recognised this way. It also does not tell you whether the number is switched on or belongs to the person signing up. For that, send a one-time code by SMS before you unlock anything valuable.

Check the phone number in your signup handler

The checker above runs the same phone check as the SignupVet API:

signup.tsNode, Next.js, any backend
const res = await fetch("https://www.signupvet.com/verify/phone", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.SIGNUPVET_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ phone }),
});
const { recommendation, reason_codes } = await res.json();

if (recommendation === "block") return reject("Please use a mobile phone number.");
if (recommendation === "review") await flagForReview(user, reason_codes);

With /score you can send email, phone and IP together. It also notices when the same phone number is used with a different email within 24 hours. phone_reused See the docs.

Questions

Is this checker free?
Yes. It runs in your browser without an account. It is limited to 10 checks per minute, and nothing you enter is stored.
Should I block every VoIP number?
Not always. Some real users and companies use VoIP numbers. For products that give away credits, a common approach is to block premium and invalid numbers and review VoIP numbers, for example with a smaller trial.
Do you send an SMS to the number?
No. The check only looks at the number itself. Nothing is sent to it.

Check every signup automatically

SignupVet checks the phone, email and IP of every new signup and returns allow, review or block, with the reasons. Free for 250 checks a month, no card needed.

Get 250 free checks   Read the docs