SharePlum
Python SharePoint Library
What it is and what it does
SharePlum wraps the SharePoint web services API to let you read and write list data, manage folders and files, and authenticate to both on-premises and Office365 SharePoint sites without writing raw HTTP requests. It abstracts away XML parsing and SOAP details, presenting SharePoint lists as Python dictionaries and automating type conversion between SharePoint's internal representation and Python types.
The library supports NTLM authentication for on-premises deployments and cookie-based authentication for Office365. It can query lists with filters, upload and download files, and perform check-in/check-out operations on documents. However, the project has been archived since early 2023 with no active maintenance, so it is best suited for teams maintaining legacy SharePoint integrations rather than new projects.
Use it for:
- Retrieve and update SharePoint list items from Python scripts without manual SOAP or REST calls.
- Automate file uploads and downloads to SharePoint document libraries using folder operations.
- Migrate data from on-premises or Office365 SharePoint to other systems via Python ETL scripts.
- Query and filter SharePoint lists by column values to extract specific records for reporting.
- Perform bulk check-in and check-out operations on SharePoint documents programmatically.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
SharePlum provides a Python interface to SharePoint services, handling authentication and list/folder operations so you can work with SharePoint data using standard Python objects and methods.
No for new projects. SharePoint integration is better served by Microsoft's official SDKs or actively maintained alternatives. Install only if you are maintaining legacy code that already depends on SharePlum and cannot migrate, or if you are locked into an older SharePoint version with no other option. The abandoned status and lack of maintenance since 2023 create long-term risk.
Install
shareplum on PyPI
pip
pip install shareplumuv
uv add shareplumpoetry
poetry add shareplumInstalling SharePlum
Before you install
Low install friction with four runtime dependencies (lxml, requests, requests-ntlm, requests-toolbelt). However, the project is archived and abandoned as of 2023-02-08, with no maintenance for over 2 years; use only if you are locked into legacy SharePoint versions or cannot migrate.
License in practice
MIT license is permissive and imposes no restrictions on use, modification, or distribution in your own projects.
Quickstart
from shareplum import Site
from requests_ntlm import HttpNtlmAuth
auth = HttpNtlmAuth('DIR\\username', 'password')
site = Site('https://abc.com/sites/MySharePointSite/', auth=auth)
sp_list = site.List('list name')
data = sp_list.GetListItems('All Items', rowlimit=200)
Requires valid SharePoint site URL and appropriate authentication credentials (NTLM or Office365); network access to the SharePoint server is mandatory.
Verify before relying
- Whether the package works reliably with modern SharePoint Online or only legacy on-premises versions.
- Compatibility with Python versions beyond 3.8, given the classifiers only list up to 3.8.
- Whether requests-ntlm and requests-toolbelt remain actively maintained and secure.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — lxml, requests, requests-ntlm, requests-toolbelt |
| Maintenance | abandoned — 2,305 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 2,164,826/month — #3,236 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: SharePlum-0.5.1-py2.py3-none-any.whl
Keywords: SharePoint
Tags
More WWW/HTTP packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
h11h11 is a pure-Python HTTP/1.1 protocol…
permissive · top 100 on PyPI
httpxHTTPX is a fully featured HTTP client library…
permissive · top 100 on PyPI
httpcoreA minimal low-level HTTP client library that…
permissive · top 100 on PyPI
aiohttpaiohttp is an async HTTP client and server…
permissive · top 100 on PyPI
sharepyHandles authentication to SharePoint Online and…
copyleft · top 15,000 on PyPI
office365-rest-python-clientPython client library for Microsoft 365 and…
permissive · top 5,000 on PyPI
o365O365 provides a Pythonic interface to Microsoft…
permissive · top 5,000 on PyPI
office365Wraps the O365 library to provide a…
permissive · top 15,000 on PyPI
exchangelibexchangelib is an ORM-style client library for…
permissive · top 5,000 on PyPI
tableau-api-libProvides Python bindings to call Tableau…
permissive · top 5,000 on PyPI
scrapinghubA Python client library for communicating with…
permissive · top 15,000 on PyPI
pyicloudPyiCloud provides Python access to iCloud web…
permissive · top 15,000 on PyPI
requests-ntlmAdds NTLM authentication support to the…
permissive · top 5,000 on PyPI
tableauserverclientA Python client library for the Tableau Server…
permissive · top 1,000 on PyPI