{"id":51412886,"url":"https://github.com/HumanSignal/label-studio-sdk","last_synced_at":"2026-07-23T08:00:48.762Z","repository":{"id":39699811,"uuid":"423601686","full_name":"HumanSignal/label-studio-sdk","owner":"HumanSignal","description":"Label Studio SDK","archived":false,"fork":false,"pushed_at":"2026-07-16T14:29:26.000Z","size":59889,"stargazers_count":188,"open_issues_count":75,"forks_count":126,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-07-16T16:16:35.661Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://api.labelstud.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HumanSignal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-11-01T20:08:18.000Z","updated_at":"2026-07-16T14:31:10.000Z","dependencies_parsed_at":"2026-06-17T20:05:06.719Z","dependency_job_id":null,"html_url":"https://github.com/HumanSignal/label-studio-sdk","commit_stats":{"total_commits":588,"total_committers":59,"mean_commits":9.966101694915254,"dds":0.7329931972789115,"last_synced_commit":"114c2b30bd36b2ff4577abc40f05955630a59f6b"},"previous_names":["humansignal/label-studio-sdk","heartexlabs/label-studio-sdk"],"tags_count":47,"template":false,"template_full_name":null,"purl":"pkg:github/HumanSignal/label-studio-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HumanSignal","download_url":"https://codeload.github.com/HumanSignal/label-studio-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HumanSignal%2Flabel-studio-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35794548,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-23T02:00:06.683Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-04T16:01:49.933Z","updated_at":"2026-07-23T08:00:48.753Z","avatar_url":"https://github.com/HumanSignal.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# Label Studio Python Library\n\n[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-SDK%20generated%20by%20Fern-brightgreen)](https://github.com/fern-api/fern)\n[![pypi](https://img.shields.io/pypi/v/label-studio-sdk.svg)](https://pypi.python.org/pypi/label-studio-sdk)\n\nThe Label Studio Python Library provides convenient access to the Label Studio API from applications written in Python.\n\u003c!-- End Title  --\u003e\n\n\u003c!-- Outline --\u003e\n\n\n# Documentation\nExplore the Label Studio API documentation [here](https://api.labelstud.io/).\n\n\n# Installation\n\n```sh\npip install --upgrade label-studio-sdk\n# or\npoetry add label-studio-sdk\n```\n\n# Usage\n\n```python\nfrom label_studio_sdk import LabelStudio\n\nclient = LabelStudio(\n    base_url='YOUR_LABEL_STUDIO_URL',  \n    api_key=\"YOUR_API_KEY\",\n)\n```\n\n## CLI\n\nThe SDK also includes a CLI entrypoint that mirrors SDK resources and methods.\n\nOn **leaf commands** (for example `projects create`), use **`-h`** for minimal help (one-line summary, SDK signature, and options) and **`--help`** for the full generated documentation (parameters, examples, return shape, and options). Top-level groups only register **`--help`**.\n\n```bash\nexport LABEL_STUDIO_API_KEY=\"YOUR_API_KEY\"\nexport LABEL_STUDIO_URL=\"YOUR_BASE_URL\"\n\n# minimal help for one command\nlabel-studio-sdk projects create -h\n\n# full help (longer)\nlabel-studio-sdk projects create --help\n\n# top-level\nlabel-studio-sdk --help\n\n# List projects\nlabel-studio-sdk projects list\n\n# Create a project (generic key=value params)\nlabel-studio-sdk projects create \\\n  --param title=\"CLI Example\" \\\n  --param 'label_config=\u003cView\u003e\u003cText name=\"text\" value=\"$text\"/\u003e\u003c/View\u003e'\n```\n\n### Running the CLI with uv\n\n```bash\n# from PyPI\nuv run --with label_studio_sdk label-studio-sdk --help\n\n# from github\nuv run --with git+https://github.com/HumanSignal/label-studio-sdk.git label-studio-sdk --help\n\n# from local\nuv run --with-editable . label-studio-sdk --help\n```\n\n### Interface CLI\n\nUse `label-studio-sdk interface` to scaffold, validate, preview, sync, and start projects from local interface JSX files. See [the interface CLI guide](interface-cli.md).\n\n# Versions\n\n## SDK 2.0.0\n\nIn August 2025, we released SDK version 2.0.0. \n\nThis version has a number of documentation and functional improvements over SDK 1. \n\n### Enhancements \n\n**Enterprise-only**\n\n- Added a new `projects.stats.iaa` endpoint to return stats from the inter-annotator agreement matrix. \n- You can now update tasks that have comments.\n- Added support for `sync` to `S3s` (S3 with IAM role) exports.\n\n**Enterprise and open source**\n\n- Expanded support to include all project settings, many of which were missing in SDK 1. For example, in Enterprise environments you can now configure `assignment_settings`, `review_settings`, `annotator_evaluation`, and many more.\n- Fixed passing the `project` parameter in `actions.list()` (broken in SDK 1). \n- Relaxed request/response validation reduces pydantic errors in SDK 2.\n\n### Breaking changes\n\n**Enterprise-only**\n\n- `comments.create` no longer accepts a `project` argument.\n- In `prompts.indicators`, the `pk` parameter is now `id`.\n- In `prompts.runs` and `prompts.versions`, the `id` parameter is now `prompt_id`.\n- `workspaces.members.list` responses are now objects instead of dictionaries.\n\n**Enterprise and open source**\n\n- In `projects.exports` calls, the project ID is now passed as `id`, while the export ID is passed as `export_pk`.\n- Predictions returned in task responses are now objects instead of dictionaries. \n\n## SDK 1.0+\n\nSDK 1 was released in June 2024. \n\nIf you use the Label Studio SDK 1 package in any automated pipelines, we strongly recommend pinning your SDK version to `\u003c2.0.0` until you can reconcile the breaking changes. \n\n\n## SDK \u003c1\n\nThe version of `label-studio-sdk\u003c1` is deprecated and no longer supported. We recommend updating to the latest version.\n\n\u003cdetails\u003e\n\n\u003csummary\u003e To use SDK \u003c1 \u003c/summary\u003e\n\nIf you still want to use the deprecated version, you can install it with `pip install \"label-studio-sdk\u003c1\"`. \n\nOR You can find the branch with the old version by cloning the repository and checking out the branch as follows:\n\n```sh\ngit clone https://github.com/HumanSignal/label-studio-sdk.git\ncd label-studio-sdk\ngit fetch origin\ngit checkout release/0.0.34\n```\n\nOR you can change your import statements as follows:\n```python\nfrom label_studio_sdk import Client\nfrom label_studio_sdk.data_manager import Filters, Column, Operator, Type\nfrom label_studio_sdk._legacy import Project\n```\n\n\u003c/details\u003e\n\n# Example: Create a new project with tasks\n\n```python\n# Import the SDK and the client module\nfrom label_studio_sdk import LabelStudio\n\nclient = LabelStudio(\n    base_url=\"http://localhost:8080\",   # \u003c-- put your LS URL here\n    api_key=\"YOUR_API_KEY\",             # \u003c-- put your API key here\n)\n\nlabel_config = \"\"\"\n\u003cView\u003e\n  \u003cHeader value=\"Choose text sentiment:\"/\u003e\n  \u003cText name=\"text\" value=\"$text\"/\u003e\n  \u003cChoices name=\"sentiment\" toName=\"text\" choice=\"single\"\u003e\n    \u003cChoice value=\"Positive\"/\u003e\n    \u003cChoice value=\"Negative\"/\u003e\n    \u003cChoice value=\"Neutral\"/\u003e\n  \u003c/Choices\u003e\n\u003c/View\u003e\n\"\"\"\n\n# Create project\nproject = client.projects.create(\n    title=\"Sentiment Classification\",\n    label_config=label_config\n)\n\n# (Optional) validate the config to catch mistakes early\nclient.projects.validate_label_config(id=project.id, label_config=label_config)\n\n# Create a single task\ntask = client.tasks.create(\n    project=project.id,\n    data={\"text\": \"Label Studio is the best!\"}  # 'text' matches value=\"$text\"\n)\nprint(f\"Created task id: {task.id}\")\n\n# Or create multiple tasks at once\nclient.projects.import_tasks(\n    id=project.id,\n    request=[\n        {\"text\": \"I love Label Studio\"},\n        {\"text\": \"Label Studio helps me ship faster\"},\n    ]\n)\n```\n\nFor additional examples, see [our API reference](https://api.labelstud.io/). \n\n\u003c!-- Begin Contributing, generated by Fern  --\u003e\n# Contributing\n\nPlease follow [this guide to contribute to the SDK](https://github.com/HumanSignal/label-studio-client-generator?tab=readme-ov-file#how-to-contribute)\n\nWhile we value open-source contributions to this SDK, this library is generated programmatically. \nAdditions made directly to this library would have to be moved over to our generation code, \notherwise they would be overwritten upon the next generated release. Feel free to open a PR as\n a proof of concept, but know that we will not be able to merge it as-is. We suggest opening \nan issue first to discuss with us!\n\nOn the other hand, contributions to the README are always very welcome!\n\u003c!-- End Contributing  --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHumanSignal%2Flabel-studio-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHumanSignal%2Flabel-studio-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHumanSignal%2Flabel-studio-sdk/lists"}