skillfed

url-normalize

URL normalization for Python

url-normalize Permissive license MIT Active 100 v3.0.0 released

Install

url-normalize on PyPI

pip

pip install url-normalize

uv

uv add url-normalize

poetry

poetry add url-normalize

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 1 — idna
Maintenance actively maintained — 110 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: url_normalize-3.0.0-py3-none-any.whl

Keywords: url, normalization, normalize, normalizer

Programming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

About url-normalize

from the package's own PyPI description — quoted content, verbatim

url-normalize

tests (image) Coveralls (image) PyPI (image) Python Versions (image) License (image) Ruff (image)

A Python library for standardizing and normalizing URLs. Ideal for database deduplication, caching, web crawling, and anywhere you need to ensure that equivalent URLs resolve to the exact same string.

```python from url_normalize import url_normalize

Fixes IDN, lowercases host/scheme, removes default ports, resolves path...

Read as markdown · JSON record · Source repository · Homepage

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

Standardizes and normalizes URLs by handling internationalized domain names, lowercasing schemes/hosts, removing default ports, resolving path segments, and optionally filtering query parameters—useful for deduplication, caching, and web crawling.

Minimal friction: pure Python wheel with only idna as a runtime dependency. Actively maintained as of 2026-04-25 with 100+ GitHub stars and no known vulnerabilities.

MIT license (permissive) permits commercial and private use with minimal restrictions—suitable for most projects.

Usage

pip install url-normalize

from url_normalize import url_normalize

print(url_normalize("HTTP://www.FOO.com:80/foo/../bar?q=1#frag"))
# Output: 'https://www.foo.com/bar?q=1#frag'

Requires Python 3.10 or later.

Verdict: A well-maintained, lightweight URL normalization library with RFC-compliant handling of IDN domains, path segments, and query parameters. No security issues, low install friction, and permissive licensing make it a solid choice for applications requiring robust URL standardization.

Needs verification

  • Real-world performance characteristics (throughput, memory) on large URL batches.
  • Compatibility with non-standard or malformed URLs beyond the documented examples.
  • Whether the humanization feature preserves all normalization properties in practice.
url normalizationstandardize urlsidn domain handlingurl deduplicationquery parameter filteringpath normalizationurl canonicalization

Similar packages