{"id":20953,"library":"assemblyline-service-client","title":"Assemblyline Service Client","description":"The official Python client for building services that integrate with Assemblyline 4, a scalable file triage and malware analysis platform. Current version 4.7.3.1, maintained by the Canadian Centre for Cyber Security. Releases are tagged with major.minor.patch and stable suffixes.","status":"active","version":"4.7.3.1","language":"python","source_language":"en","source_url":"https://github.com/CybercentreCanada/assemblyline-service-client/","tags":["assemblyline","malware-analysis","service-client","cybersecurity"],"install":[{"cmd":"pip install assemblyline-service-client","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Required for core data structures","package":"assemblyline-common","optional":false},{"reason":"Required for datastore access","package":"assemblyline-remote-datastore","optional":false}],"imports":[{"note":"Wrong import pattern (old assemblyline package structure)","wrong":"from assemblyline.service_client import ServiceClient","symbol":"ServiceClient","correct":"from assemblyline_service_client import ServiceClient"},{"note":"Moved to service-client package","wrong":"from assemblyline.common import ServiceRequest","symbol":"ServiceRequest","correct":"from assemblyline_service_client import ServiceRequest"},{"note":"Moved to service-client package","wrong":"from assemblyline.common import ServiceResponse","symbol":"ServiceResponse","correct":"from assemblyline_service_client import ServiceResponse"}],"quickstart":{"code":"from assemblyline_service_client import ServiceClient, ServiceRequest, ServiceResponse\n\n# Initialize client - in production use proper auth\nclient = ServiceClient(\"http://localhost:5001\", apikey=(\"user\", \"key\"))\n\n# Process a submission\nrequest = ServiceRequest({\"sha256\": \"...\", \"metadata\": {}})\nresponse = client.do_task(request)\nprint(response.results)","lang":"python","description":"Minimal example of creating a ServiceClient, building a ServiceRequest, and processing a task."},"warnings":[{"fix":"Change imports to 'from assemblyline_service_client import ...'","message":"Version 4.0 changed the import paths; legacy code using 'from assemblyline import ...' will break.","severity":"breaking","affected_versions":"<4.0.0"},{"fix":"Pass a ServiceRequest object to do_task().","message":"The 'do_task' method signature changed in v4.1.0; previously accepted positional args, now requires a ServiceRequest object.","severity":"breaking","affected_versions":">=4.1.0"},{"fix":"Use apikey=('myuser', 'mykey') in constructor.","message":"API key authentication requires a tuple (username, key) not a string.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run 'pip install assemblyline-service-client' in the correct Python environment.","cause":"Package not installed or installed in wrong environment.","error":"ModuleNotFoundError: No module named 'assemblyline_service_client'"},{"fix":"Wrap the request data in a ServiceRequest object.","cause":"Passing arguments incorrectly to do_task() after version 4.1.0.","error":"TypeError: do_task() missing 1 required positional argument: 'request'"},{"fix":"Ensure apikey is a tuple (username, key) and credentials are valid.","cause":"API key tuple format incorrect or credentials wrong.","error":"assemblyline_service_client.exceptions.AuthenticationError: Invalid API key"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}