requests-ntlm
This package allows for HTTP NTLM authentication using the requests library.
Decision gist · record as of 2026-08-14
Yes, if you need to authenticate against NTLM-protected servers. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. It is the standard solution for this specific use case within the requests ecosystem. Not needed if your HTTP targets use standard authentication schemes.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low friction installation with three straightforward dependencies (requests, pyspnego, cryptography).
- Actively maintained with recent commits and a stable release history since 2013.
License · maintenance · safety
ISC (permissive) — ISC license is permissive, allowing use in commercial and proprietary projects with minimal restrictions.
last release 2024-06-09 (796 days) · last repo commit 2026-03-12 · 345 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 15,442,318 downloads/mo, #1,187 on PyPI
Alternatives
Verify before relying
pip install requests-ntlm
import requests
from requests_ntlm import HttpNtlmAuth
requests.get('http://ntlm_protected_site.com', auth=HttpNtlmAuth('domain\\username', 'password'))- Whether connection pooling with sessions provides measurable performance gains for repeated NTLM-authenticated requests in typical workloads.
- Support for NTLM v2 and other protocol variants beyond basic NTLM authentication.
What it is and what it does
requests-ntlm bridges the gap between the requests library and Windows NTLM authentication, a protocol commonly required by corporate and legacy HTTP servers. It provides an HttpNtlmAuth class that integrates directly with requests' authentication framework, handling the NTLM challenge-response handshake transparently. The package depends on pyspnego for protocol handling and cryptography for cryptographic operations.
Typical usage involves passing HttpNtlmAuth to a request's auth parameter with domain-qualified credentials. For efficiency, the documentation recommends using requests.Session to enable connection pooling, since NTLM authenticates at the connection level rather than per-request. The package supports Python 3.8 through 3.12 and is classified as Beta, reflecting its mature but still-evolving status.
Use it for
- Authenticate requests to corporate intranet servers that require NTLM credentials instead of basic HTTP auth.
- Build automation scripts that interact with Windows-protected APIs or file shares over HTTP.
- Integrate with legacy enterprise systems that mandate NTLM for HTTP access.
- Establish persistent sessions to NTLM-protected endpoints using connection pooling for efficiency.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to authenticate against NTLM-protected servers.
The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. It is the standard solution for this specific use case within the requests ecosystem. Not needed if your HTTP targets use standard authentication schemes.
Install
requests-ntlm on PyPI
Before you install
Low friction installation with three straightforward dependencies (requests, pyspnego, cryptography). Actively maintained with recent commits and a stable release history since 2013.
License in practice
ISC license is permissive, allowing use in commercial and proprietary projects with minimal restrictions.
Quickstart
pip install requests-ntlm
import requests
from requests_ntlm import HttpNtlmAuth
requests.get('http://ntlm_protected_site.com', auth=HttpNtlmAuth('domain\\username', 'password'))
Verify before relying
- Whether connection pooling with sessions provides measurable performance gains for repeated NTLM-authenticated requests in typical workloads.
- Support for NTLM v2 and other protocol variants beyond basic NTLM authentication.
Package facts
| License | ISC permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 3 packagescryptographypyspnegorequests |
| Maintenance | Actively maintained 796 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 15,442,318 / month, #1,187 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: ISC License (ISCL)Programming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: requests_ntlm-1.3.0-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 › “requests ntlm support”
- requests-ntlmAdds NTLM authentication support to the requests library, allowing…
- requests-ntlm2Adds NTLM authentication support to the requests library, enabling…
- httpx-ntlmAdds NTLM authentication support to HTTPX, enabling HTTP requests to…
Give your agent the search over MCP, or paste the wish link into any chat.
More WWW/HTTP 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 is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
h11 is a pure-Python HTTP/1.1 protocol implementation that handles parsing and serializing HTTP messages without any built-in I/O, letting you integrate it with any network layer you choose.
HTTPX is a fully featured HTTP client library for Python that provides both sync and async APIs, with support for HTTP/1.1 and HTTP/2, plus an integrated command-line client.
Install it if you are building new projects or modernizing existing ones that rely on HTTP.
A minimal low-level HTTP client library that sends HTTP requests with thread-safe and task-safe connection pooling, supporting HTTP/1.1, HTTP/2, proxies, and both sync and async interfaces.
aiohttp is an async HTTP client and server framework built on asyncio, supporting both WebSockets and middleware-based routing for building concurrent web applications.
Install it if you need async HTTP client or server capabilities in asyncio-based applications.
See also httpx-ntlm · requests-ntlm2 · requests-ntlm3 · ntlm-auth · requests-credssp · pyspnego · requests-negotiate-sspi · requests-kerberos · requests-auth · msldap