numverify

Data API · Phone number lookup · Carrier detection · Global validation

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')
Test number lookup (replace key): 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_type field 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