Area Code NPA-NXX Database mapping visualization of United States

Area Code (NPA-NXX) Database

The most complete NPA-NXX database available. NANPA-derived, enriched with 27 fields of geographic and carrier data, updated quarterly so your applications stay accurate. Last Updated October 28, 2025 (7 days ago).

Official NANPA Sources
Fortune 500 Trusted
Up to 27 Data Fields
Quarterly Updates
30-Day Guarantee
558,552
Active NPA-NXX Records
420+
Area Codes Mapped
23
Years In Business
30-Day
Money-Back Guarantee

Choose the Right Edition for Your Project

Standard

$249.95
  • 8 Core Data Fields
  • Area Code to ZIP Mapping
  • LATA & State Data
  • CSV, MDB, TAB Formats
  • Ideal for Basic Routing
Purchase Now |

Deluxe MOST POPULAR

$449.95
  • 27 Professional-Grade Fields
  • Geographic Coordinates Included
  • Complete Carrier Attribution
  • Rate Center & MSA Mapping
  • Time Zone Intelligence
  • Everything You Need
Purchase Now |

Quality Data with Premium Features:

  • → Immediate Download Access
  • → 1 Year with 4 Quarterly Updates
  • → No Surprise Renewals
  • → 30-Day Money-Back Guarantee
  • → Dedicated Customer Support
  • → Automated FTP/SFTP Delivery
  • → Microsoft© Access Format (.MDB)
  • → CSV Format (.CSV)
  • → Tab-Delimited Format (.TAB)
  • → Complete US & Territory Coverage
  • → NANPA Official Source Data
  • → Carrier & Rate Center Attribution
  • → Redistribution Licensing Available
  • → Unlimited Query Usage

Technical Specifications at a Glance

The most important information you need to know.

Data Coverage
  • ✓ NANPA-derived official data
  • ✓ 558,552 total records
  • ✓ 420+ area codes mapped
  • ✓ Complete rate center coverage
  • ✓ ZIP code frequency data
  • ✓ County & MSA assignments
File Formats
  • CSV
  • Tab-Delimited
  • Access MDB
  • ✓ MySQL compatible
  • ✓ SQL Server compatible
  • All formats included free
Delivery
  • Immediate download
  • Free FTPS/SFTP automation
  • Quarterly full refreshes
  • 4 updates in 12 months
  • Not automatically renewed
  • Simple 2-click renewal process
Performance
  • No API rate limits
  • ✓ No download throttling
  • ✓ Direct database import
  • ✓ File size: 5-25MB (compressed downloads)
  • ✓ Fast query performance
  • ✓ Indexed for speed

Field Comparison by Edition

Core Identifiers
  • NPA - Area code (3 digits)
  • NXX - Exchange prefix (3 digits)
  • NPANXX - Combined 6-digit code
  • State - 2-letter USPS code
Geographic Data
  • ZIP Code - Associated 5-digit ZIP
  • ZipCodeCount - Population estimate
  • ZipCodeFreq - Frequency ranking
Telecom Infrastructure
  • LATA - Local access transport area

View All 8 Fields →

Everything in Standard, plus 19 additional professional-grade fields:
Precise Location
  • Latitude (decimal)
  • Longitude (decimal)
  • City name
  • County name
  • County population
Time & Service
  • Time Zone (GMT offset)
  • DST Flag (observance)
  • NXX Use Type (L/W)
  • Status (Active/Inactive)
