Phone Number Validation API Documentation

Global Phone Number Validation and Carrier Lookups

IPQualityScore's Phone Number Validation API enables quick user verification and chargeback defense on a global scale by analyzing phone numbers to verify their risk score, country of origin, carrier, validity, and line connection status while also detecting fraudulent activity in real time. The IPQS phone number lookup API can enrich landline and cellular numbers in over 150 countries to identify invalid phone numbers or malicious users.

Perform carrier lookups by API in any region to detect disconnected phone numbers and retrieve important carrier info including line types to determine if a number is a VOIP, landline, mobile/wireless, or prepaid line. Cell phone lookups typically to have better identity enrichment hit rates. Reverse phone number lookups can also provide a personal or company name associated with a phone number to help validate identity and prevent abusive behavior.

Test IPQS phone number reputation data with our free phone number validator, which can also retrieve spam scores and risk scores. Validating phone numbers is available through real-time on-demand phone validation API lookups with full coverage for international phone numbers.

Phone Number Validation API Use Cases
  • Reverse Phone Number Lookup - Search a phone number owner's name with worldwide coverage rates using reverse phone lookups. Easily verify user identity to limit bad actors.
  • Phone Number Fraud Prevention - Phone Number Risk Scoring prevents abusive behavior from fraudulent users and high risk accounts. Prevent fraud and abuse simply by checking the phone number against our global blacklists.
  • Low Quality Users - Identify duplicate user accounts, stolen user data, and fake registrations. Automatically block low quality accounts.
  • Chargebacks & Payment Fraud - Mitigate chargebacks, high risk transactions, and all types of ecommerce fraud by detecting phone numbers associated with recent malicious behavior.
  • Instant Validation - Identify disconnected or inactive phone numbers to quickly validate user data to screen applications, registrations, and payments.
  • Bot Detection - Filter nonexistent and invalid phone numbers to stop bots, risky users, and bad leads.
  • Geo Filtering - Filter users by validating their phone number matches their location. Pair with IP Reputation scoring for comprehensive geo filtering.
  • High Risk Behavior - Analyze user phone numbers to prevent fraudulent numbers by detecting disposable SMS, temporary phone numbers, Google Voice, and VOIPs.
  • Lead Generation & User Data Verification - Validate phone numbers to ensure data that you are collecting is valid, accurate, and fresh to prevent fake leads.

Phone Number Carrier and Line Type Detection API

Lookup carrier details and phone number line types such as Landline, VOIP, Wireless, Prepaid, etc. with precision accuracy worldwide. IPQS maintains current data directly from carriers on a global level. Riskier carriers and phone ranges associated with malicious behavior will display elevated Fraud Scores to enable your business logic to effectively identify threats.

Phone Number Validation API

Accurately verify phone numbers worldwide and retrieve a combination of carrier and line type details with risk analysis data to assess phone numbers reputation. Our system collects phone validation and verification data from a wide variety of telecom carriers, with support in over 150 countries for international phone number validation. Detect inactive and disconnected phone numbers for easy user validation similar to HLR & LRN lookups. The "active_status" will identify if the line is active, the phone is turned off, or if the subscriber is absent or disconnected. Customizable settings allow scoring to be tailored to your audience.

Reverse Phone Number Lookup API

Lookup the owner of the phone number including first and last name or the company's name with real-time API responses. Reverse phone lookups have excellent coverage in the US and Canada and limited support internationally, including Europe and Asia. Reverse name lookups for phone numbers can help verify identity, limit abusive behavior, prevent unwanted callers, and enrich lead and contact details directly through our reverse phone lookup API.

Private API Key
Please login or create a free account to access your API Key.

NOTE: Do not share this key with anyone. It's like a password and can be used to make queries using our API.

Phone Number Verification API Request URLs

The URLs below can be used to fetch the result using cURL or another utility in most languages. Please see the usage example at the bottom of the page. Simply replace "USER_PHONE_HERE" with the phone you wish to validate.


