phone number standards

Sent logo
Sent TeamMar 8, 2026 / phone number standards / North Carolina

North Carolina Area Codes & Phone Numbers: Complete 2025 Guide

Complete NC phone number guide: 10 area codes (252, 336, 472, 704, 743, 828, 910, 919, 980, 984), Charlotte & Raleigh area code lookup, validation, porting rules, and NCUC regulations. Expert guide for developers.

North Carolina Phone Numbers: Format, Area Code & Validation Guide

North Carolina has 10 active area codes under the North American Numbering Plan (NANP): 252, 336, 472, 704, 743, 828, 910, 919, 980, and 984. This comprehensive guide covers NC phone number validation, formatting standards, area code lookup by region (Charlotte 704/980, Raleigh 919/984), overlay dialing requirements, FCC number portability rules, and NCUC telecommunications regulations for developers and service providers.

North Carolina Area Codes: Complete List & Coverage Map

North Carolina divides its telecommunications network into 10 active area codes to manage expanding communication requirements and growing demand for phone numbers.

Area CodeRegionTypeImplementation Date
252EasternGeographic1998
336Central PiedmontGeographic1997
472Southern CoastalOverlayOctober 7, 2022
704Charlotte MetroGeographic1947
743Central PiedmontOverlayMay 23, 2016
828Western/MountainsGeographic1998
910Southern CoastalGeographic1993
919Research TriangleGeographic1954
980Charlotte MetroOverlay2000
984Research TriangleOverlayApril 30, 2012

NC Area Code Lookup: Regional Coverage & Cities

  • 252 (Eastern Region): Serves northeastern North Carolina, including Greenville, Rocky Mount, Wilson, and coastal communities like the Outer Banks and Elizabeth City. Created in 1998 to relieve numbering pressure on 919.

  • 336/743 (Central Piedmont Region): Uses an overlay system covering Greensboro, High Point, and Winston-Salem. Area code 336 launched in 1997 (split from 910). The 743 overlay began on May 23, 2016, after a permissive dialing period (October 24, 2015 – April 23, 2016) when 10-digit dialing became mandatory. Both area codes cover the same geographic area.

Source: North Carolina Utilities Commission (NCUC) – Area Code 743 Implementation

  • 704/980 (Charlotte Metropolitan Area): Area code 704, originally covering the entire state in 1947, now serves the Charlotte metro area. The 980 overlay launched in 2000 as North Carolina's first overlay implementation.

  • 828 (Western/Mountainous Region): Covers western, mountainous North Carolina, including Asheville and Hickory. Created in 1998 as a split from 704.

  • 910/472 (Southern Coastal Plain): Serves southeastern North Carolina, including Wilmington and Fayetteville. Area code 910 launched in 1993 (split from 919). The 472 overlay went live on October 7, 2022, when remaining 910 numbers were projected to exhaust by early 2023. No permissive dialing period was necessary – 10-digit dialing was already required.

Source: WUNC – New Area Code 472 Implementation

  • 919/984 (Research Triangle): Covers the Research Triangle region, including Raleigh, Durham, and Chapel Hill. Area code 919 launched in 1954 (split from 704). The 984 overlay went live on April 30, 2012, after a permissive dialing period (October 1, 2011 – March 31, 2012). Originally planned for 2001, the overlay was deferred due to number pooling implementation but became necessary by 2011 due to continued growth and cellular device proliferation.

Source: Wikipedia – Area Codes 919 and 984

North Carolina Phone Number Allocation & Management

North Carolina follows North American Numbering Plan Administration (NANPA) guidelines with state-specific modifications for efficient and equitable distribution of numbering resources.

Rate Centers: Geographic points that define local calling areas and toll boundaries. Each rate center has a unique name and coordinates. Carriers assign phone numbers to specific rate centers, determining local vs. long-distance call classification.

Key Management Principles

  • Verification: Carriers requesting number blocks undergo eligibility assessment, infrastructure capability checks, service area confirmation, and compliance history review.

  • Utilization Monitoring: NANPA and state regulators monitor number utilization rates. Carriers submit monthly reports and quarterly forecasts. Low utilization triggers conservation measures. High utilization qualifies carriers for additional number blocks.

  • Reporting: Carriers submit monthly utilization reports, quarterly forecasts, annual audits, and exception reports for unusual usage patterns.

