{"id":8548,"library":"python-alfresco-api","title":"Python Alfresco API Client","description":"Python Client for all Alfresco Content Services REST APIs, built with Pydantic v2 models for robust data validation and serialization, and offering event support. It provides comprehensive coverage of Alfresco's API endpoints through dedicated subclients. The current version is 1.1.5, with frequent updates incorporating new API features and improvements.","status":"active","version":"1.1.5","language":"python","source_language":"en","source_url":"https://github.com/stevereiner/python-alfresco-api","tags":["alfresco","api-client","pydantic","content-services","cms"],"install":[{"cmd":"pip install python-alfresco-api","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"Core data validation and serialization models (requires v2)","package":"Pydantic"},{"reason":"HTTP communication with Alfresco API","package":"requests"}],"imports":[{"wrong":"from alfresco_api.client import AlfrescoClient","symbol":"AlfrescoCoreClient","correct":"from python_alfresco_api import AlfrescoCoreClient"},{"symbol":"AlfrescoAuthClient","correct":"from python_alfresco_api import AlfrescoAuthClient"},{"symbol":"AlfrescoDiscoveryClient","correct":"from python_alfresco_api import AlfrescoDiscoveryClient"}],"quickstart":{"code":"import os\nfrom alfresco_api.client import AlfrescoClient\nfrom alfresco_api.model.nodes import NodeBodyCreate\n\n# Configure Alfresco connection via environment variables\nALFRESCO_HOST = os.environ.get('ALFRESCO_HOST', 'http://localhost:8080')\nALFRESCO_USERNAME = os.environ.get('ALFRESCO_USERNAME', 'admin')\nALFRESCO_PASSWORD = os.environ.get('ALFRESCO_PASSWORD', 'admin')\n\n# Initialize the client\ntry:\n    client = AlfrescoClient(\n        host=ALFRESCO_HOST,\n        username=ALFRESCO_USERNAME,\n        password=ALFRESCO_PASSWORD\n    )\n\n    # Example: Get the 'Company Home' node by its path (v1.1.5+ feature)\n    nodes_api = client.nodes\n    company_home_node = nodes_api.get_node_by_path(relative_path='/Company Home')\n    print(f\"Successfully connected. Company Home Node ID: {company_home_node.entry.id}\")\n\n    # Example: Create a new folder\n    new_folder_name = 'MyTestFolder'\n    folder_create_body = NodeBodyCreate(\n        name=new_folder_name,\n        node_type='cm:folder',\n        properties={'cm:title': 'My Test Folder via Python API'}\n    )\n    created_folder = nodes_api.create_node(\n        node_id=company_home_node.entry.id,\n        node_body_create=folder_create_body\n    )\n    print(f\"Created folder '{new_folder_name}' with ID: {created_folder.entry.id}\")\n\nexcept Exception as e:\n    print(f\"An error occurred: {e}\")\n","lang":"python","description":"This quickstart initializes the Alfresco client using environment variables for credentials, then fetches the 'Company Home' node by path and creates a new folder within it. Ensure your Alfresco instance is running and accessible."},"warnings":[{"fix":"Review the Pydantic model definitions (e.g., `NodeBodyCreate`) and update your data structures to conform to Pydantic v2 standards. Consult Pydantic v2 migration guides if necessary.","message":"The client is built on Pydantic v2. If you are migrating from a project using Pydantic v1 or an older version of this client, you may encounter `ValidationError` due to changes in model definitions and validation logic.","severity":"breaking","affected_versions":"All versions >= 1.0.0"},{"fix":"Double-check the `ALFRESCO_HOST`, `ALFRESCO_USERNAME`, and `ALFRESCO_PASSWORD` environment variables or the parameters passed directly to the `AlfrescoClient` constructor. Ensure the Alfresco instance is running and network accessible.","message":"Incorrect Alfresco host, username, or password will lead to authentication failures or connection errors. This is a common setup mistake.","severity":"gotcha","affected_versions":"All versions"},{"fix":"Upgrade to `python-alfresco-api` version 1.1.5 or newer to leverage the most robust path-based node retrieval. For older versions, you might need to rely on ID-based lookups or custom queries.","message":"The `get_node_by_path` method (using `relative_path`) for efficient node retrieval by path was significantly improved and stabilized in v1.1.5. Older versions might have limited or different behavior.","severity":"gotcha","affected_versions":"< 1.1.5"}],"env_vars":null,"search_vec":"'1.1.5':45 'alfresco':2,9,34,55 'api':3,13,36,51,57 'api-cli':56 'built':14 'client':4,6,58 'cms':63 'comprehens':31 'content':10,61 'content-servic':60 'coverag':32 'current':42 'data':21 'dedic':39 'endpoint':37 'event':27 'featur':52 'frequent':47 'improv':54 'incorpor':49 'model':18 'new':50 'offer':26 'provid':30 'pydant':16,59 'python':1,5 'rest':12 'robust':20 'serial':24 'servic':11,62 'subclient':40 'support':28 'updat':48 'v2':17 'valid':22 'version':43","created_at":"2026-04-16T17:02:46.026299+00:00","updated_at":"2026-04-16T17:02:46.026299+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"1.1.5","cli_name":"","cli_version":null,"type":"library","homepage":"https://www.alfresco.com","github":"https://github.com/stevereiner/python-alfresco-api","docs":"https://github.com/stevereiner/python-alfresco-api/docs","changelog":null,"pypi":"https://pypi.org/project/python-alfresco-api/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["http-networking","serialization","web-framework"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-06-30","last_verified":"2026-06-30","next_check":"2026-07-30","install_tag":null}}