Qeasy Cloud
Get Started
POSThttps://oapi.dingtalk.com/topapi/v2/user/listaccess_token(query 传参)

List Department Users with Details (v2/user/list)

按部门分页获取钉钉用户完整信息(userid、姓名、手机号、职位等),用于主数据同步:组织架构与人员主数据对齐 ERP/HRM。

## Overview topapi/v2/user/list pages through the detailed user profiles of a department — the standard endpoint for organization and people master-data integration. A common pattern: treat the DingTalk org structure as the authoritative source, then sync userid, name, department, title, mobile and email into ERP salesperson files and the cost-center mapping of the expense system, so document ownership and approval routing stay consistent. ### Request essentials 1. POST with Content-Type: application/json; access_token in the URL query. 2. Body: dept_id (required; root department is 1), cursor (0 for page one), size (up to 100), order_field (default entry_asc), contain_access_limit. 3. result.list carries user objects with userid, name, mobile, email, title and dept_id_list; has_more/next_cursor drive pagination. 4. A full org sync usually calls topapi/v2/department/listsub for the department tree first, then lists users per department. Sensitive fields like mobile require extra field-level permission in the developer console. ### Notes - The contact permission scope (which departments the app may see) decides what is returned; out-of-scope departments yield empty lists rather than errors — check scope first when troubleshooting. - Use userid as the join key (names collide); departed employees simply disappear from the list, so soft-delete on the master-data side instead of hard deletes.

Code examples

curl
curl -X POST "https://oapi.dingtalk.com/topapi/v2/user/list?access_token=TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"dept_id":1,"cursor":0,"size":100}'

Error codes

CodeMessageMeaning
40014不合法的 access_tokentoken 失效,重新获取
60011没有调用该接口的权限未开通通讯录读取权限点
40121找不到该用户dept_id 无效或不在应用可见范围内