{"id":6781,"library":"proxmoxer","title":"Proxmoxer","description":"Proxmoxer is a Python wrapper around the Proxmox REST API v2, supporting Proxmox Virtual Environment (PVE), Proxmox Mail Gateway (PMG), and Proxmox Backup Server (PBS). It enables API calls over HTTPS, SSH, and the `pvesh` utility. The library dynamically creates attributes to mirror the Proxmox API structure, making interaction intuitive. The current stable version is 2.3.0, and it receives regular updates.","status":"active","version":"2.3.0","language":"en","source_language":"en","source_url":"https://github.com/proxmoxer/proxmoxer","tags":["proxmox","api","virtualization","wrapper","pve","pbs","pmg"],"install":[{"cmd":"pip install proxmoxer","lang":"bash","label":"Base Installation"},{"cmd":"pip install proxmoxer[https]","lang":"bash","label":"With HTTPS Backend (includes requests)"},{"cmd":"pip install proxmoxer[ssh_paramiko]","lang":"bash","label":"With SSH (Paramiko) Backend"},{"cmd":"pip install proxmoxer[openssh]","lang":"bash","label":"With SSH (OpenSSH) Backend"}],"dependencies":[{"reason":"Required for the 'https' backend for making HTTP API calls.","package":"requests","optional":true},{"reason":"Required for the 'ssh_paramiko' backend for SSH-based API access.","package":"paramiko","optional":true},{"reason":"Required for the 'openssh' backend for SSH-based API access.","package":"openssh_wrapper","optional":true}],"imports":[{"symbol":"ProxmoxAPI","correct":"from proxmoxer import ProxmoxAPI"},{"note":"The AuthenticationError class was moved from the backends.https module to the top-level proxmoxer package in version 2.x.","wrong":"from proxmoxer.backends.https import AuthenticationError","symbol":"AuthenticationError","correct":"from proxmoxer import AuthenticationError"}],"quickstart":{"code":"import os\nfrom proxmoxer import ProxmoxAPI\n\nPROXMOX_HOST = os.environ.get('PROXMOX_HOST', 'your_proxmox_host')\nPROXMOX_USER = os.environ.get('PROXMOX_USER', 'root@pam')\nPROXMOX_PASSWORD = os.environ.get('PROXMOX_PASSWORD', 'your_secret_password')\n# For self-signed certificates in dev/test, set verify_ssl=False. \n# For production, ensure proper certificate verification.\nPROXMOX_VERIFY_SSL = os.environ.get('PROXMOX_VERIFY_SSL', 'False').lower() == 'true'\n\nif not PROXMOX_HOST or not PROXMOX_USER or not PROXMOX_PASSWORD:\n    print(\"Please set PROXMOX_HOST, PROXMOX_USER, and PROXMOX_PASSWORD environment variables.\")\n    exit(1)\n\ntry:\n    proxmox = ProxmoxAPI(\n        PROXMOX_HOST,\n        user=PROXMOX_USER,\n        password=PROXMOX_PASSWORD,\n        verify_ssl=PROXMOX_VERIFY_SSL\n    )\n\n    print(f\"Connected to Proxmox at {PROXMOX_HOST} as {PROXMOX_USER}\")\n\n    print(\"\\n--- Proxmox Nodes ---\")\n    for node in proxmox.nodes.get():\n        print(f\"Node: {node['node']} (Status: {node['status']})\")\n\n    print(\"\\n--- QEMU VMs ---\")\n    for node in proxmox.nodes.get():\n        for vm in proxmox.nodes(node['node']).qemu.get():\n            print(f\"  Node: {node['node']} - VMID: {vm['vmid']}, Name: {vm['name']}, Status: {vm['status']}\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")","lang":"python","description":"This quickstart demonstrates how to connect to a Proxmox host using the HTTPS backend and retrieve a list of nodes and QEMU virtual machines. Credentials are loaded from environment variables for security. Remember to install `requests` for the HTTPS backend to work."},"warnings":[{"fix":"Avoid direct use of `ProxmoxResourceBase`. Instead, use `ProxmoxResource` or the high-level API access methods.","message":"The `ProxmoxResourceBase` class has been removed in proxmoxer 2.x. While primarily an internal change, direct references to it will break.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Update all imports and references to `AuthenticationError` to use `from proxmoxer import AuthenticationError`.","message":"The `AuthenticationError` class was moved. Its previous path, `proxmoxer.backends.https.AuthenticationError`, is deprecated.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Migrate to using API tokens as the primary authentication method. If an existing token is passed as a password, `proxmoxer` will attempt to renew it. Refer to Proxmoxer documentation for API token usage.","message":"The `ProxmoxHTTPTicketAuth` class and its associated `auth_token` and `csrf_token` arguments are no longer supported.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"For development or testing environments, set `verify_ssl=False` in the `ProxmoxAPI` constructor. For production, ensure proper certificate handling by either installing the Proxmox CA certificate or providing a valid CA bundle path.","message":"SSL certificate verification (`verify_ssl`) defaults to `True`. For Proxmox instances using self-signed certificates, this will lead to SSL/TLS errors.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Install the necessary dependencies manually (e.g., `pip install requests`) or use the extras syntax (e.g., `pip install proxmoxer[https]`) for your chosen backend.","message":"Backend dependencies (e.g., `requests` for HTTPS, `paramiko` for SSH) are optional and not installed by default with `pip install proxmoxer`.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-15T00:00:00.000Z","next_check":"2026-07-14T00:00:00.000Z","problems":[]}