{"id":23396,"library":"catalystwan","title":"Cisco Catalyst WAN SDK","description":"Official Python SDK for automating Cisco Catalyst SD-WAN (Viptela) solutions. Current version 0.41.5, released monthly. Supports Python 3.8+ and provides both synchronous and asynchronous clients to interact with vManage API endpoints, including device configuration, policy management, templates, and monitoring.","status":"active","version":"0.41.5","language":"python","source_language":"en","source_url":"https://github.com/cisco-en-programmability/catalystwan-sdk","tags":["cisco","catalystwan","sd-wan","viptela","network-automation"],"install":[{"cmd":"pip install catalystwan","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"HTTP client used by async session","package":"httpx","optional":false},{"reason":"HTTP client used by synchronous session","package":"requests","optional":false}],"imports":[{"note":"ManagerSession is not exposed at package root; must import from submodule.","wrong":"from catalystwan import ManagerSession","symbol":"ManagerSession","correct":"from catalystwan.session import ManagerSession"},{"note":"Same as above - function is in session module.","wrong":"from catalystwan import create_manager_session","symbol":"create_manager_session","correct":"from catalystwan.session import create_manager_session"}],"quickstart":{"code":"from catalystwan.session import create_manager_session\nimport os\n\nurl = os.environ.get('VMANAGE_URL', 'https://10.0.0.1')\nusername = os.environ.get('VMANAGE_USERNAME', 'admin')\npassword = os.environ.get('VMANAGE_PASSWORD', 'admin')\n\nwith create_manager_session(url=url, username=username, password=password) as session:\n    devices = session.api.devices.get()\n    print(len(devices))","lang":"python","description":"Authenticate and list devices using synchronous session."},"warnings":[{"fix":"Update imports: from catalystwan.session import ManagerSession, create_manager_session","message":"In v0.41.0, the import path for session functions changed. Use 'catalystwan.session' instead of 'catalystwan'.","severity":"breaking","affected_versions":">=0.41.0"},{"fix":"Replace ManagerSession() with create_manager_session() in a with statement.","message":"The 'ManagerSession' class is deprecated in favor of 'create_manager_session' context manager.","severity":"deprecated","affected_versions":">=0.41.0"},{"fix":"Use full URL like 'https://vmanage.example.com:8443' if non-default port.","message":"vManage API requires port 443; do not include port in URL if default, but if custom port needed, include it as :port.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run: pip install catalystwan","cause":"Package not installed.","error":"ModuleNotFoundError: No module named 'catalystwan'"},{"fix":"Use: from catalystwan.session import ManagerSession","cause":"Incorrect import path - ManagerSession is not at package root.","error":"ImportError: cannot import name 'ManagerSession' from 'catalystwan'"},{"fix":"Verify VMANAGE_URL, VMANAGE_USERNAME, VMANAGE_PASSWORD environment variables or arguments.","cause":"Invalid username, password, or vManage URL.","error":"catalystwan.exceptions.CatalystWanError: Login failed. Check your credentials."}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}