项目 API

项目和项目设置、项目成员、项目工具、项目启用的任务类型、版本和快速访问。

由群历 REST API 的 OpenAPI 契约(openapi/qunli-api.yaml,qunli-api 提交 f18e40d)生成。路径都相对于 https://qunli.co;认证见认证,响应包装、分页和错误格式见约定。字段说明是契约里的英文原文。

项目

GET/api/v1/accounts/{account_id}/projects

List accessible projects in the account

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
status查询active | archived否

响应

状态说明返回
200Project listdata: Project[]
401Missing or invalid authentication.ProblemDetails

POST/api/v1/accounts/{account_id}/projects

Create a project

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。

请求体application/json,必填

字段类型必填说明
projectProjectInput是Writable attributes for create/update (wrapped under project).
project.namestring否
project.iconstring | null否
project.colorstring | null否
project.stagestring否
project.statusstring否
project.descriptionstring | null否
project.start_datestring (date) | null否
project.target_datestring (date) | null否
project.visibilitystring否
project.project_typestring否
project.task_type_idsstring (uuid)[]否
project.cover_urlstring | null否https URL of a gallery cover image. Setting it removes an uploaded cover; send it and cover_image as null to remove the cover.
project.cover_imagestring | null否Active Storage direct-upload signed_id of an uploaded cover image (JPG, PNG, WebP, GIF or AVIF, at most 20MB). Clears cover_url.
project.cover_positioninteger否Vertical focal point of the cover, 0 (top) to 100 (bottom).

响应

状态说明返回
201Project createddata: Project
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
422Validation failed.ProblemDetails

GET/api/v1/accounts/{account_id}/projects/{id}

Fetch a project

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
id路径string是

响应

状态说明返回
200Projectdata: Project
401Missing or invalid authentication.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

PATCH/api/v1/accounts/{account_id}/projects/{id}

Update a project

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
id路径string是

请求体application/json,必填

字段类型必填说明
projectProjectInput是Writable attributes for create/update (wrapped under project).
project.namestring否
project.iconstring | null否
project.colorstring | null否
project.stagestring否
project.statusstring否
project.descriptionstring | null否
project.start_datestring (date) | null否
project.target_datestring (date) | null否
project.visibilitystring否
project.project_typestring否
project.task_type_idsstring (uuid)[]否
project.cover_urlstring | null否https URL of a gallery cover image. Setting it removes an uploaded cover; send it and cover_image as null to remove the cover.
project.cover_imagestring | null否Active Storage direct-upload signed_id of an uploaded cover image (JPG, PNG, WebP, GIF or AVIF, at most 20MB). Clears cover_url.
project.cover_positioninteger否Vertical focal point of the cover, 0 (top) to 100 (bottom).

响应

状态说明返回
200Updated projectdata: Project
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails
422Validation failed.ProblemDetails

DELETE/api/v1/accounts/{account_id}/projects/{id}

Delete a project (into 已删除的项目 for 30 days)

Moves the project to the team's deleted projects: it disappears for everyone at once and can be restored for 30 days (POST /trashed_projects/{id}/restoration), then it is purged with everything in it. Human project admins and team owners/admins only; robots get 403. To keep a finished project readable, archive it instead (PATCH status archived).

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
id路径string是

响应

状态说明返回
200The deleted projectdata: TrashedProject
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

PUT/api/v1/accounts/{account_id}/projects/{id}/update_task_types

Replace the project's enabled task types (legacy verb path; see api-conventions §9)

Project admins and team owners/admins only; others get 403.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
id路径string是

请求体application/json,必填

字段类型必填说明
task_type_idsstring (uuid)[]是

响应

状态说明返回
200Updated projectdata: Project
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

项目设置

GET/api/v1/accounts/{account_id}/projects/{project_id}/config

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

响应

状态说明返回
200Project configdata: ProjectConfig
401Missing or invalid authentication.ProblemDetails

PATCH/api/v1/accounts/{account_id}/projects/{project_id}/config

Project admins and team owners/admins only; others get 403.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

请求体application/json,必填

字段类型必填说明
project_configobject否

响应

状态说明返回
200Updated project configdata: ProjectConfig
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
422Validation failed.ProblemDetails

成员

GET/api/v1/accounts/{account_id}/members

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。

响应

状态说明返回
200Members across the account's projectsdata: Member[]
401Missing or invalid authentication.ProblemDetails

GET/api/v1/accounts/{account_id}/projects/{project_id}/members

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

响应

状态说明返回
200Project membersdata: Member[]
401Missing or invalid authentication.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