Conservation Strategies

North Carolina uses several strategies to conserve numbering resources:

  • Number Pooling: Allocates numbers in thousand-block increments to minimize fragmentation.
  • Rate Center Consolidation: Optimizes rate center boundaries to reduce required blocks.
  • Sequential Number Assignment: Assigns numbers sequentially within blocks to maximize utilization.
  • Reclamation: Requires carriers to return unused numbers for reassignment.

Premium Rate Services: NC Regulatory Requirements

Premium rate services (e.g., 900 numbers) face stringent consumer protection regulations in North Carolina.

Regulatory Framework

  • Disclosure: Disclose rates before charging with audible and visible notifications in English and Spanish. Provide transparent rate structures.

  • Provider Responsibilities: Register with the North Carolina Utilities Commission (NCUC), submit monthly compliance reports, maintain a consumer complaint resolution system, and monitor service quality.

  • Technical Requirements: Include these elements in premium rate service call flows: initial greeting, rate disclosure, opt-in confirmation, service delivery, duration tracking, and termination notification.

Dialing Requirements in North Carolina (10-Digit Mandatory)

North Carolina requires 10-digit dialing (area code + 7-digit number) for all local calls. This supports the 988 National Suicide Prevention Lifeline, which launched on July 16, 2022. The FCC mandate ensures calls beginning with 9-8-8 route to the crisis hotline instead of being misdialed as local numbers.

Source: FCC – 988 Suicide & Crisis Lifeline Implementation

Call Types

  • Local Calls: Dial area code + 7-digit number (e.g., 919-555-1212).
  • Long-Distance Calls (within the US): Dial 1 + area code + 7-digit number (e.g., 1-800-555-1212).
  • International Calls: Dial 011 + country code + phone number (e.g., 011-44-20-1234-5678 for the UK).
  • Toll-Free Numbers: Dial 1 + toll-free code + 7-digit number (e.g., 1-800-555-1212).

North Carolina Phone Number Porting: FCC Rules & Timeline

Number portability lets you keep your phone number when switching service providers. North Carolina follows FCC guidelines under 47 CFR § 52.35.

Key Aspects

  • Carrier Participation: All licensed carriers (wireline, wireless, local, long-distance) must support number porting.

  • Processing Time: Simple ports complete within one business day. Port requests submitted before the cutoff time complete the same business day. Complex ports take 4–7 business days.

Port TypeDefinitionProcessing Time
SimpleWireline-to-wireline, wireline-to-wireless, wireless-to-wireline, or interconnected VoIP1 business day
ComplexMultiple lines, mixed services, or special features4–7 business days

Source: 47 CFR § 52.35 – Porting Intervals (Effective August 3, 2009, as amended by FCC 09-41)

  • Documentation: Provide valid identification, current service agreement information (account number, billing address), account verification (last four digits of SSN or tax ID), and signed authorization.

Common Port Rejection Reasons:

  • Mismatched account information (name, address, account number)
  • Outstanding balance with current carrier
  • Invalid or expired authorization
  • Number not eligible for porting (landline-only numbers)
  • Pending service orders or features on the line

North Carolina Telecommunications Regulatory Framework

North Carolina Utilities Commission (NCUC)

The NCUC regulates telecommunications services in North Carolina, overseeing 16 incumbent local exchange companies (ILECs), 162 competing local providers (CLPs), 245 interexchange long distance carriers (IXCs), 44 payphone service providers (PSPs), and 16 shared tenant services providers (STS).

Important: The NCUC does not regulate commercial mobile radio service (including cellular service and paging service), cable providers, satellite providers, or data and internet service providers.

Regulatory Statutes

North Carolina telecommunications regulation is governed by Chapter 62 of the North Carolina General Statutes and NCUC rules including:

  • Chapter 17: Provision of Local Exchange and Exchange Access Competition
  • Chapter 20: Regulations Concerning the Marketing of Telecommunications Services
  • Chapter 21: Discontinuance or Reduction of Telecommunications Services

Source: North Carolina Utilities Commission and NC General Statutes Chapter 62

NCUC Contact Information

For telecommunications inquiries, complaints, or regulatory questions:

  • Website: ncuc.gov
  • Phone: Contact information available on the NCUC website for specific divisions
  • Address: North Carolina Utilities Commission, Raleigh, NC

How to Validate NC Phone Numbers (Developer Guide)

