Phone Number Validity

The term 'validity' in the context of a phone number can encompass several aspects. This guide outlines concepts related to validity and details how Identity Insights addresses each one.

Format Validity

Phone number format validation involves verifying the length and prefix information at various levels to ensure accuracy and compliance with global numbering standards. A valid format refers to a number that can be freely assigned by carriers to users. However, it does not confirm whether the number is currently assigned to a specific carrier, a specific user or is reachable.

Users can specifically request and retrieve format validation details by checking the format.is_format_valid field.

Identity Insights checks format validity for any phone number passed and in case it can not be parsed into a valid format phone number it will not retrieve the insights requested, except for the Insight Format which purpose is trying to format a phone number.

When determining whether a phone number format is valid, the connection of a call does not always mean the format is valid, especially for global or automated processes. For example:

  • In some countries, dialing extra digits at the end of a phone number may still result in a successful connection, even though additional characters are entered.
  • During periods of renumbering transitions, some operators might "correct" outdated number formats, continuing to connect calls long after the standard format has changed. However, such adjustments are not consistent across regions and are temporary.
  • Phone numbers that are only locally dialable (e.g., a 7-digit number within the U.S.) are not considered valid in a global context. Without the necessary country and area codes, it becomes impossible for systems, such as APIs, to standardize or interpret these numbers properly.

Carrier Assigned Validity

Phone number validity is often interpreted as verifying whether the number is assigned to a carrier, which is a common approach for checking the validity of mobile numbers.

Users can request and retrieve carrier assignment information by querying current_carrier for a phone number. If current_carrier.network_type is mobile, it indicates that a mobile carrier is currently assigned to that number.

If the current_carrier.status.code is "NOT_FOUND", the phone number is not assigned to a mobile network. In this case, it may be a landline, virtual, premium, or toll-free number. These types of numbers are typically not considered reliable identifiers of an individual, as they can be easily shared and are more susceptible to certain types of fraud. To gain additional context in these situations, users can request original_carrier information. Keep in mind that original_carrier is based on numbering plans and therefore does not account for number portability. When the original_carrier.status.code value is "NOT_FOUND", it is most likely the queried number is not valid.

While this is a reliable way to determine if a phone number can be reached, it’s not foolproof, as a number assigned to a carrier may still be unassigned to a subscriber. If you dial a mobile phone number that hasn’t been assigned to a subscriber, several outcomes may occur depending on the carrier and the country:

  • Unreachable Number Announcement
  • Error Tone
  • Redirect to Carrier Service Line
  • No Response

Reachability

This refers to whether a phone number is currently reachable via voice, SMS, or data services. There are methods in the market for mobile numbers, based on Home Location Register (HLR) data sources, which claim to determine the voice and SMS reachability of a mobile number. However, our experience and analysis show that these methods are generally unreliable, especially in real-time scenarios. Additionally, they often lack clear information about which countries or carriers they are effective for, making their applicability inconsistent.

Identity Insights provides reachability information powered by Network APIs, which are reliable and future-proof for carriers around the globe, unlike legacy data sources such as HLR, which can be unreliable.

Identity Insights Reachability helps determine whether a phone number is reachable by checking the reachability.is_reachable attribute. The connectivity details in reachability.connectivity indicate whether the mobile number has data and SMS connectivity, which typically implies that voice connectivity is also available.

Discover Reachability Insights today — powered by real Network APIs and already available via the Vonage Virtual Operator. Support for live carriers is coming soon.

Conclusions

The most basic method, and the first step to take when determining if a phone number is globally reachable, is to validate its format using format.is_format_valid. That is a necessary condition, but it is not sufficient.

To assess the likelihood of connecting to a mobile phone number, the recommended approach is to check if it is assigned to a carrier by verifying the current_carrier.network_type is mobile.

Even if a mobile phone number has a valid format and is assigned to a carrier, it may still be unreachable. This could occur if the number is not currently assigned to a subscriber or is out of service (e.g., the device is switched off).

Further Reading