Short Phone Number Notice: If the supplied phone number is less than 10 digits and does not have any possible countries included in the API request, then it's likely the phone number will return as invalid. For best results, please ensure phone numbers are at least 10 digits long or supply at least one valid country.

Phone Validation API JSON Example
API Lookup with US, CA and UK countries supplied
Supplying countries to our API will prefer those countries for our verification process and will use those countries in the event a short phone number is supplied to the API.
API Lookup with Strictness Set to 1
A higher strictness will increase the verification requirements and potentially increase the fraud score or other factors in the event a phone number is invalid or fraudulent.

Phone Validation API JSON Success Example

NOTE: For a description of each field listed above please consult the response documentation below.

Phone Validation API XML Success Example

NOTE: For a description of each field listed above please consult the response documentation below.

Phone Number Validation API JSON Error Examples

Example errors that you may encounter when accessing our API due to an exhausted credit balance or an invalid phone number.

Additional Request Parameters

Custom tracking variables (such as "userID", "transactionID") established in your account settings can be passed with each API request. This allows our reporting tools to filter by specific users, products, campaigns, transactions, etc. so that you can easily match up records with your own system to identify fraudulent activity.

Field Description Possible Values
strictness How in depth (strict) do you want this reputation check to be? Stricter checks may provide a higher false-positive rate. We recommend starting at "0", the lowest strictness setting, and increasing to "1" or "2" depending on your levels of fraud. integer, 0 - 2
country You can optionally provide us with the default country or countries this phone number is suspected to be associated with. Our system will prefer to use a country on this list for verification or will require a country to be specified in the event the phone number is less than 10 digits. string or array of strings
enhanced_line_check Please contact support to activate this feature for more advanced active line checks through our HLR lookup service. This feature provides greater accuracy for identifying active or disconnected phone numbers including landline, mobile, and VOIP services. boolean
enhanced_name_check Please contact support to activate enhanced name appending for a phone number. Our standard phone validation service already includes extensive name appending data. boolean

Additional Phone Validator API Options

Due to the nature of platform requirements or frameworks it may be necessary to request the Phone Number Validation API endpoints without passing the API key in the URL. As an alternative, IPQS allows the Phone Validation API key to be passed via GET, POST, or Headers. These requests use the following endpoints:

Method Value Example
GET key ?key=YOUR_API_KEY_HERE&phone=18007132618
POST key key=YOUR_API_KEY_HERE&phone=18007132618
Header IPQS-KEY (Additional parameters passed as either GET or POST) IPQS-KEY: YOUR_API_KEY_HERE

Reporting Back Fraud & Improving Machine Learning

Train your account's machine learning algorithms to better identify fraud for your audience. The following endpoint can be used to report phone numbers as fraudulent. Please only report data that has a high confidence of being abusive.

The URL below is an example of how to report a phone number. Please include the 2 letter country code. The dialing code is optional.

Phone Validator API Response Field Definitions
Quick Notes

Fraud Scores >= 75suspicious — previous reputation issues or low risk proxy/VPN.
Fraud Scores >= 85high risk — suspicious behavior signals
Fraud Scores >= 90frequent abusive behavior over the past 24-72 hours.

Recommended Logic:

Consider results as high risk when "valid" is false OR "active" is false OR "fraud_score" >= 90.

Further Details on Response Results

The Phone Validation API returns over 20 data points so your business logic can make the best decisions to validate phone numbers and accurately identify invalid phone numbers or risky user signals. Analyzing the validity of the phone number and overall Fraud Score is usually the best way to determine the overall risk of the user. Risky phone numbers and those with recent abusive behavior are directly indicated in the API results. Fraud Scores >= 75 are suspicious and are likely to be involved in suspicious or dangerous activities, but not necessarily a fraudulent user. Fraud Scores >=85 are risky users that are likely to engage in malicious behavior. Fraud Scores >=90 are very high risk users that have already engaged in abuse. Scores in this threshold indicate recent or excessive abuse and fit the profile of a typical risky user.

Fraud Scores

