# 搜索部门信息

该接口支持通过部门id、上级部门ID、部门负责人、名称、编码字段批量搜索当天的部门详情信息，包括部门包含的名称、描述、启用状态等。

**注意事项**：延迟说明：搜索同步延迟 10s 以内，即：直接创建部门后10s内调用此接口可能查询不到数据。

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/corehr/v2/departments/search
HTTP Method | POST
接口频率限制 | [100 次/分钟](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App、Store App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用**<br>开启任一权限即可 | 获取部门信息(corehr:department:read)<br>读写部门信息(corehr:department:write)
字段权限要求 | **注意事项**：该接口返回体中存在下列敏感字段，仅当开启对应的权限后才会返回；如果无需获取这些字段，则不建议申请<br>获取部门成本中心字段信息(corehr:department.cost_center_id:read)<br>获取部门自定义字段(corehr:department.custom_fields:read)<br>获取部门负责人信息(corehr:department.manager:read)<br>获取部门组织架构信息(corehr:department.organize:read)<br>获取用户 user ID(contact:user.employee_id:readonly)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `tenant_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer t-7f1bcd13fc57d46bac21793a18e560"<br>[了解更多：如何选择与获取 access token](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-choose-which-type-of-token-to-use)
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

### 查询参数

名称 | 类型 | 必填 | 描述
---|---|---|---
page_size | int | 是 | 分页大小<br>**示例值**：100<br>**数据校验规则**：<br>- 取值范围：`1` ～ `100`
page_token | string | 否 | 分页标记，第一次请求不填，表示从头开始遍历；分页查询结果还有更多项时会同时返回新的 page_token，下次遍历可采用该 page_token 获取查询结果<br>**示例值**：6891251722631890445
user_id_type | string | 否 | 用户 ID 类型<br>**示例值**：open_id<br>**可选值有**：<br>- open_id：标识一个用户在某个应用中的身份。同一个用户在不同应用中的 Open ID 不同。[了解更多：如何获取 Open ID](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-openid)<br>- union_id：标识一个用户在某个应用开发商下的身份。同一用户在同一开发商下的应用中的 Union ID 是相同的，在不同开发商下的应用中的 Union ID 是不同的。通过 Union ID，应用开发商可以把同个用户在多个应用中的身份关联起来。[了解更多：如何获取 Union ID？](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-union-id)<br>- user_id：标识一个用户在某个租户内的身份。同一个用户在租户 A 和租户 B 内的 User ID 是不同的。在同一个租户内，一个用户的 User ID 在所有应用（包括商店应用）中都保持一致。User ID 主要用于在不同的应用间打通用户数据。[了解更多：如何获取 User ID？](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-obtain-user-id)<br>- people_corehr_id：以飞书人事的 ID 来识别用户<br>**默认值**：`open_id`<br>**当值为 `user_id`，字段权限要求**：<br>获取用户 user ID(contact:user.employee_id:readonly)
department_id_type | string | 否 | 此次调用中使用的部门 ID 类型<br>**示例值**：open_department_id<br>**可选值有**：<br>- open_department_id：【飞书】用来在具体某个应用中标识一个部门，同一个department_id 在不同应用中的 open_department_id 相同。<br>- department_id：【飞书】用来标识租户内一个唯一的部门。<br>- people_corehr_department_id：【飞书人事】用来标识「飞书人事」中的部门。<br>**默认值**：`open_department_id`

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
active | boolean | 否 | 该部门是否启用，true为启用，false为停用<br>- 如果传空则所有启用状态数据都返回<br>**示例值**：true
get_all_children | boolean | 否 | 当通过上级部门 ID 查询时，填写 true 返回所有子部门，填写 false 只返回直接下级部门<br>- 默认为false<br>**示例值**：false
manager_list | string\[\] | 否 | 部门负责人 ID 列表<br>- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取<br>- 传非空值返回指定部门负责人的部门，传空值则不加该筛选条件<br>**示例值**：["7094136522860922112"]<br>**数据校验规则**：<br>- 最大长度：`100`
department_id_list | string\[\] | 否 | 部门 ID列表，用来做条件筛选<br>- 传非空值返回指定部门ID，传空值则不加该筛选条件<br>- 一次性最多传入100个部门ID<br>**示例值**：["7094136522860922111"]
name_list | string\[\] | 否 | 部门名称列表，需精确匹配，用于筛选条件<br>- 传非空值则返回指定部门名称的部门，传空值则不加该筛选条件<br>**示例值**：["后端研发部"]
parent_department_id | string | 否 | 上级部门 ID <br>- 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情<br>- 传非空值返回指定上级部门ID的子部门，传空值则不加该筛选条件<br>**示例值**："7094136522860922222"
code_list | string\[\] | 否 | 部门编码列表<br>- 传非空值返回指定编码的部门，传空值则不加该筛选条件<br>**示例值**：["D00000123"]
fields | string\[\] | 否 | 返回数据的字段列表，如果传空只返回部门id，可选值：<br>- version_id：当前版本ID<br>- sub_type：部门类型<br>- manager：负责人<br>- is_root：是否根部门<br>- is_confidential：是否保密<br>- effective_date：当前版本生效日期<br>- expiration_date：当前版本失效日期<br>- department_name：部门名称<br>- parent_department_id：上级部门ID<br>- tree_order：树形排序<br>- list_order：列表排序<br>- code：部门编码<br>- active：是否启用<br>- description：部门描述<br>- custom_fields：自定义字段<br>- staffing_model：岗职务模式<br>- cost_center_id：部门默认成本中心<br>- created_time：创建时间<br>- updated_time：更新时间<br>- created_by：创建人<br>- updated_by：更新人<br>- record_created_time：记录创建时间<br>- record_updated_time：记录更新时间<br>- record_created_by：记录创建人<br>- record_updated_by：记录更新人<br>**示例值**：["department_name"]

### 请求体示例
```json
{
    "active": true,
    "get_all_children": false,
    "manager_list": [
        "7094136522860922112"
    ],
    "department_id_list": [
        "7094136522860922111"
    ],
    "name_list": [
        "后端研发部"
    ],
    "parent_department_id": "7094136522860922222",
    "code_list": [
        "D00000123"
    ],
    "fields": [
        "department_name"
    ]
}
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
items | department\[\] | 查询的部门信息
id | string | 部门 ID
version_id | string | 部门记录版本 ID
department_name | i18n\[\] | 部门名称
lang | string | 语言，中文用zh-CN，英文用en-US
value | string | 文本内容
sub_type | enum | 部门类型，枚举值 api_name 可通过[【获取字段详情】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/get_by_param)接口查询，查询参数如下：<br>- object_api_name = "department"<br>- custom_api_name = "subtype"
enum_name | string | 枚举值
display | i18n\[\] | 枚举多语展示
lang | string | 语言，中文用zh-CN，英文用en-US
value | string | 文本内容
parent_department_id | string | 上级部门 ID <br>- 可通过[批量查询部门V2](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/batch_get) 或者[搜索部门信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/department/search) 获取详情<br>**字段权限要求**：<br>获取部门组织架构信息(corehr:department.organize:read)
manager | string | 部门负责人雇佣 ID<br>- 详细信息可通过[【搜索员工信息】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/search) 或 [【批量查询员工】](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/employee/batch_get) 接口获取<br>**字段权限要求**：<br>获取部门负责人信息(corehr:department.manager:read)
tree_order | string | 树形排序，代表同层级的部门排序序号<br>- 创建部门场景tree_order不会实时生成，10分钟内更新完毕<br>- 在页面拖动部门排序时tree_order可以实时生成<br>- 变更部门上级时，会清空tree_order，并触发重算list_order和tree_order，10分钟内更新完毕<br>- 同层部门（相同上级）数量超过1000时，该字段不再更新
list_order | string | 列表排序，代表所有部门的混排序号，为该部门上级路径上所有tree_order用“-”拼接。<br>- 该字段在新建/更新场景非立即更新，10分钟后会延迟更新<br>- 由于list_order变更会导致[部门变更接口](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/department/events/updated)产生大量事件，因此事件接口不会针对该字段同步变更事件，如果有需求订阅请联系[Oncall](https://applink.feishu.cn/TLJpeNdW)单独开启。<br>- 同层部门（相同上级）数量超过1000时，该字段不再更新
code | string | 编码
is_root | boolean | 是否根部门
is_confidential | boolean | 是否保密（该功能暂不支持，可忽略）
effective_date | string | 当前版本生效日期<br>- 返回格式：YYYY-MM-DD（最小单位到日）<br>- 日期范围:1900-01-01～9999-12-31
expiration_date | string | 当前版本失效日期<br>- 返回格式：YYYY-MM-DD（最小单位到日）<br>- 日期范围:1900-01-01～9999-12-31
active | boolean | 是否启用
description | i18n\[\] | 描述
lang | string | 语言，中文用zh-CN，英文用en-US
value | string | 文本内容
custom_fields | custom_field_data\[\] | 自定义字段类型，详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query) <br>**字段权限要求**：<br>获取部门自定义字段(corehr:department.custom_fields:read)
custom_api_name | string | 自定义字段 apiname，即自定义字段的唯一标识
name | custom_name | 自定义字段名称
zh_cn | string | 中文
en_us | string | 英文
type | int | 自定义字段类型，详细见[获取自定义字段列表](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/custom_field/query)
value | string | 字段值，是 json 转义后的字符串，根据元数据定义不同，字段格式不同（如 123, 123.23, "true", ["id1","id2"], "2006-01-02 15:04:05"）
staffing_model | enum | 岗职管理模式<br>- 详细枚举类型请查看[枚举场景](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/corehr-v1/feishu-people-enum-constant)中关于staffing_model定义
enum_name | string | 枚举值
display | i18n\[\] | 枚举多语展示
lang | string | 语言，中文用zh-CN，英文用en-US
value | string | 文本内容
cost_center_id | string | 成本中心id<br>**字段权限要求**：<br>获取部门成本中心字段信息(corehr:department.cost_center_id:read)
created_time | string | 创建时间
updated_time | string | 更新时间
created_by | string | 创建人
updated_by | string | 更新人
record_created_time | string | 记录创建时间
record_updated_time | string | 记录更新时间
record_created_by | string | 记录创建人
record_updated_by | string | 记录更新人
page_token | string | 分页标记，当 has_more 为 true 时，会同时返回新的 page_token，否则不返回 page_token
has_more | boolean | 是否还有更多项

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "items": [
            {
                "id": "4719456877659520852",
                "version_id": "6890452208593372611",
                "department_name": [
                    {
                        "lang": "zh-CN",
                        "value": "中文示例"
                    }
                ],
                "sub_type": {
                    "enum_name": "phone_type",
                    "display": [
                        {
                            "lang": "zh-CN",
                            "value": "中文示例"
                        }
                    ]
                },
                "parent_department_id": "4719456877659520111",
                "manager": "6893013238632416777",
                "tree_order": "001000",
                "list_order": "001000-001000",
                "code": "D00000456",
                "is_root": false,
                "is_confidential": false,
                "effective_date": "2020-05-01",
                "expiration_date": "2020-05-02",
                "active": true,
                "description": [
                    {
                        "lang": "zh-CN",
                        "value": "中文示例"
                    }
                ],
                "custom_fields": [
                    {
                        "custom_api_name": "name",
                        "name": {
                            "zh_cn": "自定义姓名",
                            "en_us": "Custom Name"
                        },
                        "type": 1,
                        "value": "\"231\""
                    }
                ],
                "staffing_model": {
                    "enum_name": "position",
                    "display": [
                        {
                            "lang": "zh-CN",
                            "value": "中文示例"
                        }
                    ]
                },
                "cost_center_id": "7142384817131652652",
                "created_time": "2020-05-01 00:00:00",
                "updated_time": "2020-05-02 00:00:00",
                "created_by": "6893013238632416777",
                "updated_by": "6893013238632416777",
                "record_created_time": "2020-05-01 00:00:00",
                "record_updated_time": "2020-05-02 00:00:00",
                "record_created_by": "6893013238632416777",
                "record_updated_by": "6893013238632416777"
            }
        ],
        "page_token": "eyJldV9uYyI6IlswLFwiNjk2MTI4Njg0NjA5Mzc4ODY4MC03MjExMDM0ODcxMjA3OTUzOTc1XCJdIn0",
        "has_more": true
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 1160102 | 请求参数错误 | 请确认请求参数是否满足接口要求
403 | 1160103 | No permission | 操作无权限，请确认查询条件是否满足权限要求
503 | 1161204 | 内部接口超时 | 接口超时，可尝试重试。如果无法解决可以联系飞书人事 [技术支持](https://applink.feishu.cn/TLJpeNdW)
429 | 1161604 | 内部接口频控 | 接口请求次数超过接口频率限制，可尝试降低请求频率

