> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trae.cn/llms.txt
> Use this file to discover all available pages before exploring further.

批量更新成员的名称、角色或直属部门。

## 所需权限 {#所需权限}

`users:write`

## 请求说明 {#请求说明}

* 请求方式：`PATCH`
* 请求地址：`{域名}/openapi/v1/users`

## 注意事项 {#hY86RRcsV}


* 单次请求最多更新 20 个成员的信息。
* 本接口支持批量部分成功，顶层 `code=0` 仅表示请求处理完成，不代表每个成员均更新成功，需根据 `failed_items` 判断逐项结果。
* 同一成员在同一个请求中被重复传入时，第一项会被处理，后续项会失败。
* 已移除或已注销的成员不能通过本接口更新。
* 超级管理员的角色不能通过本接口修改，其名称和直属部门仍可更新。
* 邮箱不属于当前企业时按未找到处理，接口不会返回该邮箱所属的其他企业信息。
* 当企业成员由外部身份源（包括火山引擎云身份中心）统一管理时，不支持通过该接口更新成员信息。

## 请求参数 {#请求参数}

### 请求头参数 {#请求头参数}

<!-- @cols-width: 172,122,609 -->
| **Header 参数**  | **是否必填**  | **描述**  |
| --- | --- | --- |
| `Authorization`  | 是  | 固定取值为 `Bearer {access_token}`。关于如何获取访问令牌，参考[鉴权](enterprise_authentication)。  |
| `Content-Type`  | 是  | 固定取值为 `application/json`。  |

### 请求体参数 {#请求体}

<!-- @cols-width: 201,103,100,107,397 -->
| **参数**  | **类型**  | **是否必填**  | **默认值**  | **描述**  |
| --- | --- | --- | --- | --- |
| `users`  | array  | 是  | \-  | 待更新成员的列表。范围为 1 至 20 个。 | \
| | | | | | \
| | | | | 每项需至少提供一个定位参数和一个待更新参数。  |
| `users[].user_id`  | string  | 条件必填  | \-  | 待更新成员的 ID。 | \
| | | | | | \
| | | | | 与 `email` 至少传一个。若与 `email` 同时传入，两者必须指向同一成员。 | \
| | | | | | \
| | | | | 成员 ID 可以通过 “[获取成员列表](/enterprise_get-user-list)” 接口获取。  |
| `users[].email`  | string  | 条件必填  | \-  | 待更新成员的邮箱地址。 | \
| | | | | | \
| | | | | 与 `user_id` 至少传一个。传入值会被去除首尾空白，并按不区分大小写的方式精确匹配，不支持模糊搜索。 | \
| | | | | | \
| | | | | 成员邮箱可以通过 “[获取成员列表](/enterprise_get-user-list)” 接口获取。  |
| `users[].user_name`  | string  | 条件必填  | \-  | 成员的新名称。 | \
| | | | | | \
| | | | | 与 `role`、`department_ids` 至少传一个。传入时去除首尾空白后不能为空，最多 50 个 Unicode 字符。  |
| `users[].role`  | string  | 条件必填  | \-  | 成员的新角色，取值： | \
| | | | | | \
| | | | | * `admin`：管理员 | \
| | | | | * `member`：成员 | \
| | | | | | \
| | | | | 与 `user_name`、`department_ids` 至少传一个。不支持将成员设置为 “超级管理员”；省略则表示保留当前角色。  |
| `users[].department_ids`  | array  | 条件必填  | \-  | 成员的新直属部门的 ID，至多传入 1 个 ID。 | \
| | | | | | \
| | | | | 与 `user_name`、`role` 至少传一个。省略或传 `null` 表示不修改直属部门；传 `[]` 表示将该成员添加到企业根部门。 | \
| | | | | | \
| | | | | 部门 ID 可以通过 “[获取单个父部门的子部门](/enterprise_get-the-subdepartments-for-a-specified-parent-department)” 接口或 ”[按关键词搜索部门](/enterprise_query-department-by-keyword)“ 接口获取。  |

## 响应参数 {#响应参数}

该接口独有的响应参数如下，参数位于 `data` 中。通用响应参数参考[此文档](/enterprise_general-response-schema)。

<!-- @cols-width: 244,182,487 -->
| **参数**  | **类型**  | **描述**  |
| --- | --- | --- |
| `success_count`  | int  | 更新成功的成员数量。  |
| `failed_items`  | array  | 更新失败的成员列表。全部成功时返回 `[]`。  |
| `failed_items[].index`  | int  | 更新失败的成员在请求体 `users` 数组中的索引，从 `0` 开始。  |
| `failed_items[].email`  | string  | 更新失败成员的邮箱。若仅为该成员传入了 `user_id`，该参数为空。  |
| `failed_items[].user_id`  | string  | 更新失败成员的 ID。未成功定位到成员的失败项，例如参数校验失败或邮箱未命中，可能省略该字段。  |
| `failed_items[].code`  | int  | 错误码。  |
| `failed_items[].message`  | string  | 失败原因。  |
| `warnings`  | array  | 非致命问题的提示信息；无提示时省略。  |

## 示例 {#示例}

### 请求示例 {#请求示例}

仅通过邮箱定位成员：

```Bash
curl -X PATCH "${HOST}/openapi/v1/users" \
  -H "Authorization: Bearer ${ACCESS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "users": [
      {
        "email": "alice@example.com",
        "user_name": "Alice Zhang",
        "department_ids": ["20001"]
      },
      {
        "email": "john@example.com",
        "role": "admin"
      }
    ]
  }'
```

为单个成员同时传入 `user_id` 与 `email`，系统将进行一致性校验：

```Bash
{
  "users": [
    {
      "user_id": "10001",
      "email": "alice@example.com",
      "role": "admin"
    },
    {
      "user_id": "10002",
      "email": "john@example.com",
      "user_name": "John Lee",
      "department_ids": []
    }
  ]
}
```

### 响应示例 {#响应示例}

全部成员更新成功：

```JSON
{
  "code": 0,
  "message": "success",
  "request_id": "req_xxx",
  "data": {
    "success_count": 2,
    "failed_items": []
  }
}
```

部分成员更新失败：

```JSON
{
  "code": 0,
  "message": "success",
  "request_id": "req_xxx",
  "data": {
    "success_count": 1,
    "failed_items": [
      {
        "index": 1,
        "email": "john@example.com",
        "code": 30007,
        "message": "user not found in this tenant"
      }
    ]
  }
}
```

## 错误码 {#错误码}

若该接口的请求返回错误码，参考[错误码](/enterprise_error-codes)文档进行排查。