We recommend blocking or flagging a phone number or transaction as high risk using a combination of the "fraud_score", "recent_abuse", "VOIP", "prepaid", "active", and "risky" variables. As every user has their own unique audience, you may find better results validating phone numbers by only blocking "invalid" & "recent_abuse" phone numbers or Fraud Scores that are greater than 85-90+.

Field Description Possible Values
valid Is the phone number properly formatted and considered valid based on assigned phone numbers available to carriers in that country? boolean
active Is this phone number a live usable phone number that is currently active? boolean, null
formatted The phone number formatted in the international dialing code. N/A if not formattable. string
local_format The phone number formatted in the country's local routing rules with area code. N/A if not formattable. string
fraud_score The IPQS risk score which estimates how likely a phone number is to be fraudulent. Scores 85+ are risky while Fraud Scores 90+ are high risk. integer, 0 - 100
recent_abuse Has this phone number been associated with recent or ongoing fraud? boolean, null
VOIP Is this phone number a Voice Over Internet Protocol (VOIP) or digital phone number? boolean, null
prepaid Is this phone number associated with a prepaid service plan? boolean, null
risky Is this phone number associated with fraudulent activity, scams, robo calls, fake accounts, or other unfriendly behavior? boolean, null
name The owner name of the phone number such as the first or last name or business name assigned to the phone number. Multiple names will be returned in comma separated format. Value is "N/A" if unknown. string
carrier The carrier (service provider) this phone number has been assigned to or "N/A" if unknown. string
line_type The type of line this phone number is associated with (Toll Free, Mobile, Landline, Satellite, VOIP, Premium Rate, Pager, etc...) or "N/A" if unknown. string
country The two character country code for this phone number. string
region Region (state) of the phone number if available or "N/A" if unknown. string
city City of the phone number if available or "N/A" if unknown. string
zip_code Zip or Postal code of the phone number if available or "N/A" if unknown. string
timezone Timezone of the phone number if available or "N/A" if unknown. string
dialing_code The 1 to 4 digit dialing code for this phone number or null if unknown. integer
do_not_call Indicates if the phone number is listed on any Do Not Call (DNC) lists. Only supported in US and CA. This data may not be 100% up to date with the latest DNC blacklists. Contact your account mangaer to enable better DNC data and TCPA litigator removal. boolean
leaked Has this phone number recently been exposed in an online database breach or act of compromise. boolean
spammer Indicates if the phone number has recently been reported for spam or harassing calls/texts. boolean
active_status Additional details on the status of the subscriber connection when enhanced active line checks are enabled. Contact your account manager to enable this add-on feature. These values can be "Active Line", "Disconnected Line", "Phone Turned Off", "Inconclusive Status", or "N/A" if unknown. string
user_activity Frequency at which this phone number makes legitimate purchases, account registrations, and engages in legitimate user behavior online. Values can be "high", "medium", "low", or "none". Values of "high" or "medium" are strong signals of healthy usage. New phone numbers without a history of legitimate behavior will have a value as "none". This field is restricted to higher plan tiers. string
associated_email_addresses Displays email addresses linked to the phone number, if available in our data sources. Match rates vary by country and line type. This field is restricted to upgraded plans. Object value contains, "status", and "emails" as an array. object
transaction_details (object) Additional scoring variables for risk analysis are available when transaction scoring data is passed through the API request. These variables are also useful for scoring user data such as physical addresses, phone numbers, usernames, and transaction details. The data points below are populated when at least 1 transaction data parameter is present in the initial API request. The following transaction variables are "null" when the necessary transaction parameters are not passed with the initial API request. For instance, not passing the "billing_email" will return "valid_billing_email" as null.
Key Expected Values Description
risk_score Float Confidence that this user or transaction is exhibiting malicious behavior. Scores are 0 - 100, with 75+ as suspicious and 90+ as high risk. This value uses different calculations with less weight on the IP reputation compared to the overall "Fraud Score".
valid_billing_address Boolean Physical address validation and reputation analysis.
valid_shipping_address Boolean Same as above.
valid_billing_email Boolean Light abusive check and reputation analysis for the email address. It is recommended to use our dedicated Email Validation API for deeper analysis.
valid_shipping_email Boolean Same as above.
leaked_billing_email Boolean Indicates if the email address has recently been exposed or compromised in a database breach.
leaked_shipping_email Boolean Same as above.
leaked_user_data Boolean Indicates if the user's data (including phone & address) have recently been exposed or compromised in a database breach.
risky_billing_phone Boolean Reputation analysis for abusive activity associated with the phone number.
risky_shipping_phone Boolean Same as above.
valid_billing_phone Boolean Valid & active phone number with the phone carrier (not disconnected).
valid_shipping_phone Boolean Same as above.
billing_phone_carrier String Phone number provider company such as "AT&T" or "Bell Canada".
shipping_phone_carrier String Same as above.
billing_phone_line_type String Phone number line type such as Landline, Wireless, Toll Free, VOIP, Satellite, Premium Rate, Pager, Internet Service Provider, Unknown or N/A.
shipping_phone_line_type String Same as above.
billing_phone_country String 2-letter country code associated with the phone number.
shipping_phone_country String Same as above.
billing_phone_country_code Integer Country dialing code associated with the phone number.
shipping_phone_country_code Integer Same as above.
bin_country String Country associated with the credit card BIN.
risky_username Boolean Username frequently associated with fraudulent behavior.
is_prepaid_card Boolean Status of the credit card as prepaid.
fraudulent_behavior Boolean Indicates high risk behavior patterns and a high chance of fraud.
phone_name_identity_match String Enterprise Account Feature — Indicates a reverse identity match between the billing phone number and first/last name. Values: "Unknown" - no checks processed, "Match" - positive identity match, "Mismatch" - data matches another user, "No Match" - could not pair identity data.
phone_email_identity_match String Enterprise Account Feature — Indicates a reverse identity match between the billing phone number and email address. Values: "Unknown" - no checks processed, "Match" - positive identity match, "Mismatch" - data matches another user, "No Match" - could not pair identity data.
phone_address_identity_match String Enterprise Account Feature — Indicates a reverse identity match between the billing phone number and physical address. Values: "Unknown" - no checks processed, "Match" - positive identity match, "Mismatch" - data matches another user, "No Match" - could not pair identity data.
email_name_identity_match String Enterprise Account Feature — Indicates a reverse identity match between the billing email address and first/last name. Values: "Unknown" - no checks processed, "Match" - positive identity match, "Mismatch" - data matches another user, "No Match" - could not pair identity data.
name_address_identity_match String Enterprise Account Feature — Indicates a reverse identity match between the billing first/last name and physical address. Values: "Unknown" - no checks processed, "Match" - positive identity match, "Mismatch" - data matches another user, "No Match" - could not pair identity data.
address_email_identity_match String Enterprise Account Feature — Indicates a reverse identity match between the billing physical address and email address. Values: "Unknown" - no checks processed, "Match" - positive identity match, "Mismatch" - data matches another user, "No Match" - could not pair identity data.
message A generic status message, either success or some form of an error notice. string
success Was the request successful? boolean
request_id A unique identifier for this request that can be used to lookup the request details or send a postback conversion notice. string
errors Array of errors which occurred while attempting to process this request. array of strings
Phone Number Validation API Accuracy

Our phone number validation APIs can be enhanced by additional data sets to improve accuracy for active line status checks. This feature requires a separate data set which provides subscriber status details shared directly from the Telecom provider. If you experience any false-positives while validating phone numbers, please contact our support team so we can optimize your phone number validator API settings. Our direct partnerships with major Telecom providers allows for reliable data providers, so we can accurately identify suspicious phone numbers or disconnected lines.

Phone Number Validation Quick Start Guide

IPQS makes it easy to deploy our phone number validation APIs for your website or app. First, grab your API key from your account's settings page. Then use the example phone validator API code on this page to directly integrate phone validation lookups in your business logic. Our partnerships with phone carriers allows us to accurately perform the number verification process with high quality phone data to determine invalid phone numbers in addition to line type and suspicious phone numbers with poor reputation signals.

Example Code