This section provides guidance for building applications with North Carolina phone numbers.

Prerequisites

  • NPAC credentials (via iconectiv)
  • Familiarity with North Carolina's numbering plan
  • Node.js v14+ development environment
  • Redis instance (optional, for caching)

NC Phone Number Validation Using Regular Expressions

Use these regular expressions for validation:

javascript
const ncNumberRegex = /^\+1(?:\s)?([2-9]\d{2})(?:\s|-)?(\d{3})(?:\s|-)?(\d{4})$/; // Matches +1 with optional spaces/hyphens
const tollFreeRegex = /^\+1(?:\s)?(800|888|877|866|855|844|833)(?:\s|-)?(\d{3})(?:\s|-)?(\d{4})$/;
const premiumRateRegex = /^\+1(?:\s)?(900)(?:\s|-)?(\d{3})(?:\s|-)?(\d{4})$/;

function validatePhoneNumber(phoneNumber, type = 'standard') {
  try {
    let regex;
    switch (type) {
      case 'standard': regex = ncNumberRegex; break;
      case 'tollfree': regex = tollFreeRegex; break;
      case 'premium': regex = premiumRateRegex; break;
      default: throw new Error('Invalid validation type. Use "standard", "tollfree", or "premium".');
    }
    return regex.test(phoneNumber);
  } catch (error) {
    console.error(`Validation error: ${error.message}`);
    return false;
  }
}

// Example usage with input sanitization
function sanitizeAndValidate(input) {
  // Remove common formatting characters
  const cleaned = input.replace(/[\s\-\(\)\.]/g, '');

  // Add +1 prefix if missing
  const formatted = cleaned.startsWith('+1') ? cleaned : `+1${cleaned}`;

  // Validate
  if (!validatePhoneNumber(formatted)) {
    throw new Error('Invalid phone number format');
  }

  return formatted;
}

Validation Strategy Selection:

  • Use regex validation for initial input screening and format checking
  • Use NPAC lookup for production systems requiring real-time portability data
  • Consider caching NPAC results to reduce API calls and improve performance

NPAC Database Connection

javascript
const npacConfig = {
  endpoint: process.env.NPAC_API_ENDPOINT,
  token: process.env.NPAC_TOKEN,
  timeout: 30000,
  retryAttempts: 3
};

async function checkPortingStatus(phoneNumber) {
  for (let attempt = 0; attempt < npacConfig.retryAttempts; attempt++) {
    try {
      const response = await fetch(npacConfig.endpoint, {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${npacConfig.token}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({ phoneNumber, requestId: generateUniqueId() }),
        timeout: npacConfig.timeout
      });

      if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
      }

      const data = await response.json();

      // NPAC API response structure:
      // {
      //   phoneNumber: string,
      //   lrn: string (Location Routing Number),
      //   spid: string (Service Provider ID),
      //   status: 'active' | 'pending' | 'disconnected',
      //   lastPortDate: ISO 8601 timestamp,
      //   carrier: string
      // }

      return data;

    } catch (error) {
      if (attempt < npacConfig.retryAttempts - 1) {
        const delayMs = 1000 * (attempt + 1); // Exponential backoff
        console.warn(`NPAC lookup attempt ${attempt + 1} failed. Retrying in ${delayMs}ms…`);
        await new Promise(resolve => setTimeout(resolve, delayMs));
      } else {
        throw new Error(`NPAC lookup failed after ${npacConfig.retryAttempts} attempts: ${error.message}`);
      }
    }
  }
}

// Example unique ID generator (replace with your implementation)
function generateUniqueId() {
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
    var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
    return v.toString(16);
  });
}

Performance Considerations:

  • Implement Redis caching with 24-hour TTL for NPAC lookups to reduce API calls
  • Use rate limiting (100 requests/minute recommended) to avoid API throttling
  • Consider batch lookups for bulk validation scenarios
  • Monitor NPAC API response times and implement circuit breakers for degraded service

Common NPAC API Errors:

  • 400 Bad Request: Invalid phone number format or missing required fields
  • 401 Unauthorized: Invalid or expired API token
  • 404 Not Found: Phone number not found in NPAC database
  • 429 Too Many Requests: Rate limit exceeded – implement exponential backoff
  • 503 Service Unavailable: NPAC service temporarily unavailable – retry with backoff

