Phone Number Validation API
Validate phone numbers and assess risk factors including fraud detection, carrier information, and location data
The Beltic Phone Number Validation API offers rapid analysis to determine the risk score, country of origin, carrier, validity, owner information, and connection status of phone numbers. By using this API, you can authenticate users, improve chargeback defense, and detect fraudulent activities in real-time. It can investigate landline and cellular numbers in over 150 countries, identifying invalid numbers and potential fraudsters.
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 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.
Accurately verify phone numbers worldwide and retrieve a combination of carrier and line type details with risk analysis data to assess the reputation of phone numbers. Our system collects phone validation and verification data from various 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. Identify if the line is active, the phone is turned off, or the subscriber is absent or disconnected. Customizable settings allow you to tailor scoring to your audience.
What is Phone Number Validation?
Phone number validation is available through real-time, on-demand phone validation API lookups, with full coverage for international phone numbers. Our system provides comprehensive analysis including carrier information, line type detection, fraud scoring, and identity verification capabilities.
How Does Phone Number Validation Work?
Our phone validation technology performs comprehensive checks that analyze phone numbers from multiple angles. It features advanced carrier verification checks for issues like disconnected numbers, invalid formats, high-risk carriers, and other types of problematic phone numbers.
Phone Number Validation API Use Cases
Reverse Phone Number Lookup: Search for the 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 blocklists.
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 e-commerce 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 the data you collect is valid, accurate, and fresh to prevent fake leads.
SMS Pumping Protection: Block artificially inflated SMS traffic by identifying high-cost premium-rate numbers, risky carriers, and suspicious usage patterns before attackers can exploit your verification system.
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.
Phone Number Carrier and Line Type Detection API
Look up carrier details and phone number line types, such as landline, VOIP, wireless, and prepaid, with precision and accuracy worldwide. Beltic 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 identify threats effectively.
SMS Pumping Protection
Protect your business from SMS Pumping attacks. These types of fraud target SMS verification endpoints by generating fake traffic to premium-rate numbers, driving up costs for your business. By validating line types, detecting high-risk carriers, and identifying suspicious traffic patterns, the API helps block these fraudulent attempts before they result in revenue loss or inflated SMS fees.
Endpoint
POST https://api.beltic.com/v1/phones/riskParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
phone_number | string | Yes | The phone number to validate, including country code (e.g., "14157159501") |
Authentication
Include your API key in the request header:
X-Api-Key: your_api_key_hereExample Request
curl --location 'https://api.beltic.com/v1/phones/risk' \
--header 'X-Api-Key: ApiKey' \
--header 'Content-Type: application/json' \
--data '{
"phone_number": "14157333565"
}'Example Response
{
"profile": {
"names": []
},
"phone": {
"formatted": "+14157333565",
"local_format": "(415) 733-3565",
"valid": true,
"dialing_code": "1",
"timezone": "America/Los_Angeles"
},
"status": {
"active": true,
"active_status": null,
"do_not_call": false
},
"risk": {
"fraud_score": 85,
"risky": true,
"recent_abuse": false,
"leaked": false,
"spammer": false,
"prepaid": null,
"voip": true
},
"carrier": {
"name": "Bandwidth.com",
"line_type": "VOIP",
"mcc": null,
"mnc": null
},
"address": {
"formatted_address": "SAN FRANCISCO, CA, US",
"country": "US",
"city": "SAN FRANCISCO",
"state_or_province": "CA",
"postal_code": "94134"
}
}Response Field Definitions
The Beltic Phone Validation API returns comprehensive data with each lookup to help your development team make informed decisions in your business logic. The "Fraud Score" provides valuable insights to identify high-risk phone numbers and carriers. The API results directly indicate risky phone numbers and those with recent abusive behavior.
Fraud Score Risk Assessment
| Fraud Score | Risk Level | Description |
|---|---|---|
| ≥80 | Suspicious | Has had previous reputation issues or is using a low risk proxy/VPN |
| ≥85 | High Risk | Has suspicious behavior signals |
| ≥90 | Frequent Abusive Behavior | Has demonstrated frequent abusive behavior over the past 24-72 hours |
Consider results as high risk when:
validis falseactiveis falsefraud_scoreis at least 90
Fraud Scores >= 80 are suspicious and are likely to be involved in suspicious or dangerous activities but are not necessarily fraudulent users. Fraud Scores >=85 are risky users likely to engage in malicious behavior. Fraud Scores >=90 are very high-risk users that have already engaged in abuse.
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 a unique audience, you may find better results validating phone numbers by only blocking "invalid" and "recent_abuse" phone numbers or Fraud Scores greater than 85-90+.
Complete Field Reference
The API response is organized into the following main objects:
Profile Object
| Field | Data Types | Explanation |
|---|---|---|
names | array | Associated names or business names (when available) |
Phone Object
| Field | Data Types | Explanation |
|---|---|---|
formatted | string | The phone number in international format with country code - E.164 standard format for global compatibility |
local_format | string | The phone number formatted for local display - User-friendly format for the region |
valid | boolean | Is the phone number properly formatted and considered valid based on assigned phone numbers available to carriers in that country? |
dialing_code | string | The country dialing code (e.g., "1" for US/Canada) - International calling code for the country |
timezone | string | Timezone identifier for the phone number's location - Geographic timezone for the number's region |
Status Object
| Field | Data Types | Explanation |
|---|---|---|
active | boolean, null | Is this phone number a live, usable phone number that is currently active? This feature requires a separate data set that provides subscriber status details shared directly from the Telecom provider. Contact your account manager or support to enable this add-on feature, which determines if a phone number is reachable or disconnected using our HLR lookup service and carrier signals. |
active_status | "Active Line", "Active Line - High Confidence", "Active Line - Medium Confidence", "Active Line - Low Confidence", "Disconnected Line", "Phone Turned Off", "Inconclusive Status", or "null" if unknown | Additional details on the status of the subscriber connection will be provided when enhanced active line checks are enabled. Contact your account manager or support to enable this add-on feature, which determines if a phone number is reachable or disconnected using our HLR lookup service and carrier signals. |
do_not_call | boolean | Indicates if the phone number is listed on any Do Not Call (DNC) lists. This parameter is only supported in the USA and Canada. This data may not be 100% current with the latest DNC blocklists. Contact your account manager to enable better DNC data and removal of TCPA litigators. |
Risk Object
| Field | Data Types | Explanation |
|---|---|---|
fraud_score | integer, 0 - 100 | The Beltic risk score which estimates how likely a phone number is to be fraudulent. Scores 85+ are risky, while Fraud Scores 90+ are high risk. |
risky | boolean | Is this phone number associated with fraudulent activity, scams, robocalls, fake accounts, or other unfriendly behavior? |
recent_abuse | boolean, null | Has this phone number been associated with recent or ongoing fraud? |
leaked | boolean | Has this phone number recently been exposed in an online database breach or compromise? |
spammer | boolean | Indicates if the phone number has recently been reported for spam or harassing calls/texts. |
prepaid | boolean, null | Is this phone number associated with a prepaid service plan? |
voip | boolean, null | Is this phone number a Voice Over Internet Protocol (VOIP) or a digital phone number? |
Carrier Object
| Field | Data Types | Explanation |
|---|---|---|
name | string | The carrier (service provider) this phone number has been assigned to or "null" if unknown. |
line_type | string | The type of line this phone number is associated with (Toll-Free, Wireless, Landline, Satellite, VOIP, Premium Rate, Pager) or "null" if unknown. Line Type can play an important role in understanding phone number reputation. |
mcc | string (typically 3 digit number) or "null" | Mobile Country Codes (MCC) identify the country of a mobile phone number subscriber. This provides a corresponding number to a specific country to facilitate routing for wireless calls and SMS messages. The MCC value is "null" when unknown or unavailable, such as for landline and toll-free numbers. |
mnc | string (typically 3 digit number) or "null" | Mobile Network Codes (MNC) identify the mobile carrier of a phone number subscriber. This data provides a corresponding number to a specific telecom provider, such as Orange, Vodafone, and more, to facilitate routing for wireless calls and SMS messages. The MNC value is "null" when unknown or unavailable, such as for landline and toll-free numbers. |
Address Object
| Field | Data Types | Explanation |
|---|---|---|
formatted_address | string | Complete formatted address string |
country | string | The two-character country code for this phone number |
city | string | City of the phone number if available or "null" if unknown |
state_or_province | string | Region (state) of the phone number if available or "null" if unknown |
postal_code | string | Zip or Postal code of the phone number if available or "null" if unknown |
Error Responses
400 Bad Request
{
"error": "Invalid phone number format",
"message": "Phone number must include country code"
}401 Unauthorized
{
"error": "Unauthorized",
"message": "Invalid or missing API key"
}429 Too Many Requests
{
"error": "Rate limit exceeded",
"message": "Too many requests. Please try again later."
}