POST/api/v1/accounts/{account_id}/projects/{project_id}/members

Project admins and team owners/admins only (403 otherwise). user_id must be an active or paused member of the team (422 otherwise).

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

请求体application/json,必填

字段类型必填说明
memberobject是
member.user_idstring (uuid)否
member.rolestring否

响应

状态说明返回
201Created memberdata: Member
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails
422Validation failed.ProblemDetails

GET/api/v1/accounts/{account_id}/projects/{project_id}/members/{id}

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

响应

状态说明返回
200Memberdata: Member
401Missing or invalid authentication.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

PATCH/api/v1/accounts/{account_id}/projects/{project_id}/members/{id}

Changes the member's project role (admin 管理员, member 成员, reader 仅查看). Project admins and team owners/admins only; others get 403. Granting or removing admin is for people: an agent gets 403 whatever its role. Agents can't be made project admins (403), and demoting the project's last admin who is still in the team is 409.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

请求体application/json,必填

字段类型必填说明
memberobject是
member.roleadmin | member | reader否

响应

状态说明返回
200Updated memberdata: Member
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails
409State conflict.ProblemDetails
422Validation failed.ProblemDetails

DELETE/api/v1/accounts/{account_id}/projects/{project_id}/members/{id}

Project admins and team owners/admins only; others get 403. Removing the project's last admin who is still in the team is 409.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

响应

状态说明返回
200Deleteddata: null
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails
409State conflict.ProblemDetails

项目工具

GET/api/v1/accounts/{account_id}/projects/{project_id}/tools

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

响应

状态说明返回
200Toolsdata: Tool[]
401Missing or invalid authentication.ProblemDetails

GET/api/v1/accounts/{account_id}/projects/{project_id}/tools/{id}

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

响应

状态说明返回
200Tooldata: Tool
401Missing or invalid authentication.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

PATCH/api/v1/accounts/{account_id}/projects/{project_id}/tools/{id}

Project admins and team owners/admins only; others get 403.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

请求体application/json,必填

字段类型必填说明
toolobject是
tool.namestring否
tool.slugstring否
tool.descriptionstring否
tool.statusstring | null否

响应

状态说明返回
200Updated tooldata: Tool
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails
422Validation failed.ProblemDetails

DELETE/api/v1/accounts/{account_id}/projects/{project_id}/tools/{id}

Disable a tool (sets status null; returns the tool)

Project admins and team owners/admins only; others get 403.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

响应

状态说明返回
200Disabled tooldata: Tool
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

项目的任务类型

GET/api/v1/accounts/{account_id}/projects/{project_id}/task_types

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

响应

状态说明返回
200Project task type linksdata: ProjectTaskType[]
401Missing or invalid authentication.ProblemDetails

POST/api/v1/accounts/{account_id}/projects/{project_id}/task_types

Project admins and team owners/admins only; others get 403.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

请求体application/json,必填

字段类型必填说明
project_task_typeobject是
project_task_type.task_type_idstring (uuid)否

响应

状态说明返回
200Existing linkdata: ProjectTaskType
201Created linkdata: ProjectTaskType
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
422Validation failed.ProblemDetails

GET/api/v1/accounts/{account_id}/projects/{project_id}/task_types/{id}

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

响应

状态说明返回
200Linkdata: ProjectTaskType
401Missing or invalid authentication.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

PATCH/api/v1/accounts/{account_id}/projects/{project_id}/task_types/{id}

Project admins and team owners/admins only; others get 403.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

请求体application/json,必填

字段类型必填说明
project_task_typeobject否

响应

状态说明返回
200Updated linkdata: ProjectTaskType
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

DELETE/api/v1/accounts/{account_id}/projects/{project_id}/task_types/{id}

Project admins and team owners/admins only; others get 403.

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

响应

状态说明返回
200Deleteddata: null
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

版本

GET/api/v1/accounts/{account_id}/projects/{project_id}/versions

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

响应

状态说明返回
200Versionsdata: Version[]
401Missing or invalid authentication.ProblemDetails

POST/api/v1/accounts/{account_id}/projects/{project_id}/versions

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是

请求体application/json,必填

字段类型必填说明
versionobject是
version.namestring否
version.statusstring否
version.descriptionstring否
version.start_datestring否
version.effective_datestring否

响应

状态说明返回
201Created versiondata: Version
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
422Validation failed.ProblemDetails

GET/api/v1/accounts/{account_id}/projects/{project_id}/versions/{id}

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

响应

状态说明返回
200Versiondata: Version
401Missing or invalid authentication.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

