$npx skillfedfor your agent

phonenumbers

Python version of Google's common library for parsing, formatting, storing and validating international phone numbers.

Worth itPyPI CommunicationsReleased Aug 202638.8M downloads / moApache-2.0Pure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — phonenumbers-9.0.36-py2.py3-none-any.whl
v9.0.36 · released 2026-08-01 · Python >=2.5

Yes. phonenumbers is a mature, actively maintained library with no security vulnerabilities, zero runtime dependencies, and permissive licensing. It solves a well-defined problem (international phone number handling) that is difficult to do correctly without reference data. The recent release cadence and strong GitHub presence indicate ongoing support. Install it when you need to parse, validate, or format phone numbers from any country.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Low friction installation with no runtime dependencies.
  • Active maintenance with a recent release (13 days old) and strong community engagement (3766 stars).
  • Supports Python 2.5 through 3.12, though Python 2 support is legacy.

License · maintenance · safety

Apache-2.0 (permissive) — Apache-2.0 permissive license allows commercial and private use with minimal restrictions. You must include a copy of the license and state significant changes, but there are no copyleft obligations.

last release 2026-08-01 (13 days) · last repo commit 2026-08-01 · 3,766 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 38,754,338 downloads/mo, #707 on PyPI

Verify before relying

pip install phonenumbers

import phonenumbers

# Parse a phone number
number = phonenumbers.parse("+442083661177", None)
print(phonenumbers.format_number(number, phonenumbers.PhoneNumberFormat.NATIONAL))
# Output: 020 8366 1177

# Validate
print(phonenumbers.is_valid_number(number))  # True
  • Whether geocoder, carrier, and timezone submodules are included by default or require separate installation
  • Memory overhead of the full library compared to phonenumberslite variant mentioned in description
Same gist for agents: .md · .json

What it is and what it does

phonenumbers is a Python port of Google's libphonenumber library for handling international telephone numbers. It provides parsing, validation, formatting, and metadata lookup across all countries and regions. The library normalizes phone numbers into a canonical PhoneNumber object, allowing you to validate whether a number is possible (correct digit count) or actually valid (assigned to a real exchange), and format it in multiple standard formats (national, international, E.164).

Beyond basic parsing and validation, it supports geographic lookup (determining which city a number belongs to), carrier identification for mobile numbers, and timezone inference. The library manages metadata on-demand per region to minimize memory overhead, though extended features like geocoding (~19 MiB) and carrier lookup (~1 MiB) load separately. It handles both E.164 format (globally unique) and regional formats with country context, and includes a real-time formatter for building phone number input UIs.

Use it for

  • Validate user-submitted phone numbers during account registration or checkout to catch typos and invalid formats early
  • Normalize phone numbers from various international formats into a canonical form for database storage and comparison
  • Format phone numbers for display in a user's local or international format based on application context
  • Extract geographic location or carrier information from phone numbers for analytics, fraud detection, or routing
  • Build a phone number input field with real-time formatting feedback as the user types

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

phonenumbers is a mature, actively maintained library with no security vulnerabilities, zero runtime dependencies, and permissive licensing. It solves a well-defined problem (international phone number handling) that is difficult to do correctly without reference data. The recent release cadence and strong GitHub presence indicate ongoing support. Install it when you need to parse, validate, or format phone numbers from any country.

Install

phonenumbers on PyPI

Before you install

Low friction installation with no runtime dependencies. Active maintenance with a recent release (13 days old) and strong community engagement (3766 stars). Supports Python 2.5 through 3.12, though Python 2 support is legacy.

License in practice

Apache-2.0 permissive license allows commercial and private use with minimal restrictions. You must include a copy of the license and state significant changes, but there are no copyleft obligations.

Quickstart

pip install phonenumbers

import phonenumbers

# Parse a phone number
number = phonenumbers.parse("+442083661177", None)
print(phonenumbers.format_number(number, phonenumbers.PhoneNumberFormat.NATIONAL))
# Output: 020 8366 1177

# Validate
print(phonenumbers.is_valid_number(number))  # True

Verify before relying

  • Whether geocoder, carrier, and timezone submodules are included by default or require separate installation
  • Memory overhead of the full library compared to phonenumberslite variant mentioned in description

Package facts

LicenseApache-2.0 permissive
Python supportSupports the current Python release >=2.5
Install frictionLow. Pure-Python wheel
Runtime dependenciesNone
MaintenanceActively maintained 13 days since the last release
Last repo commit
First released
Downloads38,754,338 / month, #707 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableIntended Audience :: DevelopersOperating System :: OS IndependentProgramming Language :: Python :: 2Programming Language :: Python :: 2.5Programming Language :: Python :: 2.6Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyTopic :: Communications :: Telephony

Evidence: phonenumbers-9.0.36-py2.py3-none-any.whl

Tags

Capabilities
parse international phone numbersvalidate phone number formatphone number formatting librarygeocode phone numberscarrier lookup phonephone number validationE.164 phone format
Topics
telephonyinternationalizationdata-validation

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “parse international phone numbers”

  • phonenumbersParse, validate, format, and analyze international phone numbers…
  • phonenumbersliteParses, validates, formats, and analyzes international phone numbers…
  • django-phonenumber-fieldProvides a Django model field for storing, validating, and formatting…

Give your agent the search over MCP, or paste the wish link into any chat.

More Communications packages

pyasn1 Worth it
PyPI · Python Modules · released Jul 2026

Pyasn1 encodes and decodes ASN.1 data structures using BER, CER, DER, and native Python codecs, allowing you to serialize complex data for network protocols and file formats.

Install it if you need to work with ASN.1-based protocols or formats; it is the standard library for this in Python and has no known vulnerabilities.

permissive licensepure Python · 3.8+
570.9Mdownloads / mo
pyasn1-modules Worth it
PyPI · Python Modules · released Mar 2025

Provides a collection of ASN.1 data structures expressed as Python classes, built on the pyasn1 library, for working with ASN.1-based protocols and standards.

BSD-3-Clausepure Python · 3.8+aging
462.5Mdownloads / mo
kombu Worth it
PyPI · Python Modules · released Dec 2025

Kombu is a messaging library that provides a high-level Python interface to AMQP and other message brokers, supporting pluggable transports for RabbitMQ, Redis, MongoDB, Amazon SQS, and others.

Install it if you are building any distributed system that requires reliable message passing.

permissive licensepure Python · 3.9+
58.9Mdownloads / mo
humanfriendly With conditions
PyPI · Software Development · released Sep 2021

Formats and parses numbers, file sizes, timespans, and other values into human-readable text; provides terminal interaction utilities including ANSI text styling and user prompts.

MITpure Pythonabandoned
54.3Mdownloads / mo
coloredlogs With conditions
PyPI · Software Development · released Jun 2021

Adds colored output to Python's standard logging module using ANSI escape sequences, with automatic fallback support for Windows terminals.

However, it is abandoned and receives no maintenance, so it will not adapt to future Python changes or platform updates.

MITpure Pythonabandoned
39.6Mdownloads / mo
twilio Worth it
PyPI · Python Modules · released Aug 2026

Python client library for the Twilio API that enables sending SMS messages, making calls, and managing voice and messaging services through Twilio's cloud platform.

Install it if you need to integrate SMS, voice calls, or other Twilio services into a Python application.

MITpure Python · 3.7.0+
20.4Mdownloads / mo

See also django-phonenumber-field · phone-iso3166 · phonenumberslite · django-phonenumbers · pycountry · ipinfo · IP2Location · country_list · vonage-numbers · geocoder