{"library":"sharepy","title":"SharePy - Simple SharePoint Online authentication for Python","description":"SharePy is a Python library designed for simple authentication with SharePoint Online (Office 365) sites, enabling straightforward HTTP requests. It extends the popular Requests library, providing a familiar interface for interacting with SharePoint APIs. The current stable version is 2.0.0, released on February 4, 2022. The library has a slow release cadence, with major updates being infrequent, and there are growing concerns about its compatibility with modern Microsoft 365 authentication flows.","language":"python","status":"maintenance","last_verified":"Sat May 16","install":{"commands":["pip install sharepy"],"cli":null},"imports":["import sharepy\ns = sharepy.connect(...)","from sharepy.auth import SharePointOnline"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport sharepy\n\nSHAREPOINT_SITE = os.environ.get('SHAREPOINT_SITE', 'example.sharepoint.com')\nSHAREPOINT_USERNAME = os.environ.get('SHAREPOINT_USERNAME', 'user@example.com')\nSHAREPOINT_PASSWORD = os.environ.get('SHAREPOINT_PASSWORD', 'your_password')\n\nif not all([SHAREPOINT_SITE, SHAREPOINT_USERNAME, SHAREPOINT_PASSWORD]):\n    print(\"Please set SHAREPOINT_SITE, SHAREPOINT_USERNAME, and SHAREPOINT_PASSWORD environment variables.\")\n    exit(1)\n\ntry:\n    # Establish a connection to SharePoint Online\n    # Note: For MFA-enabled accounts, username/password might not work reliably.\n    # See warnings for more details.\n    s = sharepy.connect(SHAREPOINT_SITE, username=SHAREPOINT_USERNAME, password=SHAREPOINT_PASSWORD)\n    print(f\"Successfully connected to {SHAREPOINT_SITE}\")\n\n    # Example: Make an API call to get lists from the site\n    response = s.get(f'https://{SHAREPOINT_SITE}/_api/web/lists')\n    response.raise_for_status() # Raise an exception for bad status codes\n\n    print(\"SharePoint Lists:\")\n    for item in response.json()['d']['results']:\n        print(f\"- {item['Title']}\")\n\n    # Example: Download a file (replace with a real URL)\n    # file_url = f'https://{SHAREPOINT_SITE}/Shared Documents/MyDocument.pdf'\n    # s.getfile(file_url, 'downloaded_file.pdf')\n    # print(f\"Downloaded {file_url} to downloaded_file.pdf\")\n\nexcept sharepy.errors.AuthError as e:\n    print(f\"Authentication failed: {e}\")\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n","lang":"python","description":"This quickstart demonstrates how to connect to SharePoint Online using `sharepy.connect()` and make a simple API call to retrieve the site's lists. It's crucial to provide the SharePoint site URL, username, and password, preferably via environment variables for security. The library handles token management and digest token refreshing automatically.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":"2.0.0","pypi_latest":"2.0.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3,"avg_import_s":0.68,"wheel_type":"sdist"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.64,"mem_mb":13.5,"disk_size":"22.7M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.7,"import_time_s":0.43,"mem_mb":13.5,"disk_size":"23M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.8,"mem_mb":14.6,"disk_size":"25.3M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":2.6,"import_time_s":0.7,"mem_mb":14.6,"disk_size":"26M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.76,"mem_mb":15.2,"disk_size":"15.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.4,"import_time_s":0.79,"mem_mb":15.2,"disk_size":"16M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.77,"mem_mb":15.5,"disk_size":"14.9M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3.2,"import_time_s":0.77,"mem_mb":15.5,"disk_size":"15M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.57,"mem_mb":13.1,"disk_size":"22.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"sharepy","exit_code":0,"wheel_type":"sdist","failure_reason":null,"import_side_effects":"clean","install_time_s":3,"import_time_s":0.54,"mem_mb":13.1,"disk_size":"23M"}]}}