PATCH/api/v1/accounts/{account_id}/projects/{project_id}/versions/{id}

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

请求体application/json,必填

字段类型必填说明
versionobject是Only the fields sent change.
version.namestring否
version.statusactive | archived | trashed否
version.descriptionstring | null否
version.start_datestring (date) | null否
version.effective_datestring (date) | null否

响应

状态说明返回
200Updated versiondata: Version
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails
422Validation failed.ProblemDetails

DELETE/api/v1/accounts/{account_id}/projects/{project_id}/versions/{id}

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
project_id路径string是
id路径string是

响应

状态说明返回
200Deleteddata: null
401Missing or invalid authentication.ProblemDetails
403Authenticated but not permitted.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

快速访问

GET/api/v1/accounts/{account_id}/quick_accesses

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。

响应

状态说明返回
200Quick accessesdata: QuickAccess[]
401Missing or invalid authentication.ProblemDetails

POST/api/v1/accounts/{account_id}/quick_accesses

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。

请求体application/json,必填

字段类型必填说明
quick_accessobject是
quick_access.project_idstring (uuid)否

响应

状态说明返回
201Created quick accessdata: QuickAccess
401Missing or invalid authentication.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails
422Validation failed.ProblemDetails

DELETE/api/v1/accounts/{account_id}/quick_accesses/{id}

Remove a quick access (id is the project_id)

参数

参数位置类型必填说明
account_id路径string是团队的数字 id,和网页地址里的相同,例如 2025。
id路径string是

响应

状态说明返回
200Removeddata: object
401Missing or invalid authentication.ProblemDetails
404Resource does not exist or has been trashed.ProblemDetails

数据结构

上面的响应用到的对象。字段的类型是另一个对象时,它也列在这里。

Project

字段类型必填说明
idstring (uuid)是
public_idstring是
account_idstring (uuid)是
account_public_idstring是
namestring是
cover_urlstring | null是
cover_positioninteger是
iconstring | null是
colorstring | null是
visibilityinvite_only | team是
project_typeproject | team_space | headquarter是
parent_idstring (uuid) | null是
parent_public_idstring | null是
descriptionstring | null是
stagebacklog | planning | in_progress | completed | cancelled是
statusactive | archived | trashed是
start_datestring (date) | null是
target_datestring (date) | null是
creator_idstring (uuid)是
created_atstring (date-time)是
updated_atstring (date-time)是
toolsTool[]是
membersMember[]是
versionsVersion[]是
task_type_idsstring (uuid)[]是Task types enabled in this project, in the team's task type order. The first is the default type of a task created without task_type_id.

TrashedProject

字段类型必填说明
idstring (uuid)是
public_idstring是
account_idstring (uuid)是
namestring是
iconstring | null是
colorstring | null是
visibilityinvite_only | team是
project_typestring是
deleted_byUserRef是
trashed_atstring (date-time) | null是
purge_atstring (date-time) | null是
restores_toactive | archived是
can_restoreboolean是
can_purgeboolean是

ProjectConfig

字段类型必填说明
idstring (uuid)是
project_idstring (uuid)是
iteration_starts_oninteger是
iteration_length_in_weeksinteger是
iteration_auto_create_countinteger是
created_atstring (date-time)是
updated_atstring (date-time)是

Member

字段类型必填说明
idstring (uuid)是
user_idstring (uuid)是
project_idstring (uuid)是
rolestring是

Tool

字段类型必填说明
idstring (uuid)是
namestring | null是
slugstring | null是
descriptionstring | null是
statusstring | null是
positioninteger是
project_idstring (uuid)是
project_public_idstring是
created_atstring (date-time)是
updated_atstring (date-time)是

ProjectTaskType

字段类型必填说明
idstring (uuid)是
project_idstring (uuid)是
task_type_idstring (uuid)是
created_atstring (date-time)是
updated_atstring (date-time)是

Version

字段类型必填说明
idstring (uuid)是
namestring是
descriptionstring | null是
statusstring是
start_datestring (date) | null是
effective_datestring (date) | null是
project_idstring (uuid)是
created_atstring (date-time)是
updated_atstring (date-time)是

QuickAccess

字段类型必填说明
project_idstring (uuid)是
project_public_idstring是
namestring是
iconstring | null是
account_idstring (uuid)是
account_public_idstring是
created_atstring (date-time)是
updated_atstring (date-time)是

UserRef

字段类型必填说明
idstring (uuid)是User UUID.
public_idstring | null是Member ref ("U12") in this account.
namestring | null是
avatar_urlstring | null是
kindhuman | agent | null是null only for an unknown (deleted) user.