2025 Label Studio API完全指南:从入门到精通所有端点
还在为Label Studio API调用头疼?参数记不住?端点找不到?本文汇总所有RESTful API端点参数,附实战案例,零基础也能5分钟实现数据标注自动化!读完你将获得:
- 完整API端点清单与权限说明
- 3种认证方式快速配置
- 5个核心业务场景代码示例
- 常见错误排查指南
Label Studio API简介
Label Studio API(应用程序编程接口)是基于RESTful架构设计的后端服务接口,允许开发者通过HTTP请求与Label Studio平台进行交互。通过API,你可以实现项目创建、任务管理、数据导入导出等自动化操作,无需手动操作前端界面。
项目API路由定义在label_studio/core/urls.py文件中,主要包含以下模块:
- 项目管理(projects)
- 任务处理(tasks)
- 数据存储(io_storages)
- 机器学习集成(ml)
- 用户权限(users)
快速开始:API认证与基础调用
认证方式
Label Studio API支持三种认证方式,可根据使用场景选择:
-
Token认证(推荐)
curl -H "Authorization: Token abc123" https://localhost:8080/api/projects/Token可在用户设置页面生成,权限范围与生成用户一致。
-
Session认证
curl -c cookies.txt -d "username=user&password=pass" https://localhost:8080/login/ curl -b cookies.txt https://localhost:8080/api/projects/ -
JWT认证
curl -X POST https://localhost:8080/api/jwt/token/ -d '{"username":"user","password":"pass"}' curl -H "Authorization: Bearer <token>" https://localhost:8080/api/projects/
认证相关代码实现可参考label_studio/jwt_auth/urls.py。
API响应格式
所有API响应均采用JSON格式,标准成功响应示例:
{
"id": 1,
"title": "图像分类项目",
"created_at": "2025-10-18T02:14:49Z"
}
错误响应示例:
{
"error": "权限不足",
"code": 403,
"detail": "用户没有项目创建权限"
}
核心API端点详解
项目管理API
项目管理API允许你创建、查询、更新和删除Label Studio项目。主要端点定义在label_studio/projects/api.py。
| 端点 | 方法 | 描述 | 参数 |
|---|---|---|---|
/api/projects/ | GET | 获取项目列表 | page=1&page_size=10 |
/api/projects/ | POST | 创建新项目 | title, description, label_config |
/api/projects/{id}/ | GET | 获取项目详情 | - |
/api/projects/{id}/ | PATCH | 更新项目 | title, description |
/api/projects/{id}/ | DELETE | 删除项目 | - |
创建项目示例:
curl -X POST https://localhost:8080/api/projects/ \
-H "Authorization: Token abc123" \
-H "Content-Type: application/json" \
-d '{
"title": "产品图片分类",
"description": "对电商产品图片进行分类标注",
"label_config": "<View><Image name='image' value='$image_url'/></View>"
}'
任务管理API
任务API用于管理标注任务,包括创建任务、获取任务列表、更新任务状态等功能。详细实现见label_studio/tasks/api.py。
| 端点 | 方法 | 描述 | 参数 |
|---|---|---|---|
/api/tasks/ | GET | 获取任务列表 | project=1&page=1 |
/api/tasks/ | POST | 创建任务 | project, data |
/api/tasks/{id}/ | GET | 获取任务详情 | - |
/api/tasks/{id}/ | PATCH | 更新任务 | data, is_labeled |
/api/tasks/{id}/ | DELETE | 删除任务 | - |
创建任务示例:
import requests
API_URL = "https://localhost:8080/api/tasks/"
TOKEN = "abc123"
headers = {
"Authorization": f"Token {TOKEN}",
"Content-Type": "application/json"
}
data = {
"project": 1,
"data": {
"image_url": "/static/samples/product1.jpg",
"product_id": "P12345"
}
}
response = requests.post(API_URL, headers=headers, json=data)
print(response.json())
数据导入导出API
数据导入导出API支持将外部数据导入Label Studio,或将标注结果导出为各种格式。相关实现位于label_studio/data_import/和label_studio/data_export/目录。
| 端点 | 方法 | 描述 | 参数 |
|---|---|---|---|
/api/projects/{id}/import | POST | 导入数据 | file, format |
/api/projects/{id}/export | GET | 导出数据 | format=JSON |
导出标注结果示例:
curl -X GET https://localhost:8080/api/projects/1/export \
-H "Authorization: Token abc123" \
-o annotations.json
高级应用场景
批量标注自动化
结合项目API和任务API,可以实现批量标注流程自动化:
- 创建项目
- 导入任务数据
- 获取标注结果
- 导出数据用于模型训练
相关代码示例可参考scripts/update_ml_tutorials.py。
与机器学习模型集成
Label Studio API可与机器学习模型无缝集成,实现预测结果的自动导入和模型训练数据的导出。具体实现见label_studio/ml/目录。
导入模型预测结果:
curl -X POST https://localhost:8080/api/predictions/ \
-H "Authorization: Token abc123" \
-H "Content-Type: application/json" \
-d '{
"task": 1,
"result": {
"from_name": "image_class",
"to_name": "image",
"value": {"labels": ["电子产品"]}
},
"model_version": "v1.0"
}'
常见问题排查
401 Unauthorized错误
- 检查Token是否有效
- 确认请求头格式是否正确
- 验证用户是否有访问权限
404 Not Found错误
- 检查端点URL是否正确
- 确认资源ID是否存在
- 验证用户是否有权限访问该资源
500 Server Error错误
- 查看服务器日志获取详细错误信息
- 检查请求参数格式是否正确
- 确认Label Studio版本是否支持该API
更多API文档可通过访问http://localhost:8080/docs/api/schema/swagger-ui/查看交互式API文档。
总结与展望
Label Studio API为开发者提供了强大的自动化工具,可大幅提高数据标注效率。通过本文介绍的API端点和示例,你可以快速实现项目自动化管理、批量数据处理和机器学习集成。
未来Label Studio API将支持更多高级功能,包括实时协作、更丰富的权限控制和自定义工作流。建议定期关注项目更新,及时了解新功能。
如果你觉得本文有帮助,请点赞收藏关注三连,下期将带来"Label Studio Webhook实战指南",敬请期待!
本文基于Label Studio最新代码编写,所有示例均可直接运行。完整项目代码可通过
git clone https://gitcode.com/GitHub_Trending/la/label-studio获取。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





