phone number standards

Sent logo
Sent TeamMar 8, 2026 / phone number standards / Article

Iran Phone Numbers: Complete Format, Area Code & Validation Guide

Complete guide to Iran phone numbers (+98). Learn Iranian telephone formats, area codes, mobile prefixes, validation regex, and international dialing rules.

How to Format, Validate, and Dial Iran Phone Numbers (+98)

Learn Iran's telephone numbering system with country code +98. This guide covers Iranian phone number formats, area codes for cities like Tehran (021) and Mashhad (051), mobile operator prefixes (MCI, Irancell, RighTel), validation patterns, and international dialing rules. Whether you're building telecommunications applications, implementing phone validation, or calling Iran internationally, you'll find everything you need.

Quick Reference:

  • Country Code: +98
  • Number Length: 11 digits (with 0) domestic, 10 digits international
  • Emergency: 110 (Police), 115 (Ambulance), 125 (Fire), 112 (SMS-enabled)

Understanding Iran's Numbering Plan

Iran follows the international ITU-T E.164 standard with country code +98. The Communication Regulatory Authority (CRA) regulates the national numbering plan. Prefix all numbers with '0' when dialing within Iran. Drop this '0' when dialing internationally and replace it with +98.

Dialing Examples:

  • Domestic landline: Dial 021 1234 5678 directly within Iran
  • Domestic mobile: Dial 0912 345 6789 within Iran
  • International to landline: From abroad, dial +98 21 1234 5678 (drop the leading 0)
  • International to mobile: From abroad, dial +98 912 345 6789 (convert 0912 to +98 912)

Key Facts:

  • Country Code: +98 (assigned by ITU-T)
  • National Prefix: 0 (domestic dialing only)
  • Regulatory Authority: Communication Regulatory Authority (CRA), established 2003
  • E.164 Compliance: Yes
  • Numbering Plan Updates: Latest update announced February 2024 via ITU Operational Bulletin No. 1287

Iran Area Codes by City

Iran uses a hierarchical area code system that divides the country into telecommunication regions. Major cities use two-digit area codes (0XX), while other regions use three-digit codes (0XXX). Area codes correspond to provincial boundaries and major metropolitan areas to ensure accurate call routing and number validation.

Major City Area Codes:

  • Tehran (Capital): 021
  • Mashhad (Northeast): 051
  • Isfahan (Central): 031
  • Tabriz (Northwest): 041
  • Shiraz (South): 071
  • Karaj (Alborz Province): 026
  • Qom (Central): 025
  • Ahvaz (Southwest): 061

See Appendix A for a comprehensive area code list.

Iranian Phone Number Format Examples

Iranian phone numbers follow these formats:

TypeFormatExampleDescriptionTotal Digits
Landline0XX XXXX XXXX021 1234 5678Fixed-line telephone service11 (with 0)
Mobile09XX XXX XXXX0912 345 6789Cellular service from various operators11 (with 0)
MVNO099X XXX XXXX0998 123 4567Mobile Virtual Network Operator11 (with 0)
Premium Rate909 XXX XXXX (or other formats, see below)909 123 4567Higher-cost services (see dedicated section below)Varies
EmergencyXXX110Emergency services (police, ambulance, fire)3 digits

Note: All Iranian numbers (excluding emergency services) have 11 digits with the leading '0' for domestic dialing, or 10 digits after +98 for international format.

Frequently Asked Questions About Iran Phone Numbers

How do I dial an Iranian phone number from abroad?

Remove the leading 0 from any Iranian number and prefix it with +98. For example, to call Tehran number 021 1234 5678, dial +98 21 1234 5678. Mobile numbers follow the same pattern: 0912 345 6789 becomes +98 912 345 6789.

What is the country code for Iran?

Iran's international country code is +98. You'll see this formatted as +98 or 0098 when dialing internationally. The International Telecommunication Union (ITU-T) assigned this code under the E.164 standard.

How many digits are in an Iranian phone number?

Iranian phone numbers have 11 digits when including the domestic prefix '0' (e.g., 021 1234 5678 for landlines or 0912 345 6789 for mobile). When dialing internationally with the +98 country code, you use 10 digits (the 11 digits minus the leading 0).

