

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 SSL/TLS verification.
- File uploads with multipart encoding.
- Helpers for retrying requests and dealing with HTTP redirects.
- Support for gzip, deflate, brotli, and zstd encoding.
- Proxy support for HTTP and SOCKS.
- 100% test coverage.
urllib3 is powerful and easy to use:
>>> import urllib3
>>> resp = urllib3.request("GET", "http://httpbin.org/robots.txt")
>>> resp.status
200
>>> resp.data
b"User-agent: *\nDisallow: /deny\n"
Installing
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
$ pip install .
Documentation
urllib3 has usage and reference documentation at urllib3.readthedocs.io.
urllib3 has a community Discord channel for asking questions and
collaborating with other contributors. Drop by and say hello đź‘‹
Contributing
urllib3 happily accepts contributions. Please see our
contributing documentation
for some tips on getting started.
Security Disclosures
To report a security vulnerability, please use the
Tidelift security contact.
Tidelift will coordinate the fix and disclosure with maintainers.
Maintainers
đź‘‹
If your company benefits from this library, please consider sponsoring its
development.
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.