urllib3 is a powerful, user-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too.

urllib3 brings many critical features that are missing from the Python standard libraries:

  • Thread safety.

  • Connection pooling.

  • Client-side TLS/SSL verification.

  • File uploads with multipart encoding.

  • Helpers for retrying requests and dealing with HTTP redirects.

  • Support for gzip, deflate, and brotli encoding.

  • Proxy support for HTTP and SOCKS.

  • 100% test coverage.

urllib3 is powerful and easy to use:

>>> import urllib3
>>> http = urllib3.PoolManager()
>>> r = http.request('GET', 'http://httpbin.org/robots.txt')
>>> r.status
>>> r.data
'User-agent: *\nDisallow: /deny\n'

For Enterprise#


Professional support for urllib3 is available as part of the Tidelift Subscription. Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools.

Learn more about Tidelift Subscription Request a Demo for the Tidelift Subscription


urllib3 can be installed with pip

$ python -m pip install urllib3

Alternatively, you can grab the latest source code from GitHub:

$ git clone https://github.com/urllib3/urllib3.git
$ cd urllib3
$ git checkout 1.26.x
$ pip install .


The User Guide is the place to go to learn how to use the library and accomplish common tasks. The more in-depth Advanced Usage guide is the place to go for lower-level tweaking.

The API Reference documentation provides API-level documentation.

Who uses urllib3?#

urllib3 is one of the most downloaded packages on PyPI and is a dependency of many popular Python packages like Requests, Pip, and more!


urllib3 is made available under the MIT License. For more details, see LICENSE.txt.


We happily welcome contributions, please see Contributing for details.