TL;DR
numverify is a comprehensive phone number validation API covering 200+ countries. Validate numbers, identify carrier/operator, detect line type (mobile, landline, VoIP), get location information, and receive country details. The API maintains up-to-date number range databases for accurate carrier assignments.
Quick start: https://api.numverify.com/validate?access_key=YOUR_KEY&number=14158586273
Free tier available — register for an API key (free plan includes 100 requests/month)
How to Use This API
1. Validate Phone Number
https://api.numverify.com/validate?access_key=YOUR_KEY&number=14158586273
Returns: valid, number (international/local format), country_code, country_name, location, carrier, line_type.
2. Validate with Country Code Hint
https://api.numverify.com/validate?access_key=YOUR_KEY&number=2079460003&country_code=GB
Specify the country code (ISO alpha-2) for better results with local-format numbers.
3. JavaScript — Number Lookup Widget
async function lookupNumber(number, countryCode, apiKey) {
const params = new URLSearchParams({
access_key: apiKey,
number: number
});
if (countryCode) params.set('country_code', countryCode);
const resp = await fetch(
`https://api.numverify.com/validate?${params}`
);
const data = await resp.json();
if (!data.valid) {
return { valid: false, message: 'Invalid number' };
}
return {
valid: true,
country: data.country_name,
location: data.location || 'Unknown',
carrier: data.carrier || 'Unknown',
type: data.line_type,
international: data.international_format,
local: data.local_format
};
}
lookupNumber('14158586273', 'US', 'YOUR_KEY').then(info => {
if (info.valid) {
console.log(`${info.international} — ${info.type}`);
console.log(`Carrier: ${info.carrier}, Location: ${info.location}`);
}
});
4. Python — Phone Number Report
import requests
def analyze_number(number, api_key, country=None):
params = {
'access_key': api_key,
'number': number
}
if country:
params['country_code'] = country
resp = requests.get(
'https://api.numverify.com/validate',
params=params
)
result = resp.json()
if result.get('valid'):
print(f"Number: {result['international_format']}")
print(f"Country: {result['country_name']} ({result['country_code']})")
print(f"Location: {result.get('location', 'N/A')}")
print(f"Carrier: {result.get('carrier', 'N/A')}")
print(f"Type: {result.get('line_type', 'N/A')}")
else:
print(f"Invalid number: {result.get('error', {}).get('info', 'Unknown')}")
analyze_number('447911123456', 'YOUR_KEY', 'GB')
https://api.numverify.com/validate?access_key=YOUR_KEY&number=14158586273
Frequently Asked Questions
- What is the difference between numverify and NumValidate?
- Both are part of the apilayer family with similar functionality. numverify (
numverify.com) offers slightly different database coverage and line type classification compared to NumValidate (numvalidate.com). - What countries are supported?
- 200+ countries and territories. The database includes country code prefixes, number ranges per carrier, and geographic area codes.
- What is the free tier limit?
- 100 requests per month on the free plan. Premium plans offer higher limits (1,000 to 100,000+).
- How accurate is carrier detection?
- Carrier detection accuracy varies by country. Well-regulated markets (US, UK, Germany) have high accuracy. Some countries with mobile number portability may show the original carrier.
- Can this detect VoIP numbers?
- Yes, VoIP numbers are classified separately from mobile and landline. Check the
line_typefield for "voip".
API Details
- API URL
https://api.numverify.com- Documentation
- numverify.com/documentation
- Category
- Data
- Authentication
- API Key Required (free tier available)
- Geographic Coverage
- 200+ Countries
What You Can Build
- Signup form phone verification with carrier lookup
- Mobile number detection for SMS campaign targeting
- International address book with number formatting
- Fraud detection — identify VoIP or temporary numbers
- CRM data enrichment with carrier and location data