# What changed in tldextract

> 12 changes in tldextract 4 to 5 from its official release notes, upgrade guides and advisories: 4 breaking, 2 new APIs and options. Each one cited. Sources checked 2026-10-24. HTML: https://unstale.sh/pypi/tldextract/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## tldextract 5

### Breaking changes

- Support for Python 3.9 was dropped because it is EOL. (5.3.1) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.3.1)
- ExtractResult is no longer a tuple, so iterating, indexing, slicing, and unpacking it no longer work; reference its fields directly. (5.0.0) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.0.0)
- Support for EOL Python 3.7 was dropped. (5.0.0) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.0.0)

### New APIs and options

- Adds a clearer environment variable for the default fetch timeout while retaining support for TLDEXTRACT_CACHE_TIMEOUT. (5.4.0) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.4.0)
- Sets the default suffix list URLs. (5.4.0) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.4.0)

### Performance

- IP address search space was sped up by using isdecimal() instead of isdigit(). (5.3.1) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.3.1)

### Fixes and other changes

- Fixes hostname extraction from already-parsed URLs with credentials, ports, or IPv6 addresses. (5.4.0) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.4.0)
- Preserves private suffix metadata when a longer wildcard suffix does not match. (5.4.0) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.4.0)
- Fixes stray dots when the suffix or domain is empty. (5.3.2) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.3.2)
- Python 3.14 and PyPy 3.11 are now supported. (5.3.1) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/5.3.1)

## tldextract 4

### Breaking changes

- Adds a fourth ExtractResult field indicating whether the extraction came from the PSL's private domains. (4.0.0) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/4.0.0)

### Fixes and other changes

- When private suffixes are enabled and a private suffix exists, extraction now always includes that suffix. (4.0.0) — [release notes](https://github.com/john-kurkowski/tldextract/releases/tag/4.0.0)
