phonenumbers
Python version of Google's common library for parsing, formatting, storing and validating international phone numbers.
Install
phonenumbers on PyPI
pip
pip install phonenumbersuv
uv add phonenumberspoetry
poetry add phonenumbersPackage facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=2.5) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 12 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: phonenumbers-9.0.36-py2.py3-none-any.whl
About phonenumbers
from the package's own PyPI description — quoted content, verbatim
phonenumbers Python Library
This is a Python port of Google's libphonenumber library It supports Python 2.5-2.7 and Python 3.x (in the same codebase, with no 2to3 conversion needed).
Original Java code is Copyright (C) 2009-2015 The Libphonenumber Authors.
Release HISTORY, derived from upstream release notes.
Installation
Install using pip with:
pip install phonenumbers
Example Usage
The main object that the library deals with is a PhoneNumber object. You can create this from a string
representing a phone number using the parse function, but you also need to...
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Parses, validates, formats, and analyzes international phone numbers using Google's libphonenumber algorithm, with optional geocoding, carrier identification, and timezone lookup.
Installs cleanly with no runtime dependencies and zero friction; actively maintained with a release 12 days ago and 3765 repository stars.
Licensed under Apache-2.0 (permissive), allowing commercial use, modification, and distribution with minimal restrictions.
Usage
pip install phonenumbers
import phonenumbers
x = phonenumbers.parse("+442083661177", None)
print(phonenumbers.format_number(x, phonenumbers.PhoneNumberFormat.E164))
Verdict: A mature, dependency-free library for international phone number handling with strong maintenance signals, permissive licensing, and no known vulnerabilities. Suitable for production use in applications requiring phone number parsing, validation, or formatting.
Needs verification
- Whether the geocoder, carrier, and timezone submodules are included in the standard install or require separate packages
- Performance characteristics when processing large volumes of phone numbers
- Whether Python 2.5–2.7 support is still actively tested given the 2026 release date
Similar packages
copyleft · top 1,000 on PyPI
tzdatapermissive · top 100 on PyPI
factory-boypermissive · top 1,000 on PyPI
tzlocalpermissive · top 1,000 on PyPI
supabasepermissive · top 1,000 on PyPI
types-pytzpermissive · top 1,000 on PyPI
holidayspermissive · top 1,000 on PyPI
pytzpermissive · top 100 on PyPI
pendulumpermissive · top 1,000 on PyPI
arrowpermissive · top 1,000 on PyPI