{"id":24670,"library":"superannotate","title":"SuperAnnotate Python SDK","description":"Python SDK for the SuperAnnotate platform, enabling programmatic management of annotation projects, items, classes, exports, and team workflows. Current version 4.5.4, supports Python >=3.10, released approximately every 1-2 months.","status":"active","version":"4.5.4","language":"python","source_language":"en","source_url":"https://github.com/superannotateai/superannotate-python-sdk","tags":["annotation","computer-vision","data-labeling","api-client"],"install":[{"cmd":"pip install superannotate","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"Main client class introduced in v4.x. Legacy import sa.SAClient is obsolete.","symbol":"SAClient","correct":"from superannotate import SAClient"}],"quickstart":{"code":"from superannotate import SAClient\nimport os\n\n# Initialize client with API token\nsa = SAClient(api_token=os.environ.get('SA_API_TOKEN', ''))\n\n# Example: list projects\nprojects = sa.list_projects()\nfor p in projects:\n    print(p['name'], p['id'])","lang":"python","description":"Initialize SAClient and list projects. Replace SA_API_TOKEN with your token."},"warnings":[{"fix":"Migrate from `import superannotate as sa` to `from superannotate import SAClient` and instantiate with `sa = SAClient(...)`. Function signatures changed.","message":"In v4.x the synchronous client SAClient replaces the legacy sa module. All method calls must go through SAClient instance.","severity":"breaking","affected_versions":"<4.0.0"},{"fix":"If pinning Pydantic v1, stay on 4.5.2 or upgrade Pydantic to v2. Refrain from direct manipulation of SAClient response pydantic models.","message":"Pydantic v2 migration in v4.5.3. If you rely on Pydantic v1 compatibility, your code may break when using SAClient models directly.","severity":"breaking","affected_versions":">=4.5.3"},{"fix":"Always set API token via environment variable SA_API_TOKEN or constructor argument api_token. Verify token is active in SuperAnnotate UI.","message":"API token must be valid and passed as parameter or set via SA_API_TOKEN environment variable. Missing token raises ValueError with unclear message.","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 --upgrade superannotate` to get v4.x. Then use `from superannotate import SAClient`.","cause":"Importing from superannotate before v4.0 where SAClient didn't exist, or incorrect import path.","error":"AttributeError: module 'superannotate' has no attribute 'SAClient'"},{"fix":"Set SA_API_TOKEN environment variable or pass api_token='...' to SAClient constructor.","cause":"Initializing SAClient without API token.","error":"ValueError: The api_token must be provided either as an argument or via the SA_API_TOKEN environment variable."},{"fix":"Upgrade Pydantic to v2 (`pip install pydantic>=2.0`) or downgrade superannotate to 4.5.2.","cause":"Using Pydantic v1 with SAClient >=4.5.3 which now uses Pydantic v2.","error":"pydantic.errors.PydanticUserError: Field name \"project_name\" shadows an attribute in parent model"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}