requests-toolbelt
A utility belt for advanced users of python-requests
Decision gist · record as of 2026-08-14
Yes, with a note on maintenance. Requests-toolbelt is stable, widely used, and carries no known vulnerabilities. Its single dependency (requests) keeps install friction low. However, the dormant maintenance status (last release 1201 days ago) means it may not track the latest requests or Python ecosystem changes. Install it if you need its specific utilities—particularly MultipartEncoder for streaming uploads—but do not expect rapid updates to new requests versions or Python releases.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires requests library version 2.1.0 or later; minimum tested version is 2.1.0.
- Low install friction with a single runtime dependency on requests.
- Maintenance is dormant—last release was 1201 days ago—but the repository remains active with a recent commit on 2025-01-09 and no archived status, suggesting it is stable rather than abandoned.
License · maintenance · safety
Apache 2.0 (permissive) — Licensed under Apache 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
last release 2023-05-01 (1201 days) · last repo commit 2025-01-09 · 1,037 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 299,705,307 downloads/mo, #137 on PyPI
Alternatives
Verify before relying
pip install requests-toolbelt
from requests_toolbelt import MultipartEncoder
import requests
m = MultipartEncoder(fields={'field0': 'value', 'field1': 'value'})
r = requests.post('http://example.com/post', data=m,
headers={'Content-Type': m.content_type})- Whether the dormant maintenance status (1201 days since last release) affects compatibility with current requests versions.
- Full list of all utilities and adapters available beyond those shown in the description excerpt.
What it is and what it does
Requests-toolbelt is a collection of utilities that extend the requests library with features too specialized for the core library itself. Its main attraction is the MultipartEncoder, which handles streaming multipart form-data encoding for file uploads and form submissions, allowing you to construct and send complex multipart requests with fine-grained control. Beyond that, it provides SSL protocol adapters for HTTPS connections, a ForgetfulCookieJar to disable cookie storage, session helpers like BaseUrlSession, and utilities for constructing User-Agent strings.
The package depends only on requests and supports Python 2.7 and Python 3.4 through 3.11. It is classified as Production/Stable and has been maintained since 2014, though releases have slowed significantly—the latest version (1.0.0) was released on 2023-05-01. It is widely used (ranked 137 on PyPI by download volume) and carries no known security vulnerabilities.
Use it for
- Upload files via multipart form-data with streaming to avoid loading entire payloads into memory.
- Configure HTTPS connections to use a specific SSL/TLS protocol version via SSLAdapter.
- Create sessions with a base URL prefix to simplify repeated requests to the same service.
- Disable cookie persistence in a requests session using ForgetfulCookieJar.
- Generate properly formatted User-Agent headers for HTTP requests.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, with a note on maintenance.
Requests-toolbelt is stable, widely used, and carries no known vulnerabilities. Its single dependency (requests) keeps install friction low. However, the dormant maintenance status (last release 1201 days ago) means it may not track the latest requests or Python ecosystem changes. Install it if you need its specific utilities—particularly MultipartEncoder for streaming uploads—but do not expect rapid updates to new requests versions or Python releases.
Install
requests-toolbelt on PyPI
Before you install
Low install friction with a single runtime dependency on requests. Maintenance is dormant—last release was 1201 days ago—but the repository remains active with a recent commit on 2025-01-09 and no archived status, suggesting it is stable rather than abandoned.
Requires requests library version 2.1.0 or later; minimum tested version is 2.1.0.
License in practice
Licensed under Apache 2.0 (permissive), allowing use in commercial and proprietary projects with minimal restrictions beyond attribution.
Quickstart
pip install requests-toolbelt
from requests_toolbelt import MultipartEncoder
import requests
m = MultipartEncoder(fields={'field0': 'value', 'field1': 'value'})
r = requests.post('http://example.com/post', data=m,
headers={'Content-Type': m.content_type})
Verify before relying
- Whether the dormant maintenance status (1201 days since last release) affects compatibility with current requests versions.
- Full list of all utilities and adapters available beyond those shown in the description excerpt.
Package facts
| License | Apache 2.0 permissive |
| Python support | Supports the current Python release >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagerequests |
| Maintenance | Dormant 1,201 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 299,705,307 / month, #137 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5Programming Language :: Python :: 3.6Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPy |
Evidence: requests_toolbelt-1.0.0-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “multipart form data encoder”
- requests-toolbeltProvides utilities for the requests library, including streaming…
- multipartParses multipart/form-data submissions with both incremental…
- microsoft-kiota-serialization-multipartHandles multipart/form-data serialization for Kiota-generated API…
Give your agent the search over MCP, or paste the wish link into any chat.
Similar packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests-File adds file:// URL support to the Requests library, allowing you to read local files through the same Session interface you use for HTTP requests.
Parses multipart/form-data submissions with both incremental non-blocking and streaming blocking interfaces, supporting ASGI, asyncio, WSGI, and CGI applications.
Parses multipart/form-data streams chunk-by-chunk without buffering entire payloads, enabling efficient handling of large file uploads in web applications.
Converts a Python requests request object into an equivalent cURL command string, useful for debugging, documentation, or reproducing HTTP requests outside Python.
Converts Python requests and httpx HTTP request objects into equivalent curl command-line strings for debugging, logging, or manual execution.
However, the last release was 2023-06-09; verify that it handles the request and httpx versions in your environment before relying on it for production logging.
See also uncurl · python-multipart · requests-ntlm · pydiscourse