Carrier Intelligence
  • OCN (operating company #)
  • Company name
  • Coverage area name
  • Rate center
Geographic Codes
  • FIPS code
  • MSA/CBSA name
  • MSA/CBSA code
  • Overlay indicator
  • Split tracking (NPANew)

View All 27 Fields →

Explore a Live Sample with our Data Explorer


What you're seeing: This is live data from our actual database, updated quarterly. No smoke and mirrors-just raw, real NPA-NXX intelligence. Select a state to see records, drill down to counties for laser-focused results, then toggle between editions to compare data fields. Go ahead, kick the tires. Explore every field, every record. We won't stop you.
Version: Deluxe Standard

Loading Area Code Database Sample

Connecting to our live database for real, current data from our Area Code (NPA-NXX) Database.

What You'll See:

  • Up to 27 data fields per record (Deluxe)
  • 558K+ NPA-NXX combinations
  • Carrier names & OCN codes
  • Rate centers & coordinates
  • Official NANPA source data

Interactive Features:

  • Filter by state/territory
  • Drill down by area code
  • Compare Standard vs Deluxe editions
  • Sort and explore all fields
  • Exactly what you're purchasing
Pro Tip: Use the filters above to explore data for your specific state, province, area code, and edition.

Common Use Cases & Applications

See how developers and businesses use our Area Code Database to solve real-world problems.

Call Routing Systems

Route inbound calls based on area code, time zone, or rate center. Implement least-cost routing using carrier and LATA data. Perfect for contact centers, VoIP platforms, and toll-free number management.

Key Fields: NPA, NXX, RateCenter, TimeZone, LATA, Carrier, State

Fraud Detection & Security

Flag suspicious numbers from inactive NPA-NXX blocks or newly assigned exchanges. Cross-reference carrier data to detect caller ID spoofing. Identify high-risk area codes and verify caller authenticity in real-time authentication systems.

Key Fields: Status, NXXIntroVersion, Company, OCN, State

Number Validation

Validate phone numbers in web forms, CRM imports, or batch processing pipelines. Verify area code/exchange combinations exist before attempting delivery. Reduce bounce rates and improve data quality in customer databases.

Key Fields: NPANXX, NPA, NXX, State, Status

CRM Data Enrichment

Append geographic location, carrier information, and service type to existing customer phone numbers. Enhance marketing segmentation with wireless/landline classification. Fill gaps in incomplete customer records with ZIP code correlations.

Key Fields: City, County, State, ZipCode, NXXUseType, Company

Time Zone & Scheduling

Schedule outbound calls during appropriate business hours based on phone number time zones. Respect DST observance for Arizona and Hawaii. Optimize contact center staffing by predicting call volume across time zones.

Key Fields: TimeZone, ObservesDST, State, RateCenter

Telecom Analytics

Analyze call patterns by region, carrier type, or service area. Track number pool assignments over time using historical status data. Generate market intelligence reports on telecom infrastructure and carrier distribution.

Key Fields: OCN, Company, MSA_CBSA, County, NXXUseType, Status

E911 Emergency Services

Route emergency calls to appropriate dispatch centers using rate center and county data. Determine jurisdiction boundaries for 911 call handling. Support VoIP E911 compliance requirements with accurate geographic attribution.

Key Fields: RateCenter, County, State, FIPS, Latitude, Longitude

Marketing Compliance (TCPA)

Identify wireless numbers before calling to comply with TCPA regulations. Maintain proper consent records for mobile marketing campaigns. Reduce legal risk by classifying phone types before outbound marketing activities.

Key Fields: NXXUseType, State, Status

Geographic Targeting

Target marketing campaigns by geographic region using area code intelligence. Display local phone numbers to visitors based on their location. Optimize service coverage by mapping customer density to rate centers and MSAs.

Key Fields: State, City, County, MSA_CBSA, ZipCode, Latitude, Longitude

Integration Examples

Real code examples showing how to use the Area Code Database in your applications. Each example demonstrates phone number validation with NPA-NXX lookup.

Download Complete Code Samples →

Python: Validate Phone Number with NPA-NXX Lookup
import csv

# Load NPA-NXX database into memory (do this once at startup)
# For production: consider using a database or caching layer
npanxx_lookup = {}

with open('npanxx_deluxe.csv', 'r', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        npanxx_lookup[row['NPANXX']] = row

def validate_phone(phone_number):
    """
    Validate a 10-digit phone number and return location/carrier info.
    Returns dict with validation result and metadata.
    """
    # Extract first 6 digits (NPA-NXX)
    # Production tip: add input sanitization for (555) 123-4567 format
    npanxx = phone_number.replace('-', '').replace('(', '').replace(')', '')[:6]
    
    if npanxx in npanxx_lookup:
        data = npanxx_lookup[npanxx]
        return {
            'valid': True,
            'npanxx': npanxx,
            'state': data['State'],
            'city': data.get('City', 'N/A'),  # Deluxe only
            'timezone': data.get('TimeZone', 'N/A'),  # Deluxe only
            'carrier': data.get('Company', 'N/A'),  # Deluxe only
            'type': 'Wireless' if data.get('NXXUseType') == 'W' else 'Landline',
            'active': data.get('Status') == 'Active'
        }
    
    return {'valid': False, 'npanxx': npanxx, 'error': 'Invalid NPA-NXX combination'}

# Example usage
result = validate_phone('2125551234')
print(f"Valid: {result['valid']}")
if result['valid']:
    print(f"Location: {result['city']}, {result['state']}")
    print(f"Carrier: {result['carrier']}")
    print(f"Type: {result['type']}")
Performance tip: Loading 558K records into a dictionary uses ~50-100MB RAM but enables microsecond lookups. For web applications, load once at startup and reuse across requests.
PHP: Validate Phone Number with NPA-NXX Lookup
<?php
// Load NPA-NXX database (cache this in production using APCu/Redis)
// For production: use database or persistent cache instead of loading CSV each time
$npanxxLookup = [];

if (($handle = fopen('npanxx_deluxe.csv', 'r')) !== false) {
    $headers = fgetcsv($handle);
    while (($row = fgetcsv($handle)) !== false) {
        $data = array_combine($headers, $row);
        $npanxxLookup[$data['NPANXX']] = $data;
    }
    fclose($handle);
}

function validatePhone($phoneNumber, $npanxxLookup) {
    // Extract first 6 digits (NPA-NXX)
    // Production tip: use preg_replace for robust phone formatting
    $npanxx = substr(preg_replace('/[^0-9]/', '', $phoneNumber), 0, 6);
    
    if (isset($npanxxLookup[$npanxx])) {
        $data = $npanxxLookup[$npanxx];
        return [
            'valid' => true,
            'npanxx' => $npanxx,
            'state' => $data['State'],
            'city' => $data['City'] ?? 'N/A',  // Deluxe only
            'timezone' => $data['TimeZone'] ?? 'N/A',  // Deluxe only
            'carrier' => $data['Company'] ?? 'N/A',  // Deluxe only
            'type' => ($data['NXXUseType'] ?? '') === 'W' ? 'Wireless' : 'Landline',
            'active' => ($data['Status'] ?? '') === 'Active'
        ];
    }
    
    return ['valid' => false, 'npanxx' => $npanxx, 'error' => 'Invalid NPA-NXX combination'];
}

// Example usage
$result = validatePhone('(212) 555-1234', $npanxxLookup);
echo "Valid: " . ($result['valid'] ? 'Yes' : 'No') . "\n";
if ($result['valid']) {
    echo "Location: {$result['city']}, {$result['state']}\n";
    echo "Carrier: {$result['carrier']}\n";
    echo "Type: {$result['type']}\n";
}
?>
Performance tip: For high-traffic sites, import data into MySQL and use indexed lookups, or cache the array in APCu/Redis. Avoid loading the CSV on every request.
Node.js: Validate Phone Number with NPA-NXX Lookup
const fs = require('fs');
const csv = require('csv-parser');  // npm install csv-parser

// Load NPA-NXX database (do this once at module load)
// For production: consider using a database or Redis cache
const npanxxLookup = new Map();

fs.createReadStream('npanxx_deluxe.csv')
  .pipe(csv())
  .on('data', (row) => {
    npanxxLookup.set(row.NPANXX, row);
  })
  .on('end', () => {
    console.log(`Loaded ${npanxxLookup.size} NPA-NXX records`);
  });

function validatePhone(phoneNumber) {
  // Extract first 6 digits (NPA-NXX)
  // Production tip: add input validation and normalization
  const npanxx = phoneNumber.replace(/\D/g, '').substring(0, 6);
  
  if (npanxxLookup.has(npanxx)) {
    const data = npanxxLookup.get(npanxx);
    return {
      valid: true,
      npanxx: npanxx,
      state: data.State,
      city: data.City || 'N/A',  // Deluxe only
      timezone: data.TimeZone || 'N/A',  // Deluxe only
      carrier: data.Company || 'N/A',  // Deluxe only
      type: data.NXXUseType === 'W' ? 'Wireless' : 'Landline',
      active: data.Status === 'Active'
    };
  }
  
  return { valid: false, npanxx, error: 'Invalid NPA-NXX combination' };
}

// Example usage (wrap in async or use callbacks after CSV loads)
setTimeout(() => {
  const result = validatePhone('212-555-1234');
  console.log('Valid:', result.valid);
  if (result.valid) {
    console.log(`Location: ${result.city}, ${result.state}`);
    console.log(`Carrier: ${result.carrier}`);
    console.log(`Type: ${result.type}`);
  }
}, 1000);  // Wait for CSV to load
Performance tip: Map lookups are O(1) and very fast. For clustered deployments, import into MongoDB/PostgreSQL or use Redis for shared caching across instances.
SQL: Validate Phone Number with NPA-NXX Lookup
-- First, import the CSV into your database
-- MySQL example: LOAD DATA INFILE 'npanxx_deluxe.csv' 
--                INTO TABLE npanxx FIELDS TERMINATED BY ',' 
--                ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS;

-- Create indexed table for fast lookups
CREATE TABLE npanxx (
    NPANXX CHAR(6) PRIMARY KEY,
    NPA CHAR(3),
    NXX CHAR(3),
    State CHAR(2),
    City VARCHAR(100),
    County VARCHAR(100),
    TimeZone TINYINT,
    ObservesDST CHAR(1),
    NXXUseType CHAR(1),
    Company VARCHAR(255),
    OCN VARCHAR(10),
    Status VARCHAR(20),
    -- Add other fields as needed
    INDEX idx_npa (NPA),
    INDEX idx_state (State)
);

-- Validate a single phone number
SELECT 
    NPANXX,
    State,
    City,
    Company AS Carrier,
    CASE WHEN NXXUseType = 'W' THEN 'Wireless' ELSE 'Landline' END AS Type,
    CASE WHEN Status = 'Active' THEN 1 ELSE 0 END AS IsActive,
    TimeZone
FROM npanxx
WHERE NPANXX = SUBSTRING(REPLACE(REPLACE(REPLACE('(212) 555-1234', '-', ''), '(', ''), ')', ''), 1, 6);

-- Enrich existing customer table with area code data
UPDATE customers c
INNER JOIN npanxx n ON SUBSTRING(c.phone, 1, 6) = n.NPANXX
SET 
    c.phone_state = n.State,
    c.phone_city = n.City,
    c.phone_timezone = n.TimeZone,
    c.phone_carrier = n.Company,
    c.phone_type = CASE WHEN n.NXXUseType = 'W' THEN 'Wireless' ELSE 'Landline' END
WHERE c.phone IS NOT NULL;
Performance tip: Always index NPANXX (primary key), NPA, NXX, and State columns. With proper indexes, lookups complete in under 1ms even with millions of customer records.
C# / .NET: Validate Phone Number with NPA-NXX Lookup
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using CsvHelper;  // Install-Package CsvHelper
using System.Globalization;

public class NpanxxValidator
{
    private Dictionary<string, NpanxxRecord> _lookup;
    
    public NpanxxValidator(string csvPath)
    {
        // Load NPA-NXX database (do this once at application startup)
        // For production: consider using SQL Server or cache layer
        _lookup = new Dictionary<string, NpanxxRecord>();
        
        using (var reader = new StreamReader(csvPath))
        using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
        {
            var records = csv.GetRecords<NpanxxRecord>();
            foreach (var record in records)
            {
                _lookup[record.NPANXX] = record;
            }
        }
    }
    
    public ValidationResult ValidatePhone(string phoneNumber)
    {
        // Extract first 6 digits (NPA-NXX)
        // Production tip: use Regex for robust phone number parsing
        string npanxx = new string(phoneNumber.Where(char.IsDigit).Take(6).ToArray());
        
        if (_lookup.TryGetValue(npanxx, out var data))
        {
            return new ValidationResult
            {
                Valid = true,
                Npanxx = npanxx,
                State = data.State,
                City = data.City ?? "N/A",  // Deluxe only
                Timezone = data.TimeZone ?? "N/A",  // Deluxe only
                Carrier = data.Company ?? "N/A",  // Deluxe only
                Type = data.NXXUseType == "W" ? "Wireless" : "Landline",
                Active = data.Status == "Active"
            };
        }
        
        return new ValidationResult 
        { 
            Valid = false, 
            Npanxx = npanxx, 
            Error = "Invalid NPA-NXX combination" 
        };
    }
}

// Example usage
var validator = new NpanxxValidator("npanxx_deluxe.csv");
var result = validator.ValidatePhone("(212) 555-1234");

Console.WriteLine($"Valid: {result.Valid}");
if (result.Valid)
{
    Console.WriteLine($"Location: {result.City}, {result.State}");
    Console.WriteLine($"Carrier: {result.Carrier}");
    Console.WriteLine($"Type: {result.Type}");
}
Performance tip: Dictionary lookups are extremely fast. For ASP.NET applications, load once in Startup.cs and inject as a singleton. For enterprise scale, use SQL Server with Entity Framework.
Java: Validate Phone Number with NPA-NXX Lookup
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class NpanxxValidator {
    private Map<String, NpanxxRecord> lookup;
    
    public NpanxxValidator(String csvPath) throws IOException {
        // Load NPA-NXX database (do this once at application startup)
        // For production: consider using a database or cache layer like Redis
        lookup = new HashMap<>();
        
        try (BufferedReader br = new BufferedReader(new FileReader(csvPath))) {
            String line;
            String[] headers = br.readLine().split(",");  // Skip header row
            
            while ((line = br.readLine()) != null) {
                String[] values = line.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");  // Handle quoted commas
                NpanxxRecord record = new NpanxxRecord(headers, values);
                lookup.put(record.getNpanxx(), record);
            }
        }
    }
    
    public ValidationResult validatePhone(String phoneNumber) {
        // Extract first 6 digits (NPA-NXX)
        // Production tip: use Pattern/Matcher for robust phone formatting
        String npanxx = phoneNumber.replaceAll("[^0-9]", "").substring(0, 6);
        
        if (lookup.containsKey(npanxx)) {
            NpanxxRecord data = lookup.get(npanxx);
            return new ValidationResult(
                true,
                npanxx,
                data.getState(),
                data.getCity() != null ? data.getCity() : "N/A",  // Deluxe only
                data.getTimeZone() != null ? data.getTimeZone() : "N/A",  // Deluxe only
                data.getCompany() != null ? data.getCompany() : "N/A",  // Deluxe only
                "W".equals(data.getNxxUseType()) ? "Wireless" : "Landline",
                "Active".equals(data.getStatus())
            );
        }
        
        return new ValidationResult(false, npanxx, "Invalid NPA-NXX combination");
    }
    
    // Example usage
    public static void main(String[] args) throws IOException {
        NpanxxValidator validator = new NpanxxValidator("npanxx_deluxe.csv");
        ValidationResult result = validator.validatePhone("(212) 555-1234");
        
        System.out.println("Valid: " + result.isValid());
        if (result.isValid()) {
            System.out.println("Location: " + result.getCity() + ", " + result.getState());
            System.out.println("Carrier: " + result.getCarrier());
            System.out.println("Type: " + result.getType());
        }
    }
}
Performance tip: HashMap lookups are O(1). For Spring Boot applications, load as a @Bean singleton. For enterprise deployments, import into PostgreSQL/Oracle and use JPA for querying.
Need more examples?

These examples show basic validation. For complete implementations including CSV import, batch processing, and production-ready error handling, visit our technical documentation.

Frequently Asked Questions

Quick answers to common questions about our Area Code Database. Have Tech questions? See the full Technical FAQ.

Each edition offers different levels of data depth:

  • Standard ($249.95/yr): 8 core data fields including NPA, NXX, State, ZIP code correlations, LATA, and frequency data. Perfect for basic call routing, number validation, and ZIP-to-area-code lookups.
  • Deluxe ($449.95/yr): 27 professional-grade fields adding latitude/longitude coordinates, city/county names, time zones, DST flags, carrier attribution (OCN & company name), rate centers, MSA/CBSA mapping, wireless/landline classification, and active/inactive status tracking. Ideal for advanced routing systems, fraud detection, CRM enrichment, and telecom analytics.

View detailed field comparison →

NPA-NXX (also called NPANXX or Area Code Database) represents North American telephone numbering assignments. NPA is the 3-digit area code (like 212), and NXX is the 3-digit exchange prefix (like 555). Together they identify the first 6 digits of a 10-digit phone number and determine its geographic location, carrier, and routing information.

This data is essential for:

  • Call routing systems: Route calls based on geographic location, time zone, or carrier
  • Number validation: Verify phone numbers belong to valid area code/exchange combinations
  • Fraud detection: Flag suspicious or newly assigned NPA-NXX blocks
  • Time zone determination: Schedule calls during appropriate business hours
  • Geographic attribution: Map phone numbers to cities, counties, and states
  • CRM enrichment: Append carrier and location data to customer records
  • Telecom analytics: Analyze call patterns by region, carrier type, or service area

Unlike individual phone number lookups, NPA-NXX data gives you the infrastructure intelligence behind the North American telephone network-no per-query fees, no rate limits, just complete control over your routing and validation logic.

Every purchase includes 12 months of quarterly updates at no additional cost. Four times per year, we synchronize with NANPA updates and release a fresh version of the complete database. Each update is a full file refresh-not incremental deltas-ensuring data consistency.

Access your updates two ways:

  • Manual Download: Log into your account and download the latest version anytime
  • Automated FTP/SFTP/FTPS: We'll set up free secure FTP access so you can automate quarterly imports

After 12 months, you keep all the data you've downloaded. Renewal is only needed if you want to continue receiving quarterly updates.

Timing: Updates are typically released mid-quarter (January, April, July, October). We send email notifications to all active subscribers when new releases are available.

Yes! You can upgrade at any time by simply paying the price difference. Your subscription end date remains the same, and you'll immediately get access to the additional 19 data fields in the Deluxe edition.

For example, if you purchased Standard ($249.95) and want to upgrade to Deluxe ($449.95), you'd pay $200 (the difference), and your 12-month update period stays unchanged. This is accessible directly from your Account Homepage. It will list all of your subscriptions and offer an immediate upgrade option. No waiting, the upgrade is instantaneous. Contact us if you have any further questions.

Every subscription includes:

  • 12 months of updates: Four quarterly full-file refreshes synchronized with NANPA
  • All file formats: CSV, Tab-Delimited (TAB), and Microsoft Access (MDB)
  • Immediate download: Access your data within minutes of purchase
  • Free FTP/SFTP/FTPS access: Automate your quarterly updates (setup on request)
  • Unlimited internal use: No per-user fees, no query limits, no throttling
  • Email & phone support: Real people ready to help with implementation questions
  • 30-day money-back guarantee: Full refund if you're not satisfied, no questions asked

You keep the data forever: After your subscription ends, you retain all downloaded files. Renewal is only required if you want continued quarterly updates.

Need redistribution rights? We offer separate licensing for embedding data in commercial products. Select Edition to see Redistribution pricing →

ZIP code boundaries and telephone exchange boundaries don't align perfectly-they were designed for different purposes (postal delivery vs. telecom infrastructure). Our database includes ZipCodeFreq rankings to show which ZIP codes are most commonly associated with each NPA-NXX:

  • ZipCodeFreq = -1: Most frequent (primary service area)
  • ZipCodeFreq = -2: Second most frequent
  • ZipCodeFreq = 0: Frequency data unavailable

We also include ZipCodeCount (population estimate) to help you assess reliability. ZIP codes with less than 2% frequency are excluded as statistically insignificant.

Best practices: For precise applications, use the -1 ranked ZIP codes, which represent the primary service area. For comprehensive coverage, include -2 ranked codes as well. The combination provides excellent geographic attribution for most business applications.

Our database is derived directly from NANPA (North American Numbering Plan Administration)-the official authority for area code and exchange assignments. This is the same authoritative source used by all telecom carriers in North America.

Our quality process:

  • Quarterly NANPA synchronization: We process official assignment files every quarter
  • Cross-reference validation: ZIP code correlations verified against USPS and Census data
  • Internal enrichment: Coordinates, time zones, and carrier data undergo additional QA
  • Format normalization: All fields cleaned, standardized, and validated before release

Accuracy considerations: While NANPA assignment data is definitive, some fields reflect point-in-time snapshots. Carrier assignments can change (especially with number portability), and new NPA-NXX blocks are issued monthly. Our quarterly updates keep you current within a 3-month window, which is sufficient for most business applications.

Bottom line: For NPA-NXX assignments, geographic locations, and rate center data, this is the most authoritative source available outside of direct carrier records.

The NXXUseType field (L=Landline, W=Wireless) is derived from NANPA's official assignments and reflects the original carrier type when the NPA-NXX block was assigned. This data is accurate at the block level.

Important caveats:

  • Number portability: Individual phone numbers may have moved between carriers/types since the original assignment. A "wireless" block may contain ported landline numbers and vice versa.
  • VoIP complexity: Modern VoIP services blur the line between traditional categories
  • Statistical reliability: While not 100% accurate at the individual number level, the classification is highly reliable for aggregate analysis

Best uses:

  • Statistical analysis: Market research, trend analysis, demographic studies
  • Initial classification: First-pass filtering before deeper validation
  • Risk scoring: Wireless numbers have different fraud profiles than landlines
  • Marketing compliance: TCPA regulations treat wireless differently

For critical applications requiring definitive real-time wireless/landline identification (like TCPA compliance), consider supplementing with a real-time lookup service that checks current line type and portability status.

Rate centers are geographic boundaries originally created to determine local calling areas and billing zones. Each NPA-NXX is assigned to a specific rate center, which defines its "home" location within the telephone network.

Why rate centers still matter:

  • E911 emergency routing: Rate centers help determine which emergency dispatch center receives calls
  • Network infrastructure: Telecom equipment and switches are organized by rate center
  • Regulatory compliance: Many telecom regulations reference rate center boundaries
  • Least-cost routing: Call routing systems use rate centers to optimize routing paths
  • Geographic precision: Rate centers provide finer geographic granularity than area codes alone

Common applications:

  • Toll-free routing (route 1-800 calls to nearest rate center)
  • Service area mapping (define coverage by rate center)
  • Network planning (understand infrastructure distribution)
  • Historical analysis (rate centers are stable over time)

Available in: Deluxe edition only. Standard edition does not include rate center assignments.

The Status field indicates whether an NPA-NXX combination is currently in service:

  • "Active": The code is currently assigned and in use for telephone services
  • "Inactive": The code is reserved for future use or returned to the available pool

Why we include inactive records:

  • Historical analysis: Track how number assignments change over time
  • Data continuity: Maintain consistent record counts across updates
  • Fraud detection: Old/inactive codes being used can signal spoofing
  • Migration planning: Understand what codes are being phased out

Best practices:

  • For production routing/validation: Filter to Status='Active' only
  • For analytics: Include both active and inactive for complete historical view
  • For fraud detection: Flag calls from inactive NPA-NXX as suspicious

Available in: Deluxe edition only. Standard edition does not include status tracking.

OCN (Operating Company Number) is a unique 4-character identifier assigned by NECA (National Exchange Carrier Association) to each telecommunications carrier. The Company field shows the human-readable carrier name.

Key differences:

Attribute OCN Company Name
Format 4 characters (e.g., "9206") Variable text (e.g., "Verizon New Jersey, Inc.")
Uniqueness One OCN = One carrier entity Names may have variations
Stability Rarely changes Can change with rebranding
Best for Database keys, joins, matching User display, reporting

Practical usage:

  • Use OCN for programmatic matching: If you're joining with other datasets or building database relationships, OCN is more reliable than name matching
  • Use Company Name for display: Show the readable name to end users in reports and interfaces
  • Index both fields: OCN for exact lookups, Company for text searches

Example: Verizon has multiple OCNs for different regions (9206 for New Jersey, 9740 for Pennsylvania). OCN distinguishes these entities while company names might appear similar.

Every purchase includes all three formats at no additional cost:

  • CSV (Comma-Separated Values): Universal format compatible with virtually any application. Perfect for importing into databases, spreadsheets, or custom applications. Standard: 19MB (~3MB compressed). Deluxe: 110MB (~9.5MB compressed).
  • TAB (Tab-Delimited): Alternative delimiter format useful when data contains commas. Same size as CSV.
  • MDB (Microsoft Access): Ready-to-use Access database with tables, relationships, and indexes already configured. Standard: 72MB (~7.5MB compressed). Deluxe: 72MB (~21.5MB compressed).

Database compatibility:

  • MySQL: Use LOAD DATA INFILE for fast CSV imports
  • PostgreSQL: Use COPY command for efficient bulk loading
  • SQL Server: Use BULK INSERT or Import/Export Wizard
  • Oracle: Use SQL*Loader or external tables
  • SQLite: Use .import command

All formats contain identical data-choose based on your import workflow and tooling preferences. Download all three formats if you want flexibility.

Yes! For validation of area code + exchange (first 6 digits), this database is perfect. Simply extract the first 6 digits (NPA-NXX) from any phone number and look it up.

What you can validate:

  • Format validity: Is this a valid NPA-NXX combination?
  • Geographic location: What state/city does this number belong to?
  • Service type: Is it likely wireless or landline? (Deluxe only)
  • Carrier information: Which carrier owns this block? (Deluxe only)
  • Time zone: What time zone is this number in? (Deluxe only)
  • Assignment status: Is this an active or retired block? (Deluxe only)

Validation example:

Phone: (212) 555-1234
Extract: 212555
Lookup: NPA=212, NXX=555
Result: Valid block, New York City, Landline, Verizon

Important limitations:

  • This validates the block assignment, not individual number activation
  • Just because an NPA-NXX exists doesn't mean every number in that block is active
  • For line-level validation ("is 212-555-1234 currently working?"), you need real-time carrier lookup services

Performance: With proper database indexing on NPANXX or (NPA, NXX) columns, lookups complete in milliseconds. Perfect for real-time validation in web forms or batch processing millions of records.

Yes! Our data works with any system that can import CSV, TAB, or MDB files. The data is normalized, consistently formatted, and ready for production use.

Common integration patterns:

  • Direct database import: Load into MySQL, PostgreSQL, SQL Server, Oracle, or any SQL-compatible database
  • CRM enrichment: Append carrier and location data to existing customer phone number records via JOIN on extracted NPA-NXX
  • API wrapper: Import into your database and expose via REST API for application consumption
  • ETL pipelines: Use tools like Talend, Informatica, Apache Airflow, or custom scripts for automated quarterly updates
  • Spreadsheet analysis: Import CSV directly into Excel or Google Sheets for ad-hoc analysis

Integration example (SQL):

-- Enrich customer table with area code data
UPDATE customers c
JOIN npanxx n ON SUBSTRING(c.phone, 1, 6) = n.NPANXX
SET c.phone_state = n.State,
    c.phone_timezone = n.TimeZone,
    c.phone_carrier = n.Company;

Implementation time: Most customers complete initial integration in under a day. The standardized format eliminates parsing complexity.

Bonus: Many customers combine our Area Code Database with our ZIP Code Database for complete geographic and demographic intelligence-join on the ZIP code field to enrich phone data with Census information and precise coordinates.

We offer two update delivery methods for your convenience:

1. Automated FTP/SFTP/FTPS (Recommended for production):

  • Free access provided to all customers-just email us your preferred username
  • Files published mid-quarter (January, April, July, October)
  • Set up scheduled tasks/cron jobs to download and import automatically
  • Best practice: Schedule imports for a few days after the typical release window to ensure you capture the final version

2. Manual download from your account:

  • Log in anytime at your account homepage to download the latest version
  • Ideal for development environments or occasional updates
  • Email notifications sent when new releases are available

Update strategy recommendations:

  • Full replacement method (recommended): Most customers replace the entire table quarterly. Simplest approach with lowest risk of sync errors. Each release is a complete dataset-not incremental deltas.
  • Zero-downtime updates: Use database table swapping techniques for production environments:
    -- MySQL example
    RENAME TABLE 
      npanxx_active TO npanxx_backup,
      npanxx_new TO npanxx_active;
  • Always keep backups: Retain at least the previous quarter's data before importing new updates

Import tips: Use your database's native CSV import tools (MySQL's LOAD DATA INFILE, PostgreSQL's COPY, SQL Server's BULK INSERT). The CSV format is standardized and imports cleanly into all major databases. Index on NPANXX, NPA, NXX, State, and ZipCode fields for optimal query performance.

It depends on how you're using the data:

Standard subscription is sufficient if you're:

  • Using the data internally within your company
  • Building applications for your own use
  • Providing services to clients where the data remains on your servers
  • Creating internal tools, reports, or analytics

You need a redistribution license if you're:

  • Embedding data in commercial software that you sell or distribute to customers
  • Providing the raw data files to clients or partners
  • Building SaaS applications where customers can download or export the data
  • Reselling or sublicensing the data in any form
  • Including data in mobile apps distributed via app stores

Redistribution license benefits:

  • Unlimited royalty-free distribution within your products
  • Data must be encrypted or embedded (no raw CSV/TAB/MDB distribution)
  • 1-year term, renewable annually
  • Standard: $1,249.95/yr | Deluxe: $2,249.95/yr

Still unsure? Contact us with your use case-we'll help determine which license type you need. We want you to use the data confidently and compliantly.

We offer a 30-day, no-questions-asked money-back guarantee. If the data doesn't meet your needs for any reason, just contact us within 30 days of purchase for a full refund.

Why we're confident offering this:

  • Our data is derived from official NANPA sources-the same data carriers use
  • 23 years in business serving Fortune 500 companies and developers
  • Transparent data explorer lets you examine actual records before purchasing
  • Comprehensive documentation so you know exactly what you're getting

No risk, no hassle. We stand behind our data quality because we know it works. Try it risk-free and see for yourself why thousands of customers trust ZIP-Codes.com for their telecom data needs.

While NANPA provides raw assignment files for free, our database offers production-ready enhancements that save you significant time and effort:

Feature Free NANPA Files Our Database
Data Format Pipe-delimited text files requiring custom parsing Clean CSV, TAB, and MDB formats-import in minutes
ZIP Code Correlations Not provided ZIP code matching with frequency rankings and population data
Geographic Enrichments Basic assignment data only Coordinates, time zones, DST flags, county data, MSA/CBSA mapping (Deluxe)
Maintenance You download, process, normalize, and QA every quarter We handle all updates, corrections, quality assurance, and formatting
Data Cleaning Raw data with inconsistencies Normalized, validated, and production-ready
Historical Tracking Current snapshot only Status tracking (Active/Inactive), version history, change documentation
Support No implementation help Email and phone support for integration questions
Delivery Manual download from government site Instant download + optional automated FTP/SFTP delivery

Time savings: Most customers report saving 8-12 hours per quarter compared to processing NANPA files manually. That's parsing pipe-delimited formats, handling encoding issues, normalizing carrier names, adding geographic references, validating data integrity, and building import scripts.

The bottom line: NANPA data is authoritative, but it's raw infrastructure data designed for carriers, not developers. We transform it into production-ready intelligence with the enrichments and formatting your applications actually need.

Your choice: Spend hours every quarter wrestling with government data formats, or spend $249-$449 annually and focus on building your application. Explore our live data to see the difference.

Decades of Trust: We're the ZIP Code Data Experts

Our Experts

James Harris

Lead Data Architect - 23 Years Experience

Good data doesn't just happen - it takes real people who care about getting things right. James and our team manually verify every source. No running scripts and calling it done. We maintain high standards because you're counting on this data to run your business.

When something doesn't look right, we dig into it. That's the difference experience makes.

More About Our Team →

We Stand Behind Our Work

Our 100% Money Back Guarantee!

Our mission: Provide the most accurate, comprehensive, and trustworthy ZIP Code data in the industry - so you can make confident business decisions based on reliable intelligence.

Since 2003, we have maintained 99.9% accuracy through rigorous verification, expert curation, and committment to data quality.

We believe that good data matters, and so does good service. When you need help, you'll talk to an actual person - not a ticket system or an endless email thread. Call us and we'll pick up the phone. Email us, and we will respond promptly. It's a simple thing, but it makes a difference when you're on a deadline or troubleshooting an issue.

Learn Why Many Place Their Trust In Us →

Trusted by Thousands of Companies

Background image for Our Customers say it best

Our Customers say it best!

Actual customer emails from verified purchases.

★★★★★ 4.9 out of 5 from 500+ verified customers
100% Verified Reviews
6 Fortune 500 Clients
10-20+ Year Customers

Sources & References


Our sources include trusted federal data from NANPA (North American Numbering Plan Administration), USPS ZIP Code data, Canada Post postal code data, and proprietary data enhancements created by ZIP-Codes.com. Data last updated on October28, 2025.

  1. NANPA - North American Numbering Plan Administration [Last Updated: October2025], https://www.nanpa.com
    • Central Office Code (NPA-NXX) Assignment Records [Quarterly Updates]
    • Operating Company Number (OCN) and carrier attribution data
    • Rate center assignments and Local Access Transport Area (LATA) definitions
    • Area code overlay and split tracking information
  2. United States Postal Service (USPS) [Updated: As Released], https://www.usps.com
    • ZIP Code™ geographic boundary data and state assignments
    • Official ZIP Code definitions for NPA-NXX correlation analysis
  3. Canada Post Corporation [Updated: As Released], https://www.canadapost.ca
    • Canadian postal code data for North American coverage reference
    • Geographic boundary data for Canadian NPA-NXX correlations
  4. U.S. Census Bureau [Updated: 2020 Census], https://www.census.gov
    • FIPS (Federal Information Processing Standards) codes for county/tract linkage
    • Metropolitan Statistical Area (MSA) and Core-Based Statistical Area (CBSA) definitions
    • County population estimates and geographic boundary files
  5. ZIP-Codes.com Proprietary Data Enhancements [Updated: Quarterly], https://www.zip-codes.com
    • ZIP code correlation analysis with frequency rankings and population weighting
    • Geocoding coordinates (latitude/longitude) validated from multiple authoritative sources
    • Time zone assignments and daylight saving time (DST) observance tracking
    • Wireless/Landline classification validation and historical status tracking
    • Data normalization, cross-reference validation, and quality assurance processing
    • Continuous accuracy improvements based on NANPA updates and customer feedback

NANPA Data: NPA-NXX assignment data is derived from official NANPA (North American Numbering Plan Administration) records. NANPA is responsible for the administration and assignment of area codes and central office codes throughout the North American Numbering Plan. This database is independently compiled and is not affiliated with or endorsed by NANPA.

USPS Data: ZIP Code™ is a trademark of the United States Postal Service. ZIP Code correlation data is derived from publicly available USPS geographic information.

Canada Post Data: Postal Code™ is a trademark of Canada Post Corporation. Canadian reference data is used in accordance with applicable licensing terms.