Troubleshooting

Common Validation Errors:

  1. Format Mismatch: Input doesn't match expected E.164 format (+1XXXXXXXXXX)

    • Solution: Implement input sanitization to remove formatting characters
    • Test: Verify handling of (919) 555-1212, 919.555.1212, 919-555-1212
  2. Invalid Area Code: Area code not in North Carolina's active list

    • Solution: Maintain updated area code list and validate against it
    • Test: Reject 999-555-1212, accept 919-555-1212
  3. NPAC Timeout: API request exceeds timeout threshold

    • Solution: Increase timeout or implement retry logic with exponential backoff
    • Test: Simulate network latency and verify retry behavior

Debugging Strategies:

  • Log sanitized input, validation results, and error messages
  • Use test phone numbers for development (e.g., 555-0100 to 555-0199)
  • Monitor NPAC API response times and error rates
  • Implement health checks for NPAC connectivity

Testing Approaches:

  • Unit test regex patterns with valid/invalid inputs
  • Integration test NPAC connectivity with mock responses
  • Load test validation endpoints under peak traffic conditions
  • Validate error handling for network failures and timeouts

Consult official NANPA and FCC documentation for the most up-to-date information.

Frequently Asked Questions

What are all North Carolina area codes?

North Carolina uses 10 area codes: 252 (Eastern), 336 (Piedmont Triad), 472 (Southern Coastal overlay), 704 (Charlotte), 743 (Piedmont Triad overlay), 828 (Western), 910 (Southern Coastal), 919 (Research Triangle), 980 (Charlotte overlay), and 984 (Research Triangle overlay). Three overlay pairs exist: 336/743 (Greensboro area), 704/980 (Charlotte area), and 910/472 (Wilmington/Fayetteville area).

When was the 472 area code implemented in North Carolina?

The 472 area code overlay became operational on October 7, 2022, for the 910 area code region covering southeastern North Carolina (Wilmington, Fayetteville). No permissive dialing period was necessary because 10-digit dialing was already mandatory in the region. The overlay was implemented when remaining 910 numbers were projected to exhaust by early 2023.

Do I need to dial 10 digits for local calls in North Carolina?

Yes. Dial area code + 7-digit number for all local calls in North Carolina. This became mandatory to accommodate the 988 National Suicide Prevention Lifeline, which launched on July 16, 2022. The FCC mandate ensures calls beginning with 9-8-8 route to the crisis hotline instead of being misdialed as local numbers.

How long does it take to port a phone number in North Carolina?

FCC regulations (47 CFR § 52.35) require simple ports (wireline-to-wireline or simple intermodal transfers including wireline-to-wireless, wireless-to-wireline, and interconnected VoIP) to complete within one business day. Port requests submitted before the cutoff time complete the same business day. Complex ports involving multiple lines or special services take 4–7 business days.

What is Charlotte NC area code?

Charlotte uses two area codes in an overlay configuration: 704 (original, established 1947) and 980 (overlay, introduced 2000). The 980 overlay was North Carolina's first area code overlay. Both area codes cover the same geographic region, requiring 10-digit dialing for all calls in the Charlotte metro area.

What is Raleigh NC area code?

The Research Triangle region (Raleigh, Durham, Chapel Hill) uses two area codes: 919 (original, established 1954) and 984 (overlay, effective April 30, 2012). The 984 overlay was implemented after a permissive dialing period from October 1, 2011 to March 31, 2012, when 10-digit dialing became mandatory throughout the region.

What is the North Carolina Utilities Commission (NCUC)?

The NCUC is the state regulatory body overseeing telecommunications services in North Carolina. It regulates 16 incumbent local exchange companies (ILECs), 162 competing local providers (CLPs), 245 long distance carriers (IXCs), 44 payphone providers (PSPs), and 16 shared tenant services providers (STS). The NCUC does not regulate cellular service, cable providers, satellite providers, or internet service providers.

How do I validate a North Carolina phone number programmatically?

Use regular expressions to validate North Carolina phone numbers in E.164 format (+1XXXXXXXXXX). Ensure the area code matches one of North Carolina's 10 active area codes (252, 336, 472, 704, 743, 828, 910, 919, 980, 984). For production applications, use a comprehensive phone number validation library like libphonenumber that handles NANP formatting rules, area code verification, and number portability lookups through the NPAC database.