What is Tehran's area code?

Tehran, Iran's capital city, uses area code 021. When dialing domestically, dial 021 followed by the 8-digit local number (021 XXXX XXXX). When dialing internationally, use +98 21 XXXX XXXX.

Can I keep my phone number if I switch mobile operators in Iran?

Yes. Iran implemented Mobile Number Portability (MNP) in August 2016, allowing you to switch between operators like MCI, Irancell, or RighTel while retaining your original phone number. The transfer process takes 3–5 days to complete, and you can port your number up to twice per year. You'll pay approximately 30,000 rials (~$0.80) for a new SIM card, but the transfer is free. The prefix alone no longer guarantees which operator currently provides service.

How do I validate an Iranian phone number in my application?

Use regex patterns to validate Iranian numbers. For mobile numbers, check for the format 09[0-9]{9} (11 digits starting with 09). For landlines, use 0[1-8][0-9]\d{8} (11 digits starting with 01-08). See the validation section below for complete JavaScript implementation with all number types.

What are premium-rate numbers in Iran and how much do they cost?

Premium-rate numbers in Iran use prefixes like 909, 7020, 7070, 8081, and 9922. These services cost 5–10× more than standard calls and support voting, entertainment, and technical support. Confirm costs with your operator before dialing, as rates vary by service and can be expensive.

Do Iranian emergency numbers work without a SIM card?

Yes. Emergency numbers (110 for police, 115 for ambulance, 125 for fire) work without a SIM card, network coverage, or account credit. You can also dial 112 from mobile phones, which redirects to local emergency services. SMS access to 112 is available for hearing and speech-impaired users.

Summary and Next Steps

You now understand Iran's +98 phone numbering system:

✅ Format and dial Iranian numbers domestically and internationally ✅ Area codes for major cities: Tehran (021), Mashhad (051), Isfahan (031) ✅ Mobile operator prefixes for MCI, Irancell, and RighTel ✅ Validate Iranian phone numbers programmatically ✅ Premium-rate number formats and associated costs ✅ Emergency service numbers that work without network coverage

Next Steps:

  • Implement the validation code in your application
  • Check the CRA for the latest numbering plan updates via ITU publications
  • Test your implementation with real Iranian numbers from each operator
  • Set up monitoring for validation failures to catch new formats early

Related Topics:

Understanding Iran Premium-Rate Numbers and Charges

Premium-rate numbers in Iran use various formats for services like voting, entertainment, technical support, and information. These numbers typically begin with prefixes like 909, 7020 (provincial), 7070 (national access), 8081, 9922 (for IR-MCI), and others.

Typical Premium-Rate Charges: Premium services cost significantly more than standard calls. While standard international calls to Iran cost approximately $0.10–0.35 per minute, premium-rate services can charge 5–10× higher rates. Common uses include television show voting (909 numbers), entertainment hotlines, technical support lines, and directory assistance.

⚠️ Warning: Premium-rate services incur significantly higher charges than standard calls. Confirm the specific format and associated costs with your operator before dialing a premium-rate number. Find a detailed breakdown of premium-rate number formats in Appendix B.

Identify Mobile Operators by Prefix

Iran has several Mobile Network Operators (MNOs) and Mobile Virtual Network Operators (MVNOs), each with designated prefixes. Use these prefixes to identify carriers and apply appropriate routing logic.

Major Operators and Their Prefixes:

  • MCI (Hamrah-e Aval): 0910–0919, 0990–0994 (Iran's largest mobile operator with 48.10% market share as of 2024)
  • MTN Irancell: 0900–0905, 0930, 0933, 0935–0939, 0941 (Second largest operator with 46.36% market share)
  • RighTel: 0920–0923 (Third major operator with approximately 5.55% market share)
  • Shatel Mobile (MVNO): 0998 (Operating on MCI infrastructure with over 1 million subscribers)
  • Other MVNOs: 0999 and other specialized ranges

As of September 2019, Iran had over 115 million active mobile subscribers served by these operators.

Important Considerations:

  • Number Portability: Iran implemented Mobile Number Portability (MNP) in August 2016. Subscribers can change operators while keeping their phone numbers. The prefix alone may not indicate the current service provider.
  • MNP Process: To port your number, (1) clear all outstanding dues with your current operator, (2) stay on the network for at least 90 days, (3) ensure no ongoing porting requests or legal prohibitions exist. The process takes 3–5 working days, and you may port up to twice per year.
  • New Allocations: Mobile prefixes may expand as demand grows. Check the CRA for current prefix allocations via ITU publications.

How to Validate Iranian Phone Numbers (With Code Examples)

Implement robust number validation for applications handling Iranian phone numbers. Use regular expressions in JavaScript:

javascript
function validateIranianPhoneNumber(number, type = 'auto') {
  // Step 1: Remove all non-digit characters (spaces, dashes, parentheses)
  const cleanedNumber = number.replace(/\D/g, '');

  // Step 2: Normalize international format to domestic format
  // Converts +989123456789 or 989123456789 to 09123456789
  let normalizedNumber = cleanedNumber;
  if (cleanedNumber.startsWith('98') && cleanedNumber.length === 12) {
    normalizedNumber = '0' + cleanedNumber.substring(2);
  }

  const patterns = {
    // Landline: 0 + 2-digit area code (01-08) + 8 digits
    landline: /^0[1-8][0-9]\d{8}$/,

    // Mobile: 09 + operator prefix + 7 digits (total 11 digits)
    mobile: /^09[0-9]{9}$/,

    // MVNO: 099X specific ranges (Shatel and others)
    mvno: /^099[0-9]\d{7}$/,

    // Premium: Multiple prefix formats (909, 7020, 7070, 8081, 9922)
    premium: /^(909\d{7}|7020\d{4}|7070\d{4}|8081\d{4}|9922\d{4})$/,

    // Emergency: 3-digit services (110, 115, 125, 112)
    emergency: /^1(10|15|25|12)$/,

    // Auto-detect: Matches any valid Iranian number format
    auto: /^(0[1-8][0-9]\d{8}|09[0-9]{9}|909\d{7}|1(10|15|25|12))$/
  };

  const pattern = patterns[type];
  if (!pattern) {
    throw new Error(`Unknown number type: ${type}. Use 'landline', 'mobile', 'mvno', 'premium', 'emergency', or 'auto'.`);
  }

  return pattern.test(normalizedNumber);
}

// Example usage with error handling:
try {
  const isValid = validateIranianPhoneNumber('02112345678', 'landline');
  if (isValid) {
    console.log('Valid Iranian landline number');
  } else {
    console.log('Invalid number format');
  }
} catch (error) {
  console.error('Validation error:', error.message);
}

console.log(validateIranianPhoneNumber('+989123456789', 'mobile')); // true
console.log(validateIranianPhoneNumber('09981234567', 'mvno')); // true
console.log(validateIranianPhoneNumber('110', 'emergency')); // true
console.log(validateIranianPhoneNumber('0912 345 6789', 'auto')); // true (auto-cleans spaces)

// Format numbers for display
function formatIranianNumber(number) {
  const cleaned = number.replace(/\D/g, '');
  if (cleaned.startsWith('0') && cleaned.length === 11) {
    // Format as: 0XXX XXX XXXX (easier to read)
    return cleaned.replace(/^(\d{4})(\d{3})(\d{4})$/, '$1 $2 $3');
  }
  return number; // Return original if format doesn't match
}

console.log(formatIranianNumber('09123456789')); // "0912 345 6789"

Implementation Notes:

  • This validation covers common formats as of 2025
  • The auto type detects number types automatically; use it when you don't know the type in advance
  • Premium-rate patterns cover common formats but may require updates
  • Consider libphonenumber for production, as it handles international formats and edge cases better

Follow Validation Best Practices

  • Sanitize all input: Remove whitespace, hyphens, parentheses, and other non-digit characters before validation and processing. Example: Convert "(021) 1234-5678" to "02112345678".
  • Handle edge cases: Account for reserved numbers, blocked ranges, and potential future number format changes.
  • Update validation rules regularly: Stay current with Iran's numbering plan by monitoring ITU Operational Bulletins for CRA announcements.
  • Account for number portability: Mobile Number Portability (MNP) exists in Iran. A number's originally assigned operator may not match its current provider. Use a carrier lookup service or HLR (Home Location Register) query for accurate operator identification.
  • Store numbers in E.164 format: Use the international format (+98XXXXXXXXXX) for consistency and interoperability. Example: Store "0912 345 6789" as "+989123456789".
  • Comply with privacy regulations: Iran has no comprehensive data protection law as of 2025. However, multiple laws contain data protection provisions, including the Electronic Commerce Law (2004), Charter of Citizen's Rights (2016), and Cyber Crime Act (2011). These laws require consent for data collection, processing, and transfers. When handling international data, comply with GDPR or other applicable regulations in your jurisdiction.
  • Implement rate limiting: Apply rate limiting on validation endpoints to prevent abuse. Recommended: 100 requests per minute per IP for public APIs, 1,000 requests per minute for authenticated users, with exponential backoff for violations.

Dial Emergency Services

Call emergency services in Iran using these short codes:

  • Police: 110
  • Ambulance: 115
  • Red Crescent Ambulance: 112 (Hilal Ahmar)
  • Fire Department: 125
  • Emergency Redirect: 911 (redirects to 112 on mobile phones)

Critical Information: These numbers work without a SIM card, network coverage, or account credit. Emergency numbers are exempt from all call restrictions and blocks.

Accessibility for Hearing and Speech-Impaired Users: Individuals with hearing or speech impairments can contact emergency services by sending an SMS to 112. This free service provides text-based emergency response access, ensuring equitable access for persons with disabilities.

Appendix A: Complete Area Code Reference

This list represents major area codes in Iran. Check the Communication Regulatory Authority (CRA) for the complete and most up-to-date list via ITU publications.

Province Capitals and Major Cities:

  • 011: Mazandaran (Sari)
  • 013: Gilan (Rasht)
  • 017: Golestan (Gorgan)
  • 021: Tehran (Capital)
  • 023: Semnan
  • 024: Zanjan
  • 025: Qom
  • 026: Karaj (Alborz)
  • 028: Qazvin
  • 031: Isfahan
  • 034: Kerman
  • 035: Yazd
  • 038: Chaharmahal and Bakhtiari
  • 041: Tabriz (East Azerbaijan)
  • 044: Urmia (West Azerbaijan)
  • 045: Ardabil
  • 051: Mashhad (Razavi Khorasan)
  • 054: Bojnord (North Khorasan)
  • 056: Birjand (South Khorasan)
  • 058: Zahedan (Sistan and Baluchestan)
  • 061: Ahvaz (Khuzestan)
  • 066: Khorramabad (Lorestan)
  • 071: Shiraz (Fars)
  • 074: Shahrekord
  • 076: Hormozgan (Bandar Abbas)
  • 077: Bushehr
  • 081: Hamadan
  • 083: Kermanshah
  • 084: Ilam
  • 086: Markazi (Arak)
  • 087: Kurdistan (Sanandaj)

Appendix B: Premium-Rate Number Reference

Premium-rate services use various prefixes and formats. Costs vary significantly and typically exceed standard call rates by 5–10×.

Organizations use premium-rate numbers for television voting (particularly on entertainment shows), information services, technical support hotlines, directory assistance, and entertainment content. Billing is typically per-minute for call-based services, though some services charge per call or per session.

  • 7020 XXXX: Provincial premium-rate numbers (4 digits after prefix)
  • 7070 XXXX: National access premium-rate numbers (4 digits after prefix)
  • 909 XXX XXXX: Common premium-rate prefix (10 digits total), widely used for TV show voting and entertainment services
  • 9922 XXXX: Premium-rate numbers for IR-MCI subscribers (8 digits total)
  • 8081 XXXX: Another premium-rate format (8 digits total)
  • Other formats: Various other prefixes exist for specialized services

⚠️ Cost Warning: Verify the specific cost per minute or per call before dialing any premium-rate number. Some services charge very high rates (up to 10× standard call rates). Check with your operator for current premium-rate tariffs and dispute procedures if you encounter unauthorized charges.


Document Version: 2.0 Last Updated: January 2025 Sources:

This guide provides a solid foundation for working with Iranian phone numbers. For regulatory updates, licensing information, or technical specifications, consult the official Communication Regulatory Authority (CRA) announcements published in ITU Operational Bulletins.