Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.
A: The differences between userId and unionId in specific scenarios are as follows:
A user’s userid is globally unique within the same organization and is never duplicated.
A user’s unionId is globally unique within the same app service. For example, if Xiaoding belongs to three organizations that share the same Third-party enterprise app, the unionId returned by that Third-party enterprise app for Xiaoding is the same across all three organizations.
A: When calling the Get user token API, the issue above may be caused by the following:When obtaining the Access credential of a signed-in user, you must pass scope=openid%20corpid in the constructed sign-in authorization page. After Authorization, retrieve the authCode and then call the Get user token API to receive the corpid.
How to get information about all employees in an organization
A: DingTalk does not provide an API that returns all employees in an organization at once. Developers can obtain this information through the following steps. For the detailed flow, refer to the use case for obtaining information about all employees in an organization.
First, call the Get department list API to obtain all department IDs in the organization.
Iterate through each department by calling the Get the userid list of a department API.Ensure that the Contacts API permission scope is set to All employees.
The Get user profile API does not return the email address
A: When calling the Get user profile API, the issue above may be caused by the following:The email address is returned only if it has been configured under DingTalk Client-side > Mail (as shown below).
Email addresses provided by DingTalk (for example, xxx@dingtalk.io) are not returned.
How to clear a department manager from user information
A: To clear a department manager when calling the Update user information API, do the following:To clear a department manager, set dept_manager_userid_list (department manager) in force_update_fields (fields to force-update). Do not pass an empty value for dept_manager_userid_list, otherwise an error will occur.
Cannot retrieve a user’s mobile number when calling the Query user details API
A: When calling the Query user details API, the error above may be caused by insufficient permissions.Solution: In the DingTalk Developer Console, open the details page of the app, find the API permission entry, and apply for the permission to retrieve mobile number information.
About the error “The requested userid/department id is not within the authorized scope”
For an Internal app: In the Developer Console, go to the Manage permissions page of the corresponding app and confirm that the relevant department or user has been added to the authorized permission scope.
For a Third-party enterprise app: The authorized organization (the organization that has activated the app) must go to the DingTalk Admin Console> Workbench > App Management, select the corresponding third-party app, and click the Settings button. In the dialog box that appears, confirm that the relevant user has been added to the visible scope.
Calling a Contacts API returns errcode 50002 The requested employee userid is not within the authorized scope
A: The app corresponding to the access_token used to call the API does not include this employee in the authorized scope on the Manage permissions page of the Developer Console.Solution: Click the Add button on the Manage permissions page and add the user to the Authorized users list.
Calling a Contacts API returns errcode 50004 The requested department id is not within the authorized scope
A: The app corresponding to the access_token used to call the API does not include this department in the authorized scope on the Manage permissions page of the Developer Console.Solution: Click the Add button on the Manage permissions page and add the department to be changed to the Authorized users list.
Calling Update user information returns errcode 40022 The mobile number in the organization does not match the mobile number used to sign in to DingTalk
A: When calling the Update user information API, this error occurs because the API does not currently support modifying a user’s mobile number. You can delete the user and add them again.
Calling Query user by mobile number returns errmsg No permission to call
A: When calling the Query user by mobile number API, this error may be caused by an outdated app Version (an app that uses corpId and Corpsecret to obtain access_token).Solution: Create a new app to obtain the access_token.
A: When calling the Create user API, this error may be caused by the following:The organization may have exceeded the Weekly limit for adding employees, or exceeded the total limit for the organization.
Calling Create user returns errcode 60103 Invalid mobile number
A: When calling the Create user API, this error may be caused by, but is not limited to, the following:
The Company Region configured in DingTalk is outside the Chinese mainland. If the mobile number is from the Chinese mainland, use the format +86-xxxxxx.
The Company Region configured in DingTalk is the Chinese mainland. If the mobile number is from outside the Chinese mainland, use the format +86-xxxxxx.
Calling Create user returns “errcode: 40103, errmsg: Invitation sent. The user can Join Organization after accepting it”
A: When calling the Create user API to invite a user to Join Organization, this response may be caused by, but is not limited to, the following:
Security rule triggered: If an employee already belongs to an authenticated organization A, the above message appears when organization B tries to add the same employee. On the Client-side, search for the team invitation or check the corresponding invitation on the Contacts page and handle it accordingly.
The invited user has enabled “Require verification when a team adds me” under DingTalk mobile Client-side > Me > Settings > Privacy > Team and Members. After this option is enabled, search for the team invitation on the Client-side or check the corresponding invitation on the Contacts page and handle it accordingly.
After a user accepts the invitation and successfully joins the organization, if the organization deletes the user on the same day, the same error will be returned when the API is called again to invite the user within 24 hours after the deletion.
Calling Get user profile returns Forbidden.AccessDenied.AccessTokenPermissionDenied No permission to call this API
A: When calling the Get user profile API, this error may be caused by, but is not limited to, the following:
Permissions issue: Check whether the “Read Contacts Profile” and “Personal mobile number” permissions have been applied for.
Incorrect access token: The Access credential for this API is the access token of an individual user. Passing an incorrect access token also triggers this error. To obtain the access token of an individual user:Step 1: Obtain the authCode. In a browser, visit the constructed sign-in authorization page URL: https://login.dingtalk.io/oauth2/auth?redirect_uri=https%3A%2F%2Fwww.aaaaa.com%2Fa%2Fb (this URI is an example, not a fixed value) // The callback URL after Authorization is approved or declined. Make sure it has been added to Sign-in and Share > callback Domain in the corresponding app in the Developer Console. &response_type=code // Fixed value code. The authCode is returned after Authorization is approved.&client_id=dingbbbbbbb // The appkey of the app&scope=openid%2Bcorpid&state=dddd&prompt=consentAfter the user grants Authorization, the page redirects to https://www.aaaaa.com/a/b?authCode=xxxx&state=dddd, from which you can obtain the authCode.Step 2: After obtaining the authCode, call Get user token to obtain the access token of the individual user. For details, see Obtain the Access credential of a signed-in user.
Calling Update/Delete/Query user returns errcode 60121 User not found
A: This error may be caused by, but is not limited to, the following:
The userId (the unique identifier of the user within the organization) and the access_token (the Server API Access credential) passed in do not belong to apps under the same organization.
The user identified by the userId has resigned or has not yet onboarded.
The organization has invited the user, but the user has not yet accepted the invitation to Join Organization.
Calling Get department details returns errcode 40009 Invalid department id
A: When calling the Get department details API, this error may be caused by the following:The dept_id passed in is -7 (the Department ID of the school-parent contacts). The school-parent Contacts dept_id=-7 is not supported in the Contacts management scenario documentation.
Calling Update user information returns errcode 12150 Smart HR Job Title management is enabled
A: When calling the Update user information API, this error may be caused by the following:When Smart HR Job Title management is enabled, to update the Job Title (title) or Department (deptid) fields in the user information, you must update them through the Smart HR employee transfer flow.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"DingTalk Help Center","description":"Official help center for DingTalk International — guides, API references, and tutorials.","colors":{"primary":"#0066ff","light":"#3385ff","dark":"#0052cc"},"logo":{"light":"https://help.dingtalk.io/logo/light.svg","dark":"https://help.dingtalk.io/logo/dark.svg","href":"/"},"favicon":"https://mintcdn.com/dingtalk-8c0f98e2/-gG_zvv6IXkTItYa/favicon.ico?fit=max\u0026auto=format\u0026n=-gG_zvv6IXkTItYa\u0026q=85\u0026s=0379048afba937f1ccd8e3a3d7ff252e","appearance":{"default":"system"},"background":{"decoration":"gradient"},"search":{"prompt":""},"seo":{"metatags":{"canonical":"https://help.dingtalk.io","og:type":"website","og:locale":"en_US","og:site_name":"DingTalk Help Center","twitter:card":"summary_large_image","dingtalk:title":"DingTalk 帮助中心","dingtalk:description":"DingTalk 帮助中心 — 指南、API 文档与教程","dingtalk:img":"https://img.alicdn.com/imgextra/i2/O1CN01YT67eU1F0F4n6LlTN_!!6000000000424-2-tps-1024-1024.png","google-site-verification":"4EgfuXkL4_HIpxdhr5IMYiZJoq7XTFARPiv2wALnH0c"},"indexing":"navigable"},"styling":{"codeblocks":{"theme":{"light":"github-light","dark":"github-dark"}},"latex":true},"integrations":{"ga4":{"measurementId":"G-5H09N9EW47"}},"errors":{"404":{"redirect":false}},"contextual":{"options":["copy"],"display":"header"},"navigation":{"languages":[{"language":"en","banner":{"content":"**Announcement:** DingTalk plans for international customers are changing beginning October 21, 2026. [Learn more](/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"Download","href":"https://www.dingtalk.io/download/"}},"href":"im/chats-overview"},{"language":"zh","banner":{"content":"**公告**:DingTalk 国际组织商业版本将于 2026 年 10 月 21 日起调整。[查看详情](/zh/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"下载","href":"https://www.dingtalk.io/zh/download/"}},"href":"zh/im/chats-overview"},{"language":"ja","banner":{"content":"**お知らせ**:2026年10月21日より、DingTalkグローバル版のプランを改定します。[詳細を見る](/ja/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"ダウンロード","href":"https://www.dingtalk.co.jp/download/"}},"href":"ja/im/chats-overview"},{"language":"id","banner":{"content":"**Pengumuman:** Paket DingTalk untuk pelanggan internasional akan berubah mulai 21 Oktober 2026. [Selengkapnya (bahasa Inggris)](/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"Unduh","href":"https://www.dingtalk.io/download/"}},"href":"id/im/chats-overview"},{"language":"uz","banner":{"content":"**Pengumuman:** Pelan DingTalk untuk pelanggan antarabangsa akan berubah mulai 21 Oktober 2026. [Ketahui lanjut (bahasa Inggeris)](/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"Muat turun","href":"https://www.dingtalk.io/download/"}},"href":"ms/im/chats-overview"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dingtalk-8c0f98e2","hasAudioNarration":false,"actualSubdomain":"dingtalk-8c0f98e2","customDomains":["help.dingtalk.io"],"gitSource":{"type":"github","owner":"fuxun2008","repo":"dingtalk-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0635ddc8e261a8bb5a83f","collectionId":"7732ee56-7e24-4173-b91a-eaa9c9b7dfcd","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0635ddc8e261a8bb5a83f"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aed6ab16ef5b3d55c3e841a","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"en","tag":"Help Docs","count":1175},{"language":"id","tag":"Pusat Bantuan","count":1175},{"language":"ja","tag":"ヘルプドキュメント","count":1175},{"language":"uz","tag":"Pusat Bantuan","count":1175},{"language":"zh","tag":"帮助文档","count":1175},{"language":"en","tag":"Developer Docs","count":577},{"language":"id","tag":"Platform Terbuka","count":577},{"language":"ja","tag":"開発ドキュメント","count":577},{"language":"uz","tag":"Platform Terbuka","count":577},{"language":"zh","tag":"开发文档","count":577},{"language":"en","tag":"YiDA","count":568},{"language":"id","tag":"YiDA","count":568},{"language":"ja","tag":"YiDA","count":568},{"language":"uz","tag":"YiDA","count":568},{"language":"zh","tag":"宜搭","count":568},{"language":"en","tag":"Server API","count":476},{"language":"id","tag":"Server API","count":476},{"language":"ja","tag":"サーバー API","count":476},{"language":"uz","tag":"Server API","count":476},{"language":"zh","tag":"服务端 API","count":476},{"language":"en","tag":"Form Management","count":231},{"language":"id","tag":"Manajemen Formulir","count":231},{"language":"ja","tag":"フォーム管理","count":231},{"language":"uz","tag":"Pengurusan Borang","count":231},{"language":"zh","tag":"表单管理","count":231},{"language":"id","tag":"Dokumen","count":205},{"language":"ja","tag":"ドキュメント","count":205},{"language":"uz","tag":"Dokumen","count":205},{"language":"zh","tag":"文档","count":205},{"language":"en","tag":"Docs","count":180},{"language":"en","tag":"Form Design","count":166},{"language":"id","tag":"Desain Formulir","count":166},{"language":"ja","tag":"フォーム設計","count":166},{"language":"uz","tag":"Reka Bentuk Borang","count":166},{"language":"zh","tag":"表单设计","count":166},{"language":"en","tag":"AI Table","count":161},{"language":"id","tag":"AI Table","count":161},{"language":"uz","tag":"AI Table","count":161},{"language":"zh","tag":"AI 表格","count":161},{"language":"en","tag":"Docs \u0026 files","count":146},{"language":"id","tag":"Dokumen \u0026 file","count":146},{"language":"ja","tag":"Docs とファイル","count":146},{"language":"uz","tag":"Dokumen \u0026 Fail","count":146},{"language":"zh","tag":"文档/文件","count":146},{"language":"ja","tag":"AI テーブル","count":144},{"language":"en","tag":"Attendance","count":143},{"language":"id","tag":"Absensi","count":143},{"language":"ja","tag":"勤怠","count":143},{"language":"uz","tag":"Kehadiran","count":143},{"language":"zh","tag":"考勤","count":143}],"searchSettings":{"maxResults":15}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".prose table,main table{border-collapse:separate!important;border-spacing:0;width:100%;margin:1.25rem 0;font-size:14px;line-height:1.6;border:1px solid rgb(229, 231, 235);border-radius:8px;overflow:hidden}.prose table th,main table th{min-width:5em}html.dark .prose table,html.dark main table{border-color:rgb(55, 65, 81)}.prose table thead,main table thead{background-color:rgb(249, 250, 251)}html.dark .prose table thead,html.dark main table thead{background-color:rgba(31, 41, 55, 0.6)}.prose table th,main table th{padding:12px 16px!important;font-weight:600!important;text-align:left!important;color:rgb(17, 24, 39)!important;border-bottom:1px solid rgb(229, 231, 235)!important}html.dark .prose table th,html.dark main table th{color:rgb(243, 244, 246)!important;border-bottom-color:rgb(55, 65, 81)!important}.prose table:not(:has(thead))>tr:first-child,main table:not(:has(thead))>tr:first-child{background-color:rgb(249, 250, 251)}html.dark .prose table:not(:has(thead))>tr:first-child,html.dark main table:not(:has(thead))>tr:first-child{background-color:rgba(31, 41, 55, 0.6)}.prose table td,main table td{padding:10px 16px!important;vertical-align:top;border-bottom:1px solid rgb(243, 244, 246)!important}html.dark .prose table td,html.dark main table td{border-bottom-color:rgba(55, 65, 81, 0.4)!important}.prose table td:first-child,main table td:first-child{padding-inline-start:16px!important;font-weight:500;color:rgb(31, 41, 55)}html.dark .prose table td:first-child,html.dark main table td:first-child{color:rgb(229, 231, 235)}.prose table tbody tr:last-child td,main table tbody tr:last-child td,.prose table>tr:last-child td,main table>tr:last-child td{border-bottom:0!important}.prose table tbody tr:nth-child(even),main table tbody tr:nth-child(even),.prose table:not(:has(thead))>tr:nth-child(even),main table:not(:has(thead))>tr:nth-child(even){background-color:rgba(249, 250, 251, 0.5)}html.dark .prose table tbody tr:nth-child(even),html.dark main table tbody tr:nth-child(even),html.dark .prose table:not(:has(thead))>tr:nth-child(even),html.dark main table:not(:has(thead))>tr:nth-child(even){background-color:rgba(31, 41, 55, 0.25)}.prose table tbody tr:hover,main table tbody tr:hover,.prose table>tr:hover,main table>tr:hover{background-color:rgba(0, 102, 255, 0.05)}html.dark .prose table tbody tr:hover,html.dark main table tbody tr:hover,html.dark .prose table>tr:hover,html.dark main table>tr:hover{background-color:rgba(0, 102, 255, 0.1)}.prose table code,main table code{font-size:0.875em;padding:1px 6px;border-radius:4px}.prose img,main article img{max-height:80vh;max-width:100%;width:auto;height:auto;object-fit:contain;display:block;margin-left:auto;margin-right:auto;border-radius:8px;box-shadow:0 1px 3px rgba(0, 0, 0, 0.08)}html.dark .prose img,html.dark main article img{box-shadow:0 1px 3px rgba(0, 0, 0, 0.4)}@media (max-width: 640px){.prose img,main article img{max-height:none;border-radius:6px}}.prose img.inline-icon,main article img.inline-icon{display:inline-block;width:auto;height:auto;max-height:1.5em;margin:0 3px;vertical-align:text-bottom;border-radius:3px;box-shadow:none}img[src*=\"/logo/icons/\"]{background-color:currentColor!important;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}img[src*=\"/logo/icons/im.svg\"]{-webkit-mask-image:url(/logo/icons/im-glyph.svg);mask-image:url(/logo/icons/im-glyph.svg)}img[src*=\"/logo/icons/cal.svg\"]{-webkit-mask-image:url(/logo/icons/cal-glyph.svg);mask-image:url(/logo/icons/cal-glyph.svg)}img[src*=\"/logo/icons/av.svg\"]{-webkit-mask-image:url(/logo/icons/av-glyph.svg);mask-image:url(/logo/icons/av-glyph.svg)}img[src*=\"/logo/icons/contact.svg\"]{-webkit-mask-image:url(/logo/icons/contact-glyph.svg);mask-image:url(/logo/icons/contact-glyph.svg)}img[src*=\"/logo/icons/mail.svg\"]{-webkit-mask-image:url(/logo/icons/mail-glyph.svg);mask-image:url(/logo/icons/mail-glyph.svg)}img[src*=\"/logo/icons/doc.svg\"]{-webkit-mask-image:url(/logo/icons/doc-glyph.svg);mask-image:url(/logo/icons/doc-glyph.svg)}img[src*=\"/logo/icons/drive.svg\"]{-webkit-mask-image:url(/logo/icons/drive-glyph.svg);mask-image:url(/logo/icons/drive-glyph.svg)}img[src*=\"/logo/icons/table.svg\"]{-webkit-mask-image:url(/logo/icons/table-glyph.svg);mask-image:url(/logo/icons/table-glyph.svg)}img[src*=\"/logo/icons/notes.svg\"]{-webkit-mask-image:url(/logo/icons/notes-glyph.svg);mask-image:url(/logo/icons/notes-glyph.svg)}img[src*=\"/logo/icons/yida.svg\"]{-webkit-mask-image:url(/logo/icons/yida-glyph.svg);mask-image:url(/logo/icons/yida-glyph.svg)}img[src*=\"/logo/icons/att.svg\"]{-webkit-mask-image:url(/logo/icons/att-glyph.svg);mask-image:url(/logo/icons/att-glyph.svg)}img[src*=\"/logo/icons/appr.svg\"]{-webkit-mask-image:url(/logo/icons/appr-glyph.svg);mask-image:url(/logo/icons/appr-glyph.svg)}[data-component-part=\"products-selector-trigger\"]>span{max-width:none!important;overflow:visible!important;text-overflow:clip!important;-webkit-line-clamp:unset!important;display:block!important;white-space:nowrap!important}[data-component-part=\"products-selector-trigger\"]{overflow:visible!important}.nav-tabs-item{white-space:nowrap!important;flex-shrink:0!important}.nav-tabs{flex-wrap:nowrap;overflow:hidden}html.dt-nav-ready .nav-tabs{overflow:visible}#navbar div.flex-1.justify-end{flex-grow:0!important}.dt-more-tab{position:relative;display:inline-flex;align-items:center;gap:6px;height:100%;cursor:pointer;background:none;border:0;padding:0;white-space:nowrap;flex-shrink:0}.dt-more-tab .dt-more-caret{width:12px;height:12px;transition:transform 0.2s ease}.dt-more-tab:hover .dt-more-caret,.dt-more-tab:focus-within .dt-more-caret,.dt-more-tab[aria-expanded=\"true\"] .dt-more-caret{transform:rotate(180deg)}.dt-more-tab.dt-more-active{color:var(--primary, #0066ff)!important}html.dark .dt-more-tab.dt-more-active{color:var(--primary-light, #4d94ff)!important}.dt-more-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:60;min-width:208px;padding:6px;display:none;flex-direction:column;gap:2px;background:#ffffff;border:1px solid rgba(23, 26, 29, 0.1);border-radius:12px;box-shadow:0 12px 32px rgba(23, 26, 29, 0.16), 0 2px 8px rgba(23, 26, 29, 0.08)}html.dark .dt-more-panel{background:#1b1e24;border-color:rgba(255, 255, 255, 0.12);box-shadow:0 12px 32px rgba(0, 0, 0, 0.6), 0 2px 8px rgba(0, 0, 0, 0.4)}.dt-more-panel::before{content:\"\";position:absolute;left:0;right:0;top:-10px;height:10px}.dt-more-tab:hover .dt-more-panel,.dt-more-tab:focus-within .dt-more-panel,.dt-more-panel:hover,.dt-more-tab[aria-expanded=\"true\"] .dt-more-panel{display:flex}.dt-more-panel .dt-more-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;font-size:14px;font-weight:500;color:var(--gray-700, #374151);white-space:nowrap;text-decoration:none}html.dark .dt-more-panel .dt-more-item{color:rgba(255, 255, 255, 0.75)}.dt-more-panel .dt-more-item:hover{background:rgba(0, 102, 255, 0.08)}.dt-more-panel .dt-more-item.dt-more-item-active{color:var(--primary, #0066ff);background:rgba(0, 102, 255, 0.1)}.dt-more-panel .dt-more-item img{width:18px;height:18px;flex:none}img[src*=\"/logo/icons/dev.svg\"]{-webkit-mask-image:url(/logo/icons/dev-glyph.svg);mask-image:url(/logo/icons/dev-glyph.svg)}img[src*=\"/logo/icons/oa.svg\"]{-webkit-mask-image:url(/logo/icons/oa-glyph.svg);mask-image:url(/logo/icons/oa-glyph.svg)}html.dt-embed #navbar,html.dt-embed #sidebar,html.dt-embed #table-of-contents,html.dt-embed footer{display:none!important}html.dt-embed :where(div):has(>#content-area){padding-top:2.5rem!important}@font-face{font-family:\"DT Yu Gothic\";src:local(\"Yu Gothic Medium\"), local(\"YuGothic Medium\");font-weight:100 500}@font-face{font-family:\"DT Yu Gothic\";src:local(\"Yu Gothic Bold\"), local(\"YuGothic Bold\");font-weight:600 900}html[lang=\"ja\"]{--dt-font-ja: Inter, \"Hiragino Sans\", \"Hiragino Kaku Gothic ProN\", \"DT Yu Gothic\", \"Yu Gothic\", YuGothic, sans-serif}html[lang=\"ja\"] body,html[lang=\"ja\"] :is(h1,h2,h3,h4,h5,h6){font-family:var(--dt-font-ja)}html[lang=\"ja\"] .dt-home{--cjk: var(--dt-font-ja)}#content-area:has(.dt-hide-page-desc) #header>div.prose{display:none}"},{"filePath":"style.css","content":".dt-home{--blue: #0066ff;--blue-deep: #0052cc;--blue-soft: #eaf2ff;--blue-tint: #f4f8ff;--ink: #0d1421;--ink-2: #3d4757;--ink-3: #7a8595;--line: #e9edf3;--line-2: #f0f3f8;--bg: #ffffff;--bg-soft: #f7f9fc;--surface: #ffffff;--surface-glass: rgba(255, 255, 255, 0.82);--eyebrow-bg: #ffffff;--logo-url: url(/logo/dark.svg);--dot-pattern: rgba(13, 20, 33, 0.045);--hero-scrim: radial-gradient(660px 420px at 50% 42%, rgba(247, 249, 252, 0.62), rgba(247, 249, 252, 0.18) 54%, rgba(247, 249, 252, 0) 78%);--hero-tint-1: rgba(0, 102, 255, 0.10);--hero-tint-2: rgba(58, 147, 255, 0.08);--hero-tint-3: rgba(150, 120, 255, 0.06);--radius: 18px;--shadow-sm: 0 1px 2px rgba(13, 20, 33, 0.04), 0 4px 16px rgba(13, 20, 33, 0.04);--shadow-md: 0 8px 30px rgba(13, 20, 33, 0.08);--shadow-blue: 0 12px 40px rgba(0, 102, 255, 0.18);--cjk: \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-family:var(--cjk)}.dt-home *,.dt-home *::before,.dt-home *::after{box-sizing:border-box}.dt-home a{color:inherit;text-decoration:none}.dt-home img,.dt-home svg{display:block}html[data-page-mode=\"custom\"] #navbar{display:none!important}html[data-page-mode=\"custom\"] :where(div):has(>#content-area){padding-top:0!important}html:has(.dt-home),html:has(.dt-home) body{scrollbar-width:none;-ms-overflow-style:none}html:has(.dt-home)::-webkit-scrollbar,html:has(.dt-home) body::-webkit-scrollbar{width:0;height:0;display:none}.dt-home-header{position:sticky;top:0;z-index:50;background:var(--surface-glass);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid var(--line-2)}.dt-home-nav{max-width:1180px;margin:0 auto;padding:0 28px;height:66px;display:flex;align-items:center;gap:32px}.dt-home .dt-home-brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:-0.01em;text-decoration:none}.dt-home-brand-logo{display:block;width:95px;height:32px;background:var(--logo-url) no-repeat left center;background-size:contain}.dt-home-brand-sub{color:var(--ink-3);font-weight:500;font-size:13px;border-left:1px solid var(--line);padding-left:11px;margin-left:2px}.dt-home-nav-links{display:flex;gap:28px;margin-left:8px}.dt-home .dt-home-nav-links a{font-size:14.5px;color:var(--ink-2);font-weight:500;transition:color 0.2s;text-decoration:none}.dt-home .dt-home-nav-links a:hover{color:var(--blue)}.dt-home-nav-right{margin-left:auto;display:flex;align-items:center;gap:14px}.dt-home-lang{position:relative}.dt-home-lang-btn{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--ink-2);font-weight:600;border:1px solid var(--line);border-radius:99px;padding:7px 11px 7px 13px;cursor:pointer;transition:0.2s;background:var(--surface);font-family:inherit}.dt-home-lang-btn:hover{border-color:var(--blue);color:var(--blue)}.dt-home-lang-label{white-space:nowrap}.dt-home-lang-btn svg{width:15px;height:15px}.dt-home-lang-chev{width:13px!important;height:13px!important;transition:transform 0.2s;opacity:0.7}.dt-home-lang-open .dt-home-lang-btn{border-color:var(--blue);color:var(--blue)}.dt-home-lang-open .dt-home-lang-chev{transform:rotate(180deg)}.dt-home-lang-list{position:absolute;top:calc(100% + 8px);right:0;min-width:176px;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-md);padding:6px;list-style:none;margin:0;opacity:0;visibility:hidden;transform:translateY(-6px);transition:0.18s;z-index:60}.dt-home-lang-open .dt-home-lang-list{opacity:1;visibility:visible;transform:none}.dt-home-lang-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px;color:var(--ink-2);font-weight:500;padding:9px 12px;border-radius:9px;cursor:pointer;transition:0.15s;white-space:nowrap}.dt-home-lang-list li:hover{background:var(--blue-tint);color:var(--blue)}.dt-home-lang-list li[aria-selected=\"true\"]{color:var(--blue);font-weight:600;background:var(--blue-soft)}.dt-home-lang-list li[aria-selected=\"true\"]::after{content:\"\\2713\";font-size:12px}.dt-home-navmenu{position:relative;display:none}.dt-home-nav-burger{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink-2);cursor:pointer;transition:0.2s;padding:0}.dt-home-nav-burger:hover{border-color:var(--blue);color:var(--blue)}.dt-home-nav-burger svg{width:22px;height:22px}.dt-home-navmenu-open .dt-home-nav-burger{border-color:var(--blue);color:var(--blue)}.dt-home-nav-panel{position:absolute;top:calc(100% + 8px);right:0;min-width:196px;background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow-md);padding:8px;display:flex;flex-direction:column;gap:2px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:0.18s;z-index:60}.dt-home-navmenu-open .dt-home-nav-panel{opacity:1;visibility:visible;transform:none}.dt-home .dt-home-nav-panel a{font-size:14.5px;color:var(--ink-2);font-weight:500;padding:11px 12px;border-radius:9px;transition:0.15s;text-decoration:none}.dt-home .dt-home-nav-panel a:hover{background:var(--blue-tint);color:var(--blue)}.dt-home .dt-home-nav-panel-cta{margin-top:6px;text-align:center;background:var(--blue);color:#fff!important;font-weight:600;box-shadow:0 4px 14px rgba(0, 102, 255, 0.28)}.dt-home .dt-home-nav-panel-cta:hover{background:var(--blue-deep)}.dt-home .dt-home-btn-primary{background:var(--blue);color:#fff;font-weight:600;font-size:14px;padding:9px 18px;border-radius:99px;transition:0.2s;box-shadow:0 4px 14px rgba(0, 102, 255, 0.28);text-decoration:none}.dt-home .dt-home-btn-primary:hover{background:var(--blue-deep);transform:translateY(-1px)}.dt-home-hero{position:relative;padding:92px 28px 76px;text-align:center;background:radial-gradient(900px 380px at 50% -8%, var(--hero-tint-1), transparent 60%),\n radial-gradient(560px 300px at 12% 18%, var(--hero-tint-2), transparent 60%),\n radial-gradient(560px 300px at 88% 12%, var(--hero-tint-3), transparent 60%);overflow:hidden}.dt-home-hero::before{content:\"\";position:absolute;inset:0;pointer-events:none;z-index:1;background-image:radial-gradient(var(--dot-pattern) 1px, transparent 1px);background-size:26px 26px;-webkit-mask-image:radial-gradient(620px 360px at 50% 30%, #000 0%, transparent 75%);mask-image:radial-gradient(620px 360px at 50% 30%, #000 0%, transparent 75%)}.dt-home-hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden}.dt-home-particle-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.dt-home-hero-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;background:var(--hero-scrim)}.dt-home-hero-inner{position:relative;z-index:3;max-width:760px;margin:0 auto}.dt-home-eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--blue);background:var(--eyebrow-bg);border:1px solid var(--blue-soft);box-shadow:var(--shadow-sm);padding:6px 14px;border-radius:99px;margin-bottom:24px}.dt-home-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34, 197, 94, 0.15)}.dt-home-notice{max-width:100%;padding:4px 14px 4px 4px;color:var(--ink-2);font-weight:500;text-decoration:none;transition:border-color 0.2s, box-shadow 0.2s, transform 0.2s}.dt-home-notice:hover{border-color:var(--blue);box-shadow:var(--shadow-blue);transform:translateY(-1px)}.dt-home-notice:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.dt-home-notice-label{flex:none;padding:2px 10px;border-radius:99px;background:var(--blue);color:#fff;font-weight:600}.dt-home-notice-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-home-notice-arrow{flex:none;color:var(--blue);transition:transform 0.2s}.dt-home-notice:hover .dt-home-notice-arrow{transform:translateX(3px)}.dt-home-hero-title{font-weight:700;letter-spacing:-0.02em;font-size:clamp(30px, 5vw, 46px);line-height:1.14;color:var(--ink);margin:0}.dt-home-hero-sub{margin:16px auto 0;font-size:17px;color:var(--ink-2);max-width:100%}.dt-home-search{margin:36px auto 0;max-width:620px;position:relative;z-index:30}.dt-home-search-box{display:flex;align-items:center;gap:12px;background:var(--surface);border:1.5px solid var(--line);border-radius:99px;padding:8px 8px 8px 22px;box-shadow:var(--shadow-md);transition:0.25s;cursor:text}.dt-home-search-box:focus-within{border-color:var(--blue);box-shadow:var(--shadow-blue)}.dt-home-search-ic{width:20px;height:20px;color:var(--ink-3);flex:none}.dt-home-search-box input{flex:1;min-width:0;border:none;outline:none;font-family:var(--cjk);font-size:16px;color:var(--ink);background:transparent}.dt-home-search-box input::placeholder{color:var(--ink-3)}.dt-home-search-go{background:var(--blue);color:#fff;border:none;cursor:pointer;font-family:var(--cjk);font-weight:600;font-size:15px;padding:11px 24px;border-radius:99px;transition:0.2s;flex:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.dt-home-search-go kbd{font-family:ui-monospace, SFMono-Regular, Menlo, monospace;font-size:11.5px;font-weight:600;color:rgba(255, 255, 255, 0.82);background:rgba(255, 255, 255, 0.16);border:1px solid rgba(255, 255, 255, 0.28);border-radius:5px;padding:2px 6px;letter-spacing:0.02em;user-select:none;line-height:1}.dt-home-search-go:hover{background:var(--blue-deep)}.dt-home-hot{margin-top:18px;display:flex;flex-wrap:nowrap;gap:8px;position:relative;left:50%;transform:translateX(-50%);z-index:1;justify-content:center;align-items:center;width:max-content;max-width:calc(100vw - 56px)}.dt-home-hot-label{font-size:13.5px;color:var(--ink-3);font-weight:500;margin-right:2px;flex:none}.dt-home .dt-home-hot a{font-size:13.5px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);padding:6px 13px;border-radius:99px;transition:0.2s;font-weight:500;white-space:nowrap;flex:none;text-decoration:none}.dt-home .dt-home-hot a:hover{color:var(--blue);border-color:var(--blue);background:var(--blue-tint)}.dt-home-wrap{max-width:1180px;margin:0 auto;padding:0 28px}.dt-home-block{padding-top:64px;padding-bottom:64px}.dt-home-popular .dt-home-block{padding-top:88px;padding-bottom:88px}.dt-home-sec-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:30px;gap:20px;flex-wrap:wrap}.dt-home-sec-head h2{font-weight:700;font-size:25px;letter-spacing:-0.01em;margin:0}.dt-home-sec-head p{font-size:14.5px;color:var(--ink-3);margin:6px 0 0}.dt-home .dt-home-more{font-size:14px;font-weight:600;color:var(--blue);display:inline-flex;align-items:center}.dt-home .dt-home-more:hover{color:var(--blue-deep)}.dt-home-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:18px}.dt-home-card{display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;transition:0.28s cubic-bezier(0.2, 0.7, 0.2, 1);position:relative;overflow:hidden}.dt-home-card::after{content:\"\";position:absolute;inset:0;border-radius:var(--radius);background:linear-gradient(135deg, rgba(0, 102, 255, 0.05), transparent 55%);opacity:0;transition:0.28s}.dt-home-card:hover{border-color:transparent;box-shadow:var(--shadow-md);transform:translateY(-4px)}.dt-home-card:hover::after{opacity:1}.dt-home-card-ico{width:46px;height:46px;border-radius:13px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;margin-bottom:16px;transition:0.28s}.dt-home-card-ico svg{width:23px;height:23px}.dt-home-card:hover .dt-home-card-ico{background:var(--blue);color:#fff;transform:scale(1.06) rotate(-3deg)}.dt-home-card h3{font-size:17.5px;font-weight:600;letter-spacing:-0.01em;margin:0}.dt-home-card-desc{font-size:13.5px;color:var(--ink-3);margin:7px 0 0;min-height:38px}.dt-home-card-topics{margin-top:14px;display:flex;flex-direction:column;gap:8px}.dt-home-card-topics span{font-size:13.5px;color:var(--ink-2);display:flex;align-items:center;gap:7px;font-weight:500}.dt-home-card-topics span::before{content:\"\";width:4px;height:4px;border-radius:50%;background:var(--blue);opacity:0.5;flex:none}.dt-home-card-count{position:absolute;top:24px;right:24px;font-size:12.5px;color:var(--ink-3);font-weight:600}.dt-home-popular{background:var(--bg-soft);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}.dt-home-art-grid{display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));gap:14px}.dt-home-art{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;transition:0.22s;min-width:0}.dt-home-art:hover{border-color:var(--blue);box-shadow:var(--shadow-sm);transform:translateX(4px)}.dt-home-art-num{font-weight:700;font-size:18px;color:var(--blue);width:26px;flex:none;text-align:center}.dt-home-art-info{flex:1;min-width:0}.dt-home-art-info h4{font-size:15px;font-weight:600;letter-spacing:-0.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.dt-home-art-tag{font-size:12.5px;color:var(--ink-3);margin-top:3px;display:block}.dt-home-art-arr{width:18px;height:18px;color:var(--ink-3);flex:none;transition:0.22s}.dt-home-art:hover .dt-home-art-arr{color:var(--blue);transform:translateX(3px)}.dt-home-support{background:linear-gradient(120deg, #0c2a66, #0066ff 70%);color:#fff;border-radius:26px;padding:48px 52px;display:flex;align-items:center;gap:30px;justify-content:space-between;position:relative;overflow:hidden;box-shadow:var(--shadow-blue)}.dt-home-support-txt{flex:1;min-width:0}.dt-home-support-acts{flex:none}.dt-home-support::before{content:\"\";position:absolute;right:-60px;top:-60px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle, rgba(255, 255, 255, 0.18), transparent 70%)}.dt-home-support-txt h2{font-size:26px;font-weight:700;letter-spacing:-0.01em;margin:0}.dt-home-support-txt p{font-size:15px;color:rgba(255, 255, 255, 0.82);margin:8px 0 0;max-width:440px}.dt-home-support-acts{display:flex;gap:12px;flex-wrap:wrap;position:relative}.dt-home-support-acts a{padding:12px 22px;border-radius:99px;font-weight:600;font-size:14.5px;transition:0.2s}.dt-home-support-acts a.dt-home-support-s1{background:#fff;color:var(--blue-deep)}.dt-home-support-acts a.dt-home-support-s1:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0, 0, 0, 0.2)}.dt-home-support-acts a.dt-home-support-s2{background:rgba(255, 255, 255, 0.14);color:#fff;border:1px solid rgba(255, 255, 255, 0.28)}.dt-home-support-acts a.dt-home-support-s2:hover{background:rgba(255, 255, 255, 0.22)}.dt-home-footer{border-top:1px solid var(--line-2);padding:54px 0 40px;margin-top:8px}.dt-home-foot{display:grid;grid-template-columns:1.4fr repeat(3, 1fr);gap:40px}.dt-home-foot-brand{display:block;width:130px;height:42px;background:var(--logo-url) no-repeat left center;background-size:contain;margin-bottom:14px}.dt-home-foot-tagline{display:block;font-size:13.5px;color:var(--ink-3);max-width:260px;margin:0}.dt-home-foot h5{font-size:13px;font-weight:700;color:var(--ink);margin:0 0 14px;letter-spacing:0.02em}.dt-home-foot ul{list-style:none;display:flex;flex-direction:column;gap:10px;padding:0;margin:0}.dt-home-foot ul a{font-size:13.5px;color:var(--ink-2);transition:0.2s}.dt-home-foot ul a:hover{color:var(--blue)}.dt-home-foot-bottom{max-width:1180px;margin:36px auto 0;padding:22px 28px 0;border-top:1px solid var(--line-2);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:var(--ink-3)}.dt-home-foot-bottom a{color:var(--ink-3)}@media (max-width: 900px){.dt-home-grid{grid-template-columns:repeat(2, 1fr)}.dt-home-art-grid{grid-template-columns:repeat(2, minmax(0, 1fr))}.dt-home-foot{grid-template-columns:1fr 1fr}.dt-home-nav-links{display:none}.dt-home-navmenu{display:block}.dt-home .dt-home-btn-primary{display:none}}@media (max-width: 640px){.dt-home-art-grid{grid-template-columns:minmax(0, 1fr)}.dt-home-hot{left:auto;transform:none;width:auto;max-width:100%;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.dt-home-hot::-webkit-scrollbar{display:none}}@media (max-width: 560px){.dt-home-nav{gap:10px;padding:0 24px;height:60px}.dt-home-brand{font-size:17px;gap:8px}.dt-home-brand-logo{width:76px;height:26px}.dt-home-brand-sub{display:none}.dt-home-nav-right{gap:8px}.dt-home-lang-btn{padding:7px 10px;font-size:13px}.dt-home-btn-primary{padding:8px 15px;font-size:13px}}@media (max-width: 560px){.dt-home-grid{grid-template-columns:1fr}.dt-home-wrap{padding:0 24px}.dt-home-hero{padding:52px 24px 46px}.dt-home-eyebrow{font-size:12px;margin-bottom:18px}.dt-home-hero-title{font-size:28px}.dt-home-hero-sub{font-size:15px}.dt-home-search{margin-top:28px}.dt-home-search-box{padding:7px 7px 7px 18px}.dt-home-search-box input{font-size:15px}.dt-home-search-go{display:none}.dt-home-block{padding-top:46px;padding-bottom:46px}.dt-home-popular .dt-home-block{padding-top:52px;padding-bottom:52px}.dt-home-sec-head{margin-bottom:24px}.dt-home-sec-head h2{font-size:21px}.dt-home-card{padding:22px 20px}.dt-home-art{padding:16px}.dt-home-support{padding:30px 22px;flex-direction:column;align-items:flex-start;gap:20px}.dt-home-support-txt h2{font-size:21px}.dt-home-support-acts{width:100%;flex-direction:column;gap:10px}.dt-home-support-acts a{width:100%;text-align:center}.dt-home-foot{grid-template-columns:1fr 1fr;gap:26px 24px}.dt-home-foot-bottom{flex-direction:column;gap:10px;align-items:flex-start;padding:22px 24px 0}}@media (max-width: 380px){.dt-home-hero-title{font-size:25px}.dt-home-foot{grid-template-columns:1fr}}html.dark .dt-home{--ink: #e8edf5;--ink-2: #b4becf;--ink-3: #7e8a9c;--line: #25303f;--line-2: #1b232f;--bg: #0c1219;--bg-soft: #11171f;--blue-soft: rgba(0, 102, 255, 0.18);--blue-tint: rgba(0, 102, 255, 0.10);--surface: #161d27;--surface-glass: rgba(12, 18, 25, 0.78);--eyebrow-bg: #161d27;--logo-url: url(/logo/dark.svg);--dot-pattern: rgba(255, 255, 255, 0.05);--hero-scrim: radial-gradient(660px 420px at 50% 42%, rgba(12, 18, 25, 0.55), rgba(12, 18, 25, 0.20) 54%, rgba(12, 18, 25, 0) 78%);--hero-tint-1: rgba(0, 102, 255, 0.18);--hero-tint-2: rgba(58, 147, 255, 0.10);--hero-tint-3: rgba(150, 120, 255, 0.08);--shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4), 0 4px 16px rgba(0, 0, 0, 0.35);--shadow-md: 0 8px 30px rgba(0, 0, 0, 0.45);--shadow-blue: 0 12px 40px rgba(0, 102, 255, 0.32)}html.dark .dt-home .dt-home-card:hover{border-color:var(--line)}.nav-logo{height:2rem;width:6rem;object-fit:contain;object-position:left center}html.dt-404[data-page-mode=\"custom\"] #navbar{display:block!important}@media (max-width: 1023px){html.dt-404[data-page-mode=\"custom\"] :where(div):has(>#content-area){padding-top:4rem!important}}html.dt-404 #content-container>span.absolute.inset-0{height:100%!important}@media (min-height: 560px){html.dt-404 .relative.antialiased.text-gray-500{max-height:100vh;overflow:hidden}}html.dt-404 #error-description{gap:0.5rem!important}html.dt-404 #content-area div:has(>#error-title){gap:1rem!important}"}],"page":{"pagePath":"open/development/common-errors","slug":"/open/development/common-errors","pageMetadata":{"title":"Common error codes","description":"Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.","href":"/open/development/common-errors"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`differences-between-userid-and-unionid`,children:`Differences between userId and unionId`}),`\n`,_jsx(_components.p,{children:`A: The differences between userId and unionId in specific scenarios are as follows:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`A user’s userid is globally unique within the same organization and is never duplicated.`}),`\n`,_jsx(_components.li,{children:`A user’s unionId is globally unique within the same app service. For example, if Xiaoding belongs to three organizations that share the same Third-party enterprise app, the unionId returned by that Third-party enterprise app for Xiaoding is the same across all three organizations.`}),`\n`,_jsxs(_components.li,{children:[`You can query the corresponding unionId by userId. See `,_jsx(_components.a,{href:`/open/development/query-user-details`,children:`Query user details`}),`. Conversely, you can also query the corresponding userId by unionId. See `,_jsx(_components.a,{href:`/open/development/query-a-user-by-the-union-id`,children:`Get a user’s userid by unionid`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-get-user-token-api-does-not-return-corpid`,children:`The Get user token API does not return corpId`}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/obtain-user-token`,children:`Get user token`}),` API, the issue above may be caused by the following:`]}),`\n`,_jsxs(_components.p,{children:[`When `,_jsx(_components.a,{href:`/open/development/obtain-identity-credentials`,children:`obtaining the Access credential of a signed-in user`}),`, you must pass `,_jsx(_components.code,{children:`scope=openid%20corpid`}),` in the constructed sign-in authorization page. After Authorization, retrieve the authCode and then call the Get user token API to receive the corpid.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-get-information-about-all-employees-in-an-organization`,children:`How to get information about all employees in an organization`}),`\n`,_jsx(_components.p,{children:`A: DingTalk does not provide an API that returns all employees in an organization at once. Developers can obtain this information through the following steps. For the detailed flow, refer to the use case for obtaining information about all employees in an organization.`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`First, call the Get department list API to obtain all department IDs in the organization.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Iterate through each department by calling the `,_jsx(_components.a,{href:`/open/development/query-the-list-of-department-userids`,children:`Get the userid list of a department`}),` API.`]}),`\n`,_jsxs(_components.p,{children:[`Ensure that the Contacts API permission scope is set to `,_jsx(_components.strong,{children:`All employees`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`the-get-user-profile-api-does-not-return-the-email-address`,children:`The Get user profile API does not return the email address`}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/dingtalk-retrieve-user-information`,children:`Get user profile`}),` API, the issue above may be caused by the following:`]}),`\n`,_jsx(_components.p,{children:`The email address is returned only if it has been configured under DingTalk Client-side > Mail (as shown below).`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Email addresses provided by DingTalk (for example, `,_jsx(_components.a,{href:`mailto:xxx@dingtalk.io`,children:`xxx@dingtalk.io`}),`) are not returned.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-clear-a-department-manager-from-user-information`,children:`How to clear a department manager from user information`}),`\n`,_jsxs(_components.p,{children:[`A: To clear a department manager when calling the `,_jsx(_components.a,{href:`/open/development/user-information-update`,children:`Update user information`}),` API, do the following:`]}),`\n`,_jsxs(_components.p,{children:[`To clear a department manager, set `,_jsx(_components.code,{children:`dept_manager_userid_list`}),` (department manager) in `,_jsx(_components.code,{children:`force_update_fields`}),` (fields to force-update). Do not pass an empty value for `,_jsx(_components.code,{children:`dept_manager_userid_list`}),`, otherwise an error will occur.`]}),`\n`,_jsx(Heading,{level:`2`,id:`cannot-retrieve-a-user’s-mobile-number-when-calling-the-query-user-details-api`,children:`Cannot retrieve a user’s mobile number when calling the Query user details API`}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/query-user-details`,children:`Query user details`}),` API, the error above may be caused by insufficient permissions.`]}),`\n`,_jsxs(_components.p,{children:[`Solution: In the `,_jsx(_components.a,{href:`https://open-dev.dingtalk.io/#/`,children:`DingTalk Developer Console`}),`, open the details page of the app, find the API permission entry, and apply for the permission to retrieve mobile number information.`]}),`\n`,_jsx(Heading,{level:`2`,id:`about-the-error-“the-requested-userid/department-id-is-not-within-the-authorized-scope”`,children:`About the error “The requested userid/department id is not within the authorized scope”`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`For an Internal app: In the Developer Console, go to the Manage permissions page of the corresponding app and confirm that the relevant department or user has been added to the authorized permission scope.`}),`\n`,_jsxs(_components.li,{children:[`For a Third-party enterprise app: The authorized organization (the organization that has activated the app) must go to the `,_jsx(_components.a,{href:`https://oa.dingtalk.io/?lang=en_US`,children:`DingTalk Admin Console`}),` `,_jsx(_components.strong,{children:`> Workbench > App Management`}),`, select the corresponding third-party app, and click the Settings button. In the dialog box that appears, confirm that the relevant user has been added to the visible scope.`]}),`\n`]}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-a-contacts-api-returns-errcode-50002-the-requested-employee-userid-is-not-within-the-authorized-scope`,children:[`Calling a Contacts API returns `,_jsx(_components.code,{children:`errcode 50002 The requested employee userid is not within the authorized scope`})]}),`\n`,_jsxs(_components.p,{children:[`A: The app corresponding to the access_token used to call the API does not include this employee in the authorized scope on the `,_jsx(_components.strong,{children:`Manage permissions`}),` page of the Developer Console.`]}),`\n`,_jsxs(_components.p,{children:[`Solution: Click the `,_jsx(_components.strong,{children:`Add`}),` button on the Manage permissions page and add the user to the `,_jsx(_components.strong,{children:`Authorized users`}),` list.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-a-contacts-api-returns-errcode-50004-the-requested-department-id-is-not-within-the-authorized-scope`,children:[`Calling a Contacts API returns `,_jsx(_components.code,{children:`errcode 50004 The requested department id is not within the authorized scope`})]}),`\n`,_jsxs(_components.p,{children:[`A: The app corresponding to the access_token used to call the API does not include this department in the authorized scope on the `,_jsx(_components.strong,{children:`Manage permissions`}),` page of the Developer Console.`]}),`\n`,_jsxs(_components.p,{children:[`Solution: Click the `,_jsx(_components.strong,{children:`Add`}),` button on the Manage permissions page and add the department to be changed to the `,_jsx(_components.strong,{children:`Authorized users`}),` list.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-update-user-information-returns-errcode-40022-the-mobile-number-in-the-organization-does-not-match-the-mobile-number-used-to-sign-in-to-dingtalk`,children:[`Calling Update user information returns `,_jsx(_components.code,{children:`errcode 40022 The mobile number in the organization does not match the mobile number used to sign in to DingTalk`})]}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/user-information-update`,children:`Update user information`}),` API, this error occurs because the API does not currently support modifying a user’s mobile number. You can delete the user and add them again.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-query-user-by-mobile-number-returns-errmsg-no-permission-to-call`,children:[`Calling Query user by mobile number returns `,_jsx(_components.code,{children:`errmsg No permission to call`})]}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/query-users-by-phone-number`,children:`Query user by mobile number`}),` API, this error may be caused by an outdated app Version (an app that uses corpId and Corpsecret to obtain access_token).`]}),`\n`,_jsx(_components.p,{children:`Solution: Create a new app to obtain the access_token.`}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-create-user-returns-errmsg-system-is-busy`,children:[`Calling Create user returns `,_jsx(_components.code,{children:`errmsg System is busy`})]}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/user-information-creation`,children:`Create user`}),` API, this error may be caused by the following:`]}),`\n`,_jsx(_components.p,{children:`The organization may have exceeded the Weekly limit for adding employees, or exceeded the total limit for the organization.`}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-create-user-returns-errcode-60103-invalid-mobile-number`,children:[`Calling Create user returns `,_jsx(_components.code,{children:`errcode 60103 Invalid mobile number`})]}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/user-information-creation`,children:`Create user`}),` API, this error may be caused by, but is not limited to, the following:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The Company Region configured in DingTalk is outside the Chinese mainland. If the mobile number is from the Chinese mainland, use the format +86-xxxxxx.`}),`\n`,_jsx(_components.li,{children:`The Company Region configured in DingTalk is the Chinese mainland. If the mobile number is from outside the Chinese mainland, use the format +86-xxxxxx.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`calling-create-user-returns-“errcode-40103-errmsg-invitation-sent-the-user-can-join-organization-after-accepting-it”`,children:`Calling Create user returns “errcode: 40103, errmsg: Invitation sent. The user can Join Organization after accepting it”`}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/user-information-creation`,children:`Create user`}),` API to invite a user to Join Organization, this response may be caused by, but is not limited to, the following:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Security rule triggered: If an employee already belongs to an authenticated organization A, the above message appears when organization B tries to add the same employee. On the Client-side, search for the team invitation or check the corresponding invitation on the Contacts page and handle it accordingly.`}),`\n`,_jsx(_components.li,{children:`The invited user has enabled “Require verification when a team adds me” under DingTalk mobile Client-side > Me > Settings > Privacy > Team and Members. After this option is enabled, search for the team invitation on the Client-side or check the corresponding invitation on the Contacts page and handle it accordingly.`}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`After a user accepts the invitation and successfully joins the organization, if the organization deletes the user on the same day, the same error will be returned when the API is called again to invite the user within 24 hours after the deletion.`})}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-get-user-profile-returns-forbidden-accessdenied-accesstokenpermissiondenied-no-permission-to-call-this-api`,children:[`Calling Get user profile returns `,_jsx(_components.code,{children:`Forbidden.AccessDenied.AccessTokenPermissionDenied No permission to call this API`})]}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/dingtalk-retrieve-user-information`,children:`Get user profile`}),` API, this error may be caused by, but is not limited to, the following:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Permissions issue: Check whether the “Read Contacts Profile” and “Personal mobile number” permissions have been applied for.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Incorrect access token: The Access credential for this API is the access token of an individual user. Passing an incorrect access token also triggers this error. To obtain the access token of an individual user:`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Step 1`}),`: Obtain the authCode. In a browser, visit the constructed sign-in authorization page URL: `,_jsx(_components.a,{href:`https://login.dingtalk.io/oauth2/auth?redirect_uri=https%3A%2F%2Fwww.aaaaa.com%2Fa%2Fb`,children:`https://login.dingtalk.io/oauth2/auth?redirect_uri=https%3A%2F%2Fwww.aaaaa.com%2Fa%2Fb`}),` (this URI is an example, not a fixed value) // The callback URL after Authorization is approved or declined. Make sure it has been added to Sign-in and Share > callback Domain in the corresponding app in the Developer Console. \u0026response_type=code // Fixed value `,_jsx(_components.code,{children:`code`}),`. The authCode is returned after Authorization is approved.`]}),`\n`,_jsx(_components.p,{children:`\u0026client_id=dingbbbbbbb // The appkey of the app`}),`\n`,_jsx(_components.p,{children:`\u0026scope=openid%2Bcorpid`}),`\n`,_jsx(_components.p,{children:`\u0026state=dddd`}),`\n`,_jsx(_components.p,{children:`\u0026prompt=consent`}),`\n`,_jsxs(_components.p,{children:[`After the user grants Authorization, the page redirects to `,_jsx(_components.a,{href:`https://www.aaaaa.com/a/b?authCode=xxxx\u0026state=dddd`,children:`https://www.aaaaa.com/a/b?authCode=xxxx\u0026state=dddd`}),`, from which you can obtain the authCode.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Step 2`}),`: After obtaining the authCode, call `,_jsx(_components.a,{href:`/open/development/obtain-user-token`,children:`Get user token`}),` to obtain the access token of the individual user. For details, see `,_jsx(_components.a,{href:`/open/development/obtain-identity-credentials`,children:`Obtain the Access credential of a signed-in user`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-update/delete/query-user-returns-errcode-60121-user-not-found`,children:[`Calling Update/Delete/Query user returns `,_jsx(_components.code,{children:`errcode 60121 User not found`})]}),`\n`,_jsx(_components.p,{children:`A: This error may be caused by, but is not limited to, the following:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`The userId (the unique identifier of the user within the organization) and the access_token (the Server API Access credential) passed in do not belong to apps under the same organization.`}),`\n`,_jsx(_components.li,{children:`The user identified by the userId has resigned or has not yet onboarded.`}),`\n`,_jsx(_components.li,{children:`The organization has invited the user, but the user has not yet accepted the invitation to Join Organization.`}),`\n`]}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-get-department-details-returns-errcode-40009-invalid-department-id`,children:[`Calling Get department details returns `,_jsx(_components.code,{children:`errcode 40009 Invalid department id`})]}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/query-department-details0-v2`,children:`Get department details`}),` API, this error may be caused by the following:`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`dept_id`}),` passed in is -7 (the Department ID of the school-parent contacts). The school-parent Contacts dept_id=-7 is not supported in the Contacts management scenario documentation.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`calling-update-user-information-returns-errcode-12150-smart-hr-job-title-management-is-enabled`,children:[`Calling Update user information returns `,_jsx(_components.code,{children:`errcode 12150 Smart HR Job Title management is enabled`})]}),`\n`,_jsxs(_components.p,{children:[`A: When calling the `,_jsx(_components.a,{href:`/open/development/user-information-update`,children:`Update user information`}),` API, this error may be caused by the following:`]}),`\n`,_jsxs(_components.p,{children:[`When Smart HR Job Title management is enabled, to update the Job Title (`,_jsx(_components.code,{children:`title`}),`) or Department (`,_jsx(_components.code,{children:`deptid`}),`) fields in the user information, you must update them through the Smart HR employee transfer flow.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"github-light","dark":"github-dark"}},"config":{},"pageMetadata":{"title":"Common error codes","description":"Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.","href":"/open/development/common-errors"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Differences between userId and unionId","slug":"differences-between-userid-and-unionid","depth":2,"children":[]},{"title":"The Get user token API does not return corpId","slug":"the-get-user-token-api-does-not-return-corpid","depth":2,"children":[]},{"title":"How to get information about all employees in an organization","slug":"how-to-get-information-about-all-employees-in-an-organization","depth":2,"children":[]},{"title":"The Get user profile API does not return the email address","slug":"the-get-user-profile-api-does-not-return-the-email-address","depth":2,"children":[]},{"title":"How to clear a department manager from user information","slug":"how-to-clear-a-department-manager-from-user-information","depth":2,"children":[]},{"title":"Cannot retrieve a user’s mobile number when calling the Query user details API","slug":"cannot-retrieve-a-user’s-mobile-number-when-calling-the-query-user-details-api","depth":2,"children":[]},{"title":"About the error “The requested userid/department id is not within the authorized scope”","slug":"about-the-error-“the-requested-userid/department-id-is-not-within-the-authorized-scope”","depth":2,"children":[]},{"title":"Calling a Contacts API returns errcode 50002 The requested employee userid is not within the authorized scope","slug":"calling-a-contacts-api-returns-errcode-50002-the-requested-employee-userid-is-not-within-the-authorized-scope","depth":2,"children":[]},{"title":"Calling a Contacts API returns errcode 50004 The requested department id is not within the authorized scope","slug":"calling-a-contacts-api-returns-errcode-50004-the-requested-department-id-is-not-within-the-authorized-scope","depth":2,"children":[]},{"title":"Calling Update user information returns errcode 40022 The mobile number in the organization does not match the mobile number used to sign in to DingTalk","slug":"calling-update-user-information-returns-errcode-40022-the-mobile-number-in-the-organization-does-not-match-the-mobile-number-used-to-sign-in-to-dingtalk","depth":2,"children":[]},{"title":"Calling Query user by mobile number returns errmsg No permission to call","slug":"calling-query-user-by-mobile-number-returns-errmsg-no-permission-to-call","depth":2,"children":[]},{"title":"Calling Create user returns errmsg System is busy","slug":"calling-create-user-returns-errmsg-system-is-busy","depth":2,"children":[]},{"title":"Calling Create user returns errcode 60103 Invalid mobile number","slug":"calling-create-user-returns-errcode-60103-invalid-mobile-number","depth":2,"children":[]},{"title":"Calling Create user returns “errcode: 40103, errmsg: Invitation sent. The user can Join Organization after accepting it”","slug":"calling-create-user-returns-“errcode-40103-errmsg-invitation-sent-the-user-can-join-organization-after-accepting-it”","depth":2,"children":[]},{"title":"Calling Get user profile returns Forbidden.AccessDenied.AccessTokenPermissionDenied No permission to call this API","slug":"calling-get-user-profile-returns-forbidden-accessdenied-accesstokenpermissiondenied-no-permission-to-call-this-api","depth":2,"children":[]},{"title":"Calling Update/Delete/Query user returns errcode 60121 User not found","slug":"calling-update/delete/query-user-returns-errcode-60121-user-not-found","depth":2,"children":[]},{"title":"Calling Get department details returns errcode 40009 Invalid department id","slug":"calling-get-department-details-returns-errcode-40009-invalid-department-id","depth":2,"children":[]},{"title":"Calling Update user information returns errcode 12150 Smart HR Job Title management is enabled","slug":"calling-update-user-information-returns-errcode-12150-smart-hr-job-title-management-is-enabled","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/dingtalk-8c0f98e2/f5c3f6ab2f350c0d/custom-404.js","/_mintlify/custom/dingtalk-8c0f98e2/2315588e4406daf7/embed-mode.js","/_mintlify/custom/dingtalk-8c0f98e2/c231eb7efede7372/nav-overflow.js","/_mintlify/custom/dingtalk-8c0f98e2/83ccd86c0fac2e72/locale-label.js"],"subdomain":"dingtalk-8c0f98e2","siteName":"DingTalk Help Center","title":"Common error codes - DingTalk Help Center","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/open/development/common-errors","matchLevel":0},"zh":{"href":"/zh/open/development/common-errors","matchLevel":1},"ja":{"href":"/ja/open/development/common-errors","matchLevel":1},"id":{"href":"/id/open/development/common-errors","matchLevel":1},"uz":{"href":"/ms/im/chats-overview","matchLevel":4}}},"lastModified":"2026-10-24T08:04:32.410Z","originalFileLocation":"open/development/common-errors.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.\">\u003cmeta data-mint-head name=\"application-name\" content=\"DingTalk Help Center\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Common error codes - DingTalk Help Center\">\u003cmeta data-mint-head property=\"og:description\" content=\"Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"DingTalk Help Center\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.dingtalk.io/open/development/common-errors\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dingtalk-8c0f98e2.mintlify.site/_mintlify/api/og/v2?division=Contacts\u0026amp;title=Common+error+codes\u0026amp;description=Summarizes+common+issues+when+calling+DingTalk+server-side+Contacts+APIs%2C+covering+userId+vs+unionId%2C+missing+corpId+in+user+token%2C+retrieving+all+employees%2C+mi\u0026amp;theme=549c54e3bdcad2461cc57535\u0026amp;signature=59b6675c1f144c510888fc59fdb99b9f80d680c2de4c5a30431fb77c4da23af6\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Common error codes - DingTalk Help Center\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dingtalk-8c0f98e2.mintlify.site/_mintlify/api/og/v2?division=Contacts\u0026amp;title=Common+error+codes\u0026amp;description=Summarizes+common+issues+when+calling+DingTalk+server-side+Contacts+APIs%2C+covering+userId+vs+unionId%2C+missing+corpId+in+user+token%2C+retrieving+all+employees%2C+mi\u0026amp;theme=549c54e3bdcad2461cc57535\u0026amp;signature=59b6675c1f144c510888fc59fdb99b9f80d680c2de4c5a30431fb77c4da23af6\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/dingtalk-8c0f98e2/Pyy5MOYmlD5qyOij/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"DingTalk Help Center\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0066ff\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"dingtalk:title\" content=\"DingTalk 帮助中心\">\u003cmeta data-mint-head name=\"dingtalk:description\" content=\"DingTalk 帮助中心 — 指南、API 文档与教程\">\u003cmeta data-mint-head name=\"dingtalk:img\" content=\"https://img.alicdn.com/imgextra/i2/O1CN01YT67eU1F0F4n6LlTN_!!6000000000424-2-tps-1024-1024.png\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"4EgfuXkL4_HIpxdhr5IMYiZJoq7XTFARPiv2wALnH0c\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.dingtalk.io/open/development/common-errors\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/open/development/common-errors.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://help.dingtalk.io/open/development/common-errors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://help.dingtalk.io/zh/open/development/common-errors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://help.dingtalk.io/ja/open/development/common-errors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://help.dingtalk.io/id/open/development/common-errors\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://help.dingtalk.io/open/development/common-errors\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.dingtalk.io/#organization\",\"name\":\"DingTalk Help Center\",\"url\":\"https://help.dingtalk.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://help.dingtalk.io/logo/light.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.dingtalk.io#website\",\"name\":\"DingTalk Help Center\",\"url\":\"https://help.dingtalk.io\",\"publisher\":{\"@id\":\"https://help.dingtalk.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.dingtalk.io/open/development/common-errors#webpage\",\"url\":\"https://help.dingtalk.io/open/development/common-errors\",\"name\":\"Common error codes\",\"description\":\"Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.\",\"dateModified\":\"2026-10-24T08:04:32.410Z\",\"isPartOf\":{\"@id\":\"https://help.dingtalk.io#website\"},\"breadcrumb\":{\"@id\":\"https://help.dingtalk.io/open/development/common-errors#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.dingtalk.io/open/development/common-errors#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Contacts\",\"item\":\"https://help.dingtalk.io/open/development/contacts-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Common error codes\",\"item\":\"https://help.dingtalk.io/open/development/common-errors\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://help.dingtalk.io/open/development/common-errors#article\",\"headline\":\"Common error codes\",\"name\":\"Common error codes\",\"description\":\"Summarizes common issues when calling DingTalk server-side Contacts APIs, covering userId vs unionId, missing corpId in user token, retrieving all employees, missing email in personal contacts, and clearing department managers.\",\"url\":\"https://help.dingtalk.io/open/development/common-errors\",\"mainEntityOfPage\":{\"@id\":\"https://help.dingtalk.io/open/development/common-errors#webpage\"},\"dateModified\":\"2026-10-24T08:04:32.410Z\",\"publisher\":{\"@id\":\"https://help.dingtalk.io/#organization\"},\"isPartOf\":{\"@id\":\"https://help.dingtalk.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"DingTalk Help Center\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"DingTalk Help Center","nav":{"global":null,"languages":[{"language":"en","banner":{"content":"**Announcement:** DingTalk plans for international customers are changing beginning October 21, 2026. [Learn more](/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"Download","href":"https://www.dingtalk.io/download/"}},"products":[{"product":"Help Docs","icon":"book-open","pages":[{"title":"Help Docs","href":"/im/chats-overview"}]},{"product":"Developer Docs","icon":"code","tabs":[{"tab":"Developer Guide","icon":"https://mintlify.s3.us-west-1.amazonaws.com/dingtalk-8c0f98e2/logo/icons/dev.svg","pages":[{"title":"Developer Guide","href":"/open/dingstart/basic-concepts-beta"}]},{"tab":"Server API","icon":"server","groups":[{"group":"API calling guide","icon":"plug","pages":[{"title":"API call walkthrough","href":"/open/development/server-api-calling-guide"},{"group":"Request API permissions","pages":[{"title":"Add API call permissions","href":"/open/development/add-api-permission"},{"title":"Sensitive permissions for apps","href":"/open/development/use-sensitive-permissions"},{"title":"FAQ","href":"/open/development/data-faq"}]},{"title":"Data pagination","href":"/open/development/pagination"},{"title":"Rate limits","href":"/open/development/call-frequency-limit"},{"title":"Global error codes","href":"/open/development/server-api-error-codes-1"}]},{"group":"Authentication \u0026 authorization","icon":"key","pages":[{"group":"Identity authentication (silent login)","pages":[{"title":"Overview","href":"/open/development/sso-overview"},{"title":"Get user information by silent login code","href":"/open/development/obtain-the-userid-of-a-user-by-using-the-log-free"},{"title":"FAQs","href":"/open/development/development-mlogon-faq"}]},{"group":"Access credentials","pages":[{"title":"Overview","href":"/open/development/authorization-overview"},{"title":"Obtain the access credential of a signed-in user","href":"/open/development/obtain-identity-credentials"},{"title":"Get the API access credential of an app","href":"/open/development/used-application-authorization"},{"group":"User identity credentials","pages":[{"title":"Get the user token","href":"/open/development/obtain-user-token"}]},{"group":"App identity credentials","pages":[{"title":"Get the access token of an internal app","href":"/open/development/obtain-the-access-token-of-an-internal-app"},{"title":"Get the access token of an app","href":"/open/development/api-gettoken"}]},{"group":"JSAPI authentication","pages":[{"title":"Get the jsapi_ticket","href":"/open/development/create-a-jsapi-ticket"}]}]}]},{"group":"Contacts","icon":"address-book","pages":[{"title":"Overview","href":"/open/development/contacts-overview"},{"group":"Tutorials","pages":[{"title":"Create, retrieve, update, and delete employees","href":"/open/development/address-book-employee-operations"},{"title":"Create, retrieve, update, and delete departments","href":"/open/development/operations-related-to-address-book-departments"},{"title":"Sync your OA system with DingTalk Contacts","href":"/open/development/synchronization-between-enterprise-oa-system-and-dingtalk-address-book"}]},{"title":"Get basic user information","href":"/open/development/queries-basic-user-information"},{"title":"Get the Contacts permission scope","href":"/open/development/obtain-corpsecret-authorization-scope"},{"title":"Get the contact profile of a user","href":"/open/development/dingtalk-retrieve-user-information"},{"group":"User management","pages":[{"title":"Create a user","href":"/open/development/user-information-creation"},{"title":"Get user details","href":"/open/development/query-user-details"},{"title":"Update user information","href":"/open/development/user-information-update"},{"title":"Delete a user","href":"/open/development/delete-a-user"},{"title":"Get the total number of employees","href":"/open/development/user-management-acquires-number-employees"},{"title":"Search for user IDs","href":"/open/development/address-book-search-user-id"},{"title":"Sort user IDs in Contacts","href":"/open/development/address-book-userid-sorting"},{"title":"Get details of users in a department","href":"/open/development/queries-the-complete-information-of-a-department-user"},{"title":"Get a user by mobile number","href":"/open/development/query-users-by-phone-number"},{"title":"Get the user ID by unionId","href":"/open/development/query-a-user-by-the-union-id"},{"title":"Get the user ID list of a department","href":"/open/development/query-the-list-of-department-userids"},{"title":"Get basic information about department users","href":"/open/development/queries-the-simple-information-of-a-department-user"},{"title":"Get the list of employees who did not sign in to DingTalk","href":"/open/development/queries-the-inactive-users-or-active-users-under-an-enterprise"},{"title":"Get the list of admins","href":"/open/development/query-the-administrator-list"},{"title":"Get the app management permissions of an admin","href":"/open/development/obtains-the-administrator-s-microapplication-management-permission"},{"title":"Get the Contacts permission scope of an admin","href":"/open/development/query-permissions-of-the-administrator-address-book"},{"title":"Configure executive mode","href":"/open/development/update-executive-settings"},{"title":"Get the executive mode settings of a user","href":"/open/development/get-user-executive-mode-settings"},{"title":"Query the list of resignation records","href":"/open/development/query-the-details-of-employees-who-have-left-office"},{"title":"Configure visibility of user attributes","href":"/open/development/add-or-update-the-hidden-settings-of-the-employee-property"},{"title":"Get user attribute visibility settings","href":"/open/development/pull-hidden-property-field-for-enterprise-employees"},{"title":"Delete user attribute visibility settings","href":"/open/development/delete-enterprise-employee-attribute-field-visibility-settings"}]},{"group":"Department management","pages":[{"title":"Create a department","href":"/open/development/address-book-creation-department-established-department"},{"title":"Update a department","href":"/open/development/address-book-update-department"},{"title":"Delete a department","href":"/open/development/address-book-deletion-department"},{"title":"Search for department IDs","href":"/open/development/address-book-search-department-id"},{"title":"Get department details","href":"/open/development/query-department-details0-v2"},{"title":"Get the department list","href":"/open/development/user-management-acquires-the-list-departments"},{"title":"Get the sub-department ID list","href":"/open/development/obtain-the-list-of-sub-department-ids"},{"title":"Get the list of all parent departments of a specified department","href":"/open/development/query-the-list-of-all-parent-departments-of-a-department"},{"title":"Get all parent departments of a specific user","href":"/open/development/queries-the-list-of-all-parent-departments-of-a-user"}]},{"group":"Role management","pages":[{"title":"Create a role","href":"/open/development/address-book-add-role"},{"title":"Delete a role","href":"/open/development/delete-role-information"},{"title":"Update a role name","href":"/open/development/update-the-character-name"},{"title":"Get the role list","href":"/open/development/obtains-a-list-of-enterprise-roles"},{"title":"Get role details","href":"/open/development/queries-role-details"},{"title":"Create a role group","href":"/open/development/add-a-role-group"},{"title":"Get a list of role groups","href":"/open/development/obtains-the-role-group-information"},{"title":"Add roles to multiple employees in bulk","href":"/open/development/add-role-information-to-employees-in-batches"},{"title":"Batch remove roles from employees","href":"/open/development/delete-the-color-information-of-employee-corners-in-batches"},{"title":"Set the management scope of a role member","href":"/open/development/update-role-member-management-department-scope"},{"title":"Get the list of users for a specified role","href":"/open/development/obtain-the-list-of-employees-of-a-role"}]},{"group":"Enterprise accounts","pages":[{"title":"Enterprise Account overview","href":"/open/development/dedicated-account-overview"},{"title":"Create an SSO Enterprise Account","href":"/open/development/create-an-sso-account"},{"title":"Change the DingTalk ID of an Enterprise Account","href":"/open/development/api-changedingtalkid"},{"title":"Create a DingTalk-built enterprise account","href":"/open/development/create-dingtalk-user-created-dedicated-account"},{"title":"Update internal user information","href":"/open/development/update-dedicated-accounts-information"},{"title":"Get details of an Enterprise Account user","href":"/open/development/queries-the-details-of-a-dedicated-account"},{"title":"Enable an Enterprise Account","href":"/open/development/enable-a-dedicated-account"},{"title":"Disable an Enterprise Account","href":"/open/development/disable-an-exclusive-account"},{"title":"Force sign-out of an Enterprise Account","href":"/open/development/force-logout-from-dedicated-account"},{"title":"Query the status of an Enterprise Account","href":"/open/development/query-dedicated-account-status-1"},{"title":"Query the organizations owned by an Enterprise Account","href":"/open/development/you-can-call-this-operation-to-query-the-organization-that"},{"title":"Authorize an enterprise account to join multiple organizations","href":"/open/development/authorize-a-dedicated-account-to-join-multiple-organizations"},{"title":"Invite an Enterprise Account from another organization","href":"/open/development/invite-other-organization-specific-accounts-to-join"},{"title":"Get the details of Enterprise Account users in a department","href":"/open/development/queries-account-details"},{"title":"Query an Enterprise Account user by mobile number","href":"/open/development/obtain-the-userid-of-your-mobile-phone-number"},{"title":"Transfer the Super Admin (creator) role of an Enterprise Account","href":"/open/development/transfer-exclusive-account-to-main-administrator-creator"},{"title":"Query the original dingId by the migrated dingId","href":"/open/development/query-the-original-dingid-based-on-the-dingid-after-migration"},{"title":"Query the original unionId by the migrated unionId","href":"/open/development/query-the-original-union-id-based-on-the-union-id"},{"title":"Query the migrated dingId by the original dingId","href":"/open/development/query-the-new-dingid-based-on-the-original-dingid"},{"title":"Query the migrated unionId by the original unionId","href":"/open/development/the-union-id-that-you-want-to-query-you-can"},{"title":"Authorize other organizations to view the Enterprise Account information of your organization","href":"/open/development/api-orgaccountmobilevisibleinotherorg"}]},{"group":"Organization management","pages":[{"title":"Get organization authentication information","href":"/open/development/obtain-enterprise-authentication-information"},{"title":"Get organization invitation information","href":"/open/development/obtain-invitation-information"},{"title":"Get the latest DingTalk Index of an organization","href":"/open/development/queries-the-latest-dingtalk-index-information"},{"title":"Check whether an admin has app management permissions","href":"/open/development/check-whether-the-administrator-has-application-management-permissions"}]},{"group":"Contact ID conversion","pages":[{"title":"Asynchronously translate Contacts IDs","href":"/open/development/asynchronous-address-book-file-content-translation"},{"title":"Get the result of an asynchronous translation job","href":"/open/development/obtains-the-results-of-an-asynchronous-translation-task"}]},{"group":"Contact visibility","pages":[{"title":"Get the Contacts hide settings","href":"/open/development/obtains-the-hide-settings-of-the-address-book"},{"title":"Delete contact hide settings","href":"/open/development/delete-hide-settings"},{"title":"Set the visibility priority of a department","href":"/open/development/set-address-book-visibility-sub-department-settings-to-take-precedence"},{"title":"Create or update contact hiding settings","href":"/open/development/update-address-book-hide-settings"},{"title":"Add or modify Contacts visibility restriction settings","href":"/open/development/add-or-modify-visibility-settings-for-address-book-restrictions"},{"title":"List visibility restriction settings for Contacts","href":"/open/development/gets-a-list-of-address-book-limit-visibility-settings"},{"title":"Delete a Contacts visibility restriction setting","description":"Call this API to delete a specified Contacts visibility restriction rule by setting ID, with request parameters and response fields.","href":"/open/development/delete-visible-restrictions"}]},{"title":"Common error codes","href":"/open/development/common-errors"}]},{"group":"Calendar","icon":"calendar","pages":[{"title":"Overview","description":"Introduces the DingTalk Calendar event product, how to activate it, an overview of open API capabilities, and entry points to tutorials and terminology.","href":"/open/development/dingtalk-event-overview"},{"group":"Tutorials","pages":[{"title":"Create, modify, query, and delete events","href":"/open/development/create-and-delete-an-event"},{"title":"Add, retrieve, and delete event attendees","href":"/open/development/calendar-participant-process"}]},{"group":"User access control","pages":[{"title":"Create an access control","href":"/open/development/create-schedule-access-control"},{"title":"Delete an access control","href":"/open/development/delete-an-access-control-list"},{"title":"Get the access control list","href":"/open/development/obtain-the-access-control-list-of-the-calendar"}]},{"group":"Calendar","pages":[{"title":"New Event","href":"/open/development/create-schedule"},{"title":"Delete Event","href":"/open/development/delete-event"},{"title":"Update an event","href":"/open/development/modify-event"},{"title":"Get details of a single event","href":"/open/development/query-details-about-an-event"},{"title":"List events","href":"/open/development/query-an-event-list"},{"title":"Query the event view","href":"/open/development/query-schedule-view"}]},{"group":"Event attendees","pages":[{"title":"Add event attendees","href":"/open/development/add-schedule-participant"},{"title":"Remove event attendees","href":"/open/development/delete-schedule-participant"},{"title":"Set the response status of an event invitation","href":"/open/development/configure-response-status"},{"title":"Get event attendees","href":"/open/development/get-the-participants-of-a-schedule"}]},{"group":"Free/busy","pages":[{"title":"Get user free/busy information","href":"/open/development/free-schedule"}]},{"group":"Calendars","pages":[{"title":"List calendars","href":"/open/development/query-a-calendar"},{"title":"Subscribe to a public calendar","href":"/open/development/subscribe-to-a-public-calendar"},{"title":"Unsubscribe from a public calendar","href":"/open/development/unsubscribe-from-a-public-calendar"},{"title":"Create a subscription calendar","href":"/open/development/create-subscription-calendar"},{"title":"Query the details of a subscribed calendar","href":"/open/development/query-a-single-subscription-calendar"},{"title":"Update a subscription calendar","href":"/open/development/update-subscription-calendar"},{"title":"Delete a subscribed calendar","href":"/open/development/delete-subscription-calendar"}]},{"group":"Meeting rooms","pages":[{"title":"Get the free/busy information of a room","href":"/open/development/queries-free-and-busy-meeting-room-information"},{"title":"Book a room","href":"/open/development/add-a-meeting-room"},{"title":"Cancel a booked room","href":"/open/development/remove-a-meeting-room"}]},{"title":"Event FAQs","href":"/open/development/schedule-faq"}]},{"group":"Conferencing","icon":"video","pages":[{"title":"Overview","href":"/open/development/video-conference-overview"},{"group":"Tutorials","pages":[{"title":"Create, query, and close a video meeting","href":"/open/development/create-and-close-video-meetings"},{"title":"Create, update, query, and delete a meeting room","href":"/open/development/conference-room-operation-process"},{"title":"Create, update, query, and delete meeting room groups","href":"/open/development/meeting-room-grouping-operation-process"}]},{"group":"Conferences","pages":[{"title":"Create a video meeting","href":"/open/development/create-a-video-conference"},{"title":"Close a video meeting","href":"/open/development/close-audio-video-conference"},{"title":"Query video meeting information","href":"/open/development/querying-video-conference-information"},{"title":"Query video conference members","href":"/open/development/querying-video-conference-members"},{"title":"Query video meeting information in batches","href":"/open/development/batch-query-of-video-conference-information"},{"title":"Query the list of ongoing meetings for a user","href":"/open/development/api-queryuserongoingconference"},{"title":"Query the list of ongoing meetings in your organization","href":"/open/development/api-queryorgconferencelist"},{"title":"Query meeting information by meeting code","href":"/open/development/api-queryconferenceinfobyroomcode"},{"title":"Lock a meeting","href":"/open/development/api-lockconference"},{"title":"Invite users to join a meeting","href":"/open/development/invite-users-to-join"},{"title":"Remove users from a meeting","href":"/open/development/kick-out-meeting-members"},{"title":"Set spotlight on a participant","href":"/open/development/set-the-whole-staff-to-see-him"},{"title":"Set co-hosts","href":"/open/development/set-up-co-hosts"},{"title":"Mute or unmute a specified user","href":"/open/development/specify-person-to-mute-or-unmute"},{"title":"Mute or unmute all attendees","href":"/open/development/mute-all-staff-or-unmute-all-staff"},{"title":"Create a booked meeting","href":"/open/development/create-appointment-meeting"},{"title":"Update a booked meeting","href":"/open/development/update-appointment-meeting"},{"title":"Cancel a booked meeting","href":"/open/development/cancel-appointment-meeting"},{"title":"Query a booked meeting","href":"/open/development/query-meeting-reservation"},{"title":"Query scheduled meeting settings","href":"/open/development/api-queryscheduleconfsettings"},{"title":"Update scheduled meeting settings","href":"/open/development/api-updatescheduleconfsettings"},{"title":"Create a user-specific short link","href":"/open/development/api-createcustomshortlink"},{"title":"Query historical information of a booked meeting","href":"/open/development/query-appointment-meeting-history-meeting-information"},{"title":"Start cloud recording for a video meeting","href":"/open/development/video-conference-open-cloud-recording"},{"title":"Stop cloud recording of a Video Meeting","href":"/open/development/video-conferencing-stops-cloud-recording"},{"title":"Query meeting recording details","href":"/open/development/query-recording-information"},{"title":"Query video information of a meeting recording","href":"/open/development/queries-the-playback-information-about-a-recorded-cloud-video"},{"title":"Query text content of a meeting recording","href":"/open/development/queries-the-text-information-about-cloud-recording"}]},{"group":"Smart meeting rooms","pages":[{"group":"Meeting rooms","pages":[{"title":"Create a Room","href":"/open/development/create-a-meeting-room"},{"title":"Delete a room","href":"/open/development/delete-a-meeting-room"},{"title":"Update room information","href":"/open/development/update-meeting-room-information"},{"title":"Query the list of rooms","href":"/open/development/check-the-meeting-room-list"},{"title":"Query meeting room details","href":"/open/development/check-meeting-room-details"},{"title":"Create a room booking blocklist entry","href":"/open/development/api-createbookingblacklist"},{"title":"Delete users from the room booking blocklist","href":"/open/development/api-deletebookingblacklist"},{"title":"Query video conference device information","href":"/open/development/querying-video-conference-device-information"},{"title":"Query video meeting device properties","href":"/open/development/querying-video-conference-device-attribute-information"},{"title":"Send a Rooms central control API signal","href":"/open/development/api-sendcentralcontrol"}]},{"group":"Meeting room groups","pages":[{"title":"Create a room group","href":"/open/development/create-meeting-room-groups"},{"title":"Delete a Room group","href":"/open/development/delete-a-conference-room-group"},{"title":"Update a room group","href":"/open/development/update-meeting-room-groups"},{"title":"Query the meeting room group list","href":"/open/development/query-meeting-rooms-groups"},{"title":"Query meeting room group details","href":"/open/development/query-meeting-room-groups"}]},{"group":"Custom screen templates","pages":[{"title":"Create a custom screen template","href":"/open/development/api-createdevicecustomtemplate"},{"title":"Delete a custom screen template","href":"/open/development/api-deletedevicecustomtemplate"},{"title":"Update a custom screen template","href":"/open/development/api-updatedevicecustomtemplate"},{"title":"Query custom screen details","href":"/open/development/api-querydevicecustomtemplate"},{"title":"Query the custom screen template list","href":"/open/development/api-querylistdevicecustomscreentemplate"}]}]}]},{"group":"AI Table","icon":"table","pages":[{"title":"Overview","href":"/open/development/ai-table-overview"},{"title":"Data description","href":"/open/development/data-structure"},{"title":"Upload attachments","href":"/open/development/upload-attachment"},{"group":"Data tables","pages":[{"title":"Create a table","href":"/open/development/api-createsheet"},{"title":"Get a table","href":"/open/development/api-notable-getsheet"},{"title":"Get all tables","href":"/open/development/api-notable-getallsheets"},{"title":"Update a table","href":"/open/development/api-noatable-updatesheet"},{"title":"Delete a table","href":"/open/development/api-noatable-deletesheet"}]},{"group":"Fields","pages":[{"title":"Create a field","href":"/open/development/api-noatable-createfield"},{"title":"Update a field","href":"/open/development/api-noatable-updatefield"},{"title":"Get all fields","href":"/open/development/api-noatable-getallfields"},{"title":"Delete a field","href":"/open/development/api-noatable-deletefield"}]},{"group":"Records","pages":[{"title":"Insert records","href":"/open/development/api-notable-insertrecords"},{"title":"Get a record","href":"/open/development/api-getrecord"},{"title":"List multiple records","href":"/open/development/api-notable-listrecords"},{"title":"Update multiple records","href":"/open/development/api-noatable-updaterecords"},{"title":"Delete multiple records","href":"/open/development/api-noatable-deleterecords"}]}]},{"group":"Attendance","icon":"user-clock","pages":[{"title":"Overview","href":"/open/development/attendance-overview"},{"group":"Tutorials","pages":[{"title":"Create, Get, Update, and Delete Attendance Groups","href":"/open/development/operation-related-to-attendance-group"},{"title":"Add, Get, Update, and Delete Attendance Members","href":"/open/development/attendance-group-member-operations"},{"title":"Sync and Update Makeup Clock-In Data from Your Own Attendance System","href":"/open/development/the-replenishment-card-of-enterprise-self-developed-attendance-system-is-synchronized"},{"title":"Get Employee On-Duty Status with Attendance APIs and Events","href":"/open/development/the-enterprise-big-screen-displays-the-attendance-of-employees"},{"title":"Get Daily Employee Attendance Report Data","href":"/open/development/obtain-the-employee-attendance-report-information"},{"title":"Sync Self-Built Leave and Attendance Approvals to DingTalk","href":"/open/development/enterprise-s-own-oa-approval-system-synchronized-to-dingtalk-during-holidays"},{"title":"Sync Clock-In Records from Your Own Attendance System to DingTalk","href":"/open/development/attendance-synchronizes-information"}]},{"group":"Attendance groups","pages":[{"title":"Create an Attendance Group","href":"/open/development/attendance-group-write"},{"title":"Update an Attendance Group","href":"/open/development/attendance-group-update-interface"},{"title":"Delete an Attendance Group","href":"/open/development/delete-attendance-group"},{"title":"Search Attendance Group Summaries","href":"/open/development/attendance-group-search"},{"title":"Get Attendance Group Details","href":"/open/development/query-a-single-attendance-group"},{"title":"Query Attendance Group Information by groupKey","href":"/open/development/queries-attendance-group-information-by-id"},{"title":"Convert groupKey to groupId","href":"/open/development/convert-groupkey-to-groupid"},{"title":"Convert groupId to groupKey","href":"/open/development/groupid-to-groupkey"},{"title":"Batch Get Attendance Group Summaries","href":"/open/development/batch-query-of-simple-information-of-the-attendance-group"},{"title":"Get Attendance Group Details in Batches","href":"/open/development/batch-obtain-attendance-group-details"},{"title":"Get a User's Attendance Group","href":"/open/development/queries-a-user-attendance-group"},{"title":"Batch Add Attendance Members","href":"/open/development/batch-add-employees-under-the-attendance-group"},{"title":"Update Attendance Members","href":"/open/development/attendance-group-member-update"},{"title":"Get Attendance Members","href":"/open/development/batch-query-of-attendance-group-members"},{"title":"Get the User IDs of Attendance Members","href":"/open/development/query-attendance-group-personnel-information-in-batches"},{"title":"Batch Delete Attendance Members","href":"/open/development/batch-delete-employees-under-the-attendance-group"},{"title":"Query the List of Attendance Members","href":"/open/development/batch-query-of-employees-in-the-attendance-group"},{"title":"Check Whether Users Belong to the Current Attendance Group","href":"/open/development/query-members-by-id"},{"title":"Batch Add Wi-Fi Information","href":"/open/development/batch-add-wifi-under-attendance-group"},{"title":"Batch Remove Wi-Fi Information","href":"/open/development/batch-remove-wifi-under-attendance-group"},{"title":"Batch Query Wi-Fi Information","href":"/open/development/batch-query-wifi-under-attendance-group"},{"title":"Batch Add Locations","href":"/open/development/atch-add-position-under-attendance-group"},{"title":"Batch Delete Locations","href":"/open/development/delete-position-in-batches-under-the-attendance-group"},{"title":"Batch Query Locations","href":"/open/development/batch-query-position-under-attendance-group"},{"title":"Query Attendance Write Permissions","href":"/open/development/attendance-writing-operation-is-brand-new-query"}]},{"group":"Clock-in","pages":[{"title":"Get Clock-In Results","href":"/open/development/open-attendance-clock-in-data"},{"title":"Get Clock-In Details","href":"/open/development/attendance-clock-in-record-is-open"},{"title":"Upload Clock-In Records","href":"/open/development/upload-punch-records"}]},{"group":"Shifts","pages":[{"title":"Create a Shift","href":"/open/development/create-modify-shifts"},{"title":"Delete a Shift","href":"/open/development/delete-shift"},{"title":"Update Clock-In Time Window Settings","href":"/open/development/modify-card-settings"},{"title":"Query Shift History","href":"/open/development/query-history-shifts"},{"title":"Search Shifts by Name","href":"/open/development/search-shifts-by-rank"},{"title":"Get Shift Summaries","href":"/open/development/enterprise-shift-query-in-batches"},{"title":"Get Shift Details","href":"/open/development/shift-query"}]},{"group":"Scheduling","pages":[{"title":"Query the Scheduling Information of a User","href":"/open/development/query-scheduling-for-a-day"},{"title":"Batch Query Scheduling Information of Users","href":"/open/development/query-batch-scheduling-information"},{"title":"Schedule Members of a Shift-Based Attendance Group","href":"/open/development/scheduling-system-attendance-group-scheduling"},{"title":"Query Scheduling Clock-In Results","href":"/open/development/query-the-results-of-a-batch-of-tasks"},{"title":"Query Attendance Scheduling Details of an Organization","href":"/open/development/interface-for-daily-full-query-of-attendance-scheduling-information"},{"title":"Batch Query Scheduling Summaries of Users","href":"/open/development/query-scheduling-summary-information"},{"title":"Configure Additional Information for Attendance Schedules","href":"/open/development/synchronization-scheduling-information"}]},{"group":"Attendance rules","pages":[{"title":"Get a Paginated List of Overtime Rules","href":"/open/development/retrieve-a-list-of-overtime-rules-by-page"},{"title":"Get a Paginated List of Makeup Clock-In Rules","href":"/open/development/retrieve-a-list-of-replenishment-rules-by-page"},{"title":"Batch Query Overtime Rule Settings","href":"/open/development/batch-retrieve-overtime-rules"}]},{"group":"Attendance statistics","pages":[{"title":"Check Whether the Smart Statistics Report Is Enabled","href":"/open/development/determine-whether-to-enable-attendance-intelligent-report"},{"title":"Get User Attendance Data","href":"/open/development/obtain-the-attendance-update-data"},{"title":"Get Leave Data from Attendance Reports","href":"/open/development/obtains-the-holiday-data-from-the-smart-attendance-report"},{"title":"Get Attendance Report Column Definitions","href":"/open/development/queries-the-enterprise-attendance-report-column"},{"title":"Get Attendance Report Column Values","href":"/open/development/queries-the-column-value-of-the-attendance-report"}]},{"group":"Leave and attendance approvals","pages":[{"title":"Pre-Calculate Durations","href":"/open/development/api-calculateduration"},{"title":"Notify Approval Completion","href":"/open/development/api-processapprovefinish"},{"title":"Notify Approval Undo","href":"/open/development/notify-the-attendance-to-modify-the-punch-result-when-the"},{"title":"Notify Approval of Makeup Clock-In","href":"/open/development/make-up-the-card-after-approval"},{"title":"Notify Shift Swap Approval","href":"/open/development/shift-change-operation-after-approval"},{"title":"Calculate Leave Duration","href":"/open/development/calculate-leave-duration"},{"title":"Query Leave Status","href":"/open/development/query-status"}]},{"group":"Leave management","pages":[{"title":"Overview","href":"/open/development/holiday-management-describe"},{"title":"Add a Leave Rule","href":"/open/development/add-holiday-rules"},{"title":"Update Leave Rules","href":"/open/development/update-holiday-rules"},{"title":"Delete Leave Rules","href":"/open/development/api-for-deleting-holiday-types"},{"title":"Initialize Leave Balances","href":"/open/development/initialize-holiday-balance"},{"title":"Batch Update Leave Balances","href":"/open/development/bulk-update-holiday-balance"},{"title":"Query the List of Leave Rules","href":"/open/development/holiday-type-query"},{"title":"Query Leave Balances","href":"/open/development/query-holiday-balance"},{"title":"Batch Query Employee Leave Balance Change Records","href":"/open/development/batch-query-employee-leave-balance-change-record"},{"title":"Query User Attendance Holiday Information","href":"/open/development/obtain-user-attendance-and-holiday-information"}]},{"title":"FAQ","href":"/open/development/attendance-interface-common-problems"}]},{"group":"Docs \u0026 files","icon":"folder-open","pages":[{"group":"Knowledge Base","pages":[{"title":"Overview","href":"/open/development/knowledge-base-overview"},{"group":"Tutorials","pages":[{"title":"Upload a file to Knowledge Base","href":"/open/development/upload-files-to-the-knowledge-base"},{"title":"Change Knowledge Base permissions","href":"/open/development/change-of-knowledge-base-access-rights"},{"title":"Knowledge Base member management","href":"/open/development/knowledge-base-member-management"}]},{"group":"Knowledge base management","pages":[{"title":"Create a Knowledge Base","href":"/open/development/new-knowledge-base"},{"title":"Get a Knowledge Base","href":"/open/development/obtain-the-knowledge-base"},{"title":"Pin a knowledge base","href":"/open/development/api-pinspace"},{"title":"List Knowledge Bases","href":"/open/development/get-knowledge-base-list"},{"title":"Get knowledge bases in batches","href":"/open/development/batch-acquisition-of-knowledge-base"},{"title":"Transfer Knowledge Base ownership","href":"/open/development/api-handoveryworkspace"},{"title":"Get the Knowledge Base information of My Docs","href":"/open/development/get-my-documents"}]},{"group":"Knowledge base tree management","pages":[{"title":"Copy a document","href":"/open/development/api-copydoc"},{"title":"Create a shortcut","href":"/open/development/api-createshortcut"},{"title":"Get task status","href":"/open/development/api-gettaskinfo"},{"title":"Create a Knowledge Base document","href":"/open/development/create-team-space-document"},{"title":"Delete a Knowledge Base document","href":"/open/development/delete-team-space-documents"},{"title":"Download a file from Knowledge Base","href":"/open/development/knowledge-base-download-file"},{"title":"Get a node","href":"/open/development/get-knowledge-base-acquisition-node"},{"title":"List nodes","href":"/open/development/get-node-list"},{"title":"Get a node by URL","href":"/open/development/get-node-by-link"},{"title":"Batch query nodes","href":"/open/development/obtain-nodes-in-batch"}]},{"title":"Common data structures","href":"/open/development/common-data-structure"},{"title":"FAQ","href":"/open/development/knowledge-file-faq"}]},{"group":"Documents","pages":[{"title":"Overview","href":"/open/development/dingtalk-document-overview"},{"group":"Data structures","pages":[{"title":"Document data structure","href":"/open/development/document-data-structure"},{"title":"Block element data structure","href":"/open/development/block-data-structure"},{"title":"Emoji enum values","href":"/open/development/enumeration-values-of-emojis"}]},{"group":"Documents","pages":[{"title":"Overwrite a document (delegated permission)","href":"/open/development/api-docupdatecontent"},{"title":"Overwrite a document (App authorization)","href":"/open/development/api-doc-updatecontent"},{"title":"Get resource upload information","href":"/open/development/api-getresourceuploadinfo"},{"title":"Insert content","href":"/open/development/api-insertcontent"},{"title":"Query block elements","href":"/open/development/api-docblocksquery"},{"title":"Insert a block element","href":"/open/development/api-docinsertblocks"},{"title":"Update a block element","href":"/open/development/api-docblocksmodify"},{"title":"Delete a block element","href":"/open/development/api-docdeleteblock"},{"title":"Append text to the end of a paragraph","href":"/open/development/api-docappendtext"},{"title":"Append an inline element to the end of a paragraph","href":"/open/development/api-docappendparagraph"}]},{"title":"FAQs","href":"/open/development/documentation-faq"}]},{"group":"Spreadsheets","pages":[{"title":"Overview","href":"/open/development/overview-of-document-tables"},{"group":"Sheets","pages":[{"title":"Create a worksheet","href":"/open/development/create-a-worksheet"},{"title":"Update a worksheet","href":"/open/development/update-worksheet"},{"title":"Delete a worksheet","href":"/open/development/delete-classic-workbooks"},{"title":"Get a worksheet","href":"/open/development/obtain-worksheet-properties"},{"title":"Get all worksheets","href":"/open/development/obtain-all-worksheets"}]},{"group":"Rows \u0026 columns","pages":[{"title":"Delete rows","href":"/open/development/delete-row"},{"title":"Delete Column","href":"/open/development/delete-column"},{"title":"Auto-fit row height","href":"/open/development/set-row-height-automatically"},{"title":"Batch set column widths","href":"/open/development/api-setcolumnswidth"},{"title":"Set the height of multiple rows","href":"/open/development/api-setrowsheight"},{"title":"Append rows to a worksheet","href":"/open/development/append-line"},{"title":"Show or hide rows","href":"/open/development/set-row-visibility"},{"title":"Show or hide columns","href":"/open/development/set-column-visibility"},{"title":"Insert rows above a specified row","href":"/open/development/insert-rows-before-rows"},{"title":"Insert columns to the left of a specified column","href":"/open/development/insert-column-before-column"}]},{"group":"Cell ranges","pages":[{"title":"Merge cells","href":"/open/development/merge-cells"},{"title":"Insert dropdown lists","href":"/open/development/insert-drop-down-list"},{"title":"Delete dropdown lists","href":"/open/development/delete-drop-down-list"},{"title":"Get a cell range","href":"/open/development/get-cell-properties"},{"title":"Update a cell range","href":"/open/development/update-cell-properties"},{"title":"Find a cell in a worksheet","href":"/open/development/find-the-next-eligible-cell"},{"title":"Find all cells that match the criteria","href":"/open/development/find-all-matching-cells"},{"title":"Clear data in a cell range","href":"/open/development/clear-cell-data"},{"title":"Clear all content in a cell range","href":"/open/development/clear-all"}]},{"group":"Conditional formatting","pages":[{"title":"Create a conditional formatting rule","href":"/open/development/create-conditional-formatting-rules"}]},{"group":"Filters","pages":[{"title":"Create a filter","href":"/open/development/api-createfilter"},{"title":"Update filter","href":"/open/development/api-updatefilter"},{"title":"Delete a filter","href":"/open/development/api-deletefilter"},{"title":"Get filter","href":"/open/development/api-getfilter"},{"title":"Sort filtered data","href":"/open/development/api-sortfilter"},{"title":"Set filter criteria","href":"/open/development/api-setfiltercriteria"},{"title":"Delete a filter criterion","href":"/open/development/api-clearfiltercriteria"}]},{"group":"Filter views","pages":[{"title":"Create a filter view","href":"/open/development/api-createfilterview"},{"title":"Update a filter view","href":"/open/development/api-updatefilterview"},{"title":"Delete a filter view","href":"/open/development/api-deletefilterview"},{"title":"Get the list of filter views","href":"/open/development/api-getfilterviews"},{"title":"Set filter view conditions","href":"/open/development/api-setfilterviewcriteria"},{"title":"Clear filter view criteria","href":"/open/development/api-clearfilterviewcriteria"}]},{"group":"Floating images","pages":[{"title":"Create a floating image","href":"/open/development/api-createfloatimage"},{"title":"Update a floating image","href":"/open/development/api-updatefloatimage"},{"title":"Delete a floating image","href":"/open/development/api-deletefloatimage"}]},{"title":"FAQ","href":"/open/development/common-problems-with-tables"}]},{"group":"Drive (formerly DingDrive)","pages":[{"title":"Overview","href":"/open/development/ding-drive-overview"},{"title":"Create a space","href":"/open/development/new-space"},{"title":"Delete a space","href":"/open/development/delete-a-space"},{"title":"List spaces","href":"/open/development/queries-a-space-list"},{"title":"Get the information of a specified space by spaceId","href":"/open/development/retrieves-the-space-list-on-the-management-side"}]},{"group":"Search","pages":[{"title":"File Search","href":"/open/development/search-for-files"},{"title":"Search Knowledge Base","href":"/open/development/search-knowledge-base"}]},{"group":"Group files","pages":[{"title":"Get the storage space information of a group","href":"/open/development/obtain-group-storage-space-information"},{"title":"Send a file to a specified user as an app","href":"/open/development/sends-a-storage-file-to-a-specified-user"},{"title":"Send a file to a specified chat","href":"/open/development/send-file-to-specified-session"},{"title":"Send a file link to a chat","href":"/open/development/send-a-file-link-to-the-specified-session"}]},{"group":"Media files","pages":[{"title":"Overview","href":"/open/development/apsara-file-storage-for-hdfs-overview"},{"group":"Tutorials","pages":[{"title":"Send work notifications after uploading media files","href":"/open/development/procedure-for-using-media-files"}]},{"title":"Upload media files","href":"/open/development/upload-media-files"}]},{"group":"Storage management","pages":[{"title":"Overview","href":"/open/development/storage-overview"},{"group":"Tutorials","pages":[{"title":"Upload, preview, and download files in Drive","href":"/open/development/dingpan-document"},{"title":"Upload a local file to DingTalk Docs (My Docs)","href":"/open/development/upload-files-dingtalk-documents-documents"}]},{"group":"Organization management","pages":[{"title":"Get organization information","href":"/open/development/obtain-enterprise-storage-related-information"}]},{"group":"App management","pages":[{"title":"Get app information","href":"/open/development/obtains-the-information-about-the-current-application"}]},{"group":"Space management","pages":[{"title":"Add a space","href":"/open/development/add-space"},{"title":"Get space information","href":"/open/development/get-space-information"}]},{"group":"File management","pages":[{"title":"Add a folder","href":"/open/development/add-folder"},{"title":"Copy a file or folder","href":"/open/development/copy-an-object"},{"title":"Batch copy files or folders","href":"/open/development/copy-files-or-folders-in-bulk"},{"title":"Move a file or folder","href":"/open/development/move-a-file-or-folder"},{"title":"Batch move files or folders","href":"/open/development/bulk-move-files-or-folders"},{"title":"Rename a file or folder","href":"/open/development/rename-a-file-or-folder"},{"title":"Delete a file or folder","href":"/open/development/delete-a-file-or-folder"},{"title":"Batch delete files or folders","href":"/open/development/delete-files-or-folders-in-bulk"},{"title":"Restore a historical file version","href":"/open/development/restore-previous-versions-of-files"},{"title":"Get the version list of a file","href":"/open/development/obtains-a-list-of-file-versions"},{"title":"Get file or folder information","href":"/open/development/obtain-file-or-folder-information"},{"title":"Get information of files or folders in batches","href":"/open/development/get-file-or-folder-information-in-bulk"},{"title":"Get the list of files or folders","href":"/open/development/get-a-list-of-files-or-folders"},{"title":"List all files and folders in a space","href":"/open/development/get-a-list-of-all-files-or-folders-under-a"},{"title":"Update the app properties of a file or folder","href":"/open/development/update-file-application-properties"},{"title":"Delete the app properties of a file or folder","href":"/open/development/delete-file-app-attribute"},{"title":"Get file preview or edit information","href":"/open/development/obtains-the-object-preview-or-editing-information"},{"title":"Get thumbnails of multiple files","href":"/open/development/get-file-thumbnails-in-bulk"},{"title":"Get the dentryUuid","href":"/open/development/api-getuuidbydentryid"},{"title":"Get spaceId by dentryUuid","href":"/open/development/api-getdentryidbyuuid"}]},{"group":"File transfer","pages":[{"title":"Get file upload information","href":"/open/development/obtain-file-upload-informations"},{"title":"Commit a file","href":"/open/development/submittal-file"},{"group":"Multipart upload","pages":[{"title":"Initialize a multipart file upload","href":"/open/development/initialize-a-multipart-upload-object"},{"title":"Get multipart file upload information","href":"/open/development/obtains-the-information-about-multipart-uploads-of-an-object"}]},{"title":"Get file download information","href":"/open/development/obtains-the-download-information-about-a-file"},{"title":"Download partial content by specifying Range","href":"/open/development/use-range-download-a-part-of-content"},{"title":"File upload troubleshooting guide","href":"/open/development/self-examination-manual-for-file-upload-issues"}]},{"group":"Permission management","pages":[{"title":"Add permissions","href":"/open/development/add-permissions-file"},{"title":"Remove permissions","href":"/open/development/delete-permissions-file"},{"title":"Update permissions","href":"/open/development/modify-permissions-file"},{"title":"Get the permission list","href":"/open/development/get-permission-list"},{"title":"Set the permission inheritance mode","href":"/open/development/set-permission-inheritance-mode"},{"title":"Get the permission inheritance mode","href":"/open/development/get-permission-inheritance-mode"}]},{"group":"Recycle bin","pages":[{"title":"Get Recycle Bin information","href":"/open/development/obtain-information-about-the-recycle-bin"},{"title":"List recycle items","href":"/open/development/gets-the-list-of-recycle-items"},{"title":"Get the details of a recycle item","href":"/open/development/obtain-recycling-item-information"},{"title":"Restore a recycle item","href":"/open/development/restore-recycle-items"},{"title":"Restore recycle items in batches","href":"/open/development/batch-restore-recycled-items"},{"title":"Delete a recycle item","href":"/open/development/delete-recycle-item"},{"title":"Delete recycle items in batches","href":"/open/development/batch-delete-recycle-items"},{"title":"Empty the Recycle Bin","href":"/open/development/empty-the-recycle-bin"}]},{"group":"Task management","pages":[{"title":"Get the information of an async task in storage","href":"/open/development/get-the-asynchronous-task-information-in-storage"}]},{"group":"Event subscription","pages":[{"title":"Subscribe to file change events","href":"/open/development/subscribe-to-file-change-events"},{"title":"Unsubscribe from file change events","href":"/open/development/unsubscribe-from-file-change-events"}]}]}]},{"group":"IM","icon":"comments","pages":[{"group":"Bots","pages":[{"title":"Overview","href":"/open/development/development-robot-overview"},{"title":"Message types for sending and receiving","href":"/open/development/robot-message-type"},{"group":"Tutorials","pages":[{"title":"Send group chat messages with an Enterprise bot","href":"/open/development/the-application-robot-in-the-enterprise-sends-group-chat-messages"},{"title":"Send direct messages with an enterprise bot","href":"/open/development/the-application-robot-in-the-enterprise-sends-a-single-chat"},{"title":"Send group chat messages with a custom bot","href":"/open/development/custom-bot-to-send-group-chat-messages"},{"title":"Send group chat messages with a group template bot","href":"/open/development/group-template-robot-sends-group-chat-message"}]},{"group":"Bot in one-to-one chats","pages":[{"title":"Single-chat bot overview","href":"/open/development/single-chat-bot-overview"},{"title":"Task notifications","href":"/open/development/task-notification"},{"title":"Scheduled delivery","href":"/open/development/timing-push"},{"title":"Monitoring and alerting","href":"/open/development/monitoring-alarm"},{"title":"Interactive query","href":"/open/development/interactive-query-1"}]},{"group":"Bot in group chats","pages":[{"title":"Group chat bot overview","href":"/open/development/group-chat-bot-overview"},{"title":"Project collaboration","href":"/open/development/project-collaboration-1"},{"title":"Interactive group messages","href":"/open/development/interactive-group-message-1"}]},{"group":"Send a plain message","pages":[{"title":"Send bot messages to multiple direct message chats in batch","href":"/open/development/chatbots-send-one-on-one-chat-messages-in-batches"},{"title":"Send a plain message from a bot in a one-on-one chat","href":"/open/development/the-robot-sends-ordinary-messages-in-a-person-to-person-conversation"},{"title":"Send group chat messages with a bot","href":"/open/development/the-robot-sends-a-group-message"},{"title":"Send group chats using a custom bot","href":"/open/development/custom-robots-send-group-messages"}]},{"group":"Receive messages","pages":[{"title":"Receive messages","href":"/open/development/receive-message"},{"title":"Download a file received by a bot","href":"/open/development/download-the-file-content-of-the-robot-receiving-message"}]},{"group":"Query messages","pages":[{"title":"Batch query the read status of bot messages in one-on-one chats","href":"/open/development/chatbot-batch-query-the-read-status-of-messages"},{"title":"Query the read list of Bot messages in a one-to-one chat","href":"/open/development/query-the-read-list-of-robot-messages-in-person-to-person-conversations"},{"title":"Query the read status of an enterprise bot's group chat message","href":"/open/development/chatbot-queries-the-read-status-of-a-message"}]},{"group":"Recall messages","pages":[{"title":"Batch recall Bot messages in one-on-one chats","href":"/open/development/batch-message-recall-chat"},{"title":"Recall bot messages in one-to-one chats in batches","href":"/open/development/batch-withdrawal-of-single-chat-robot-messages-in-person-to-person-conversations"},{"title":"Recall an internal group message sent by an enterprise bot","href":"/open/development/enterprise-chatbot-withdraws-internal-group-messages"}]},{"group":"Bot management","pages":[{"title":"Get the list of bots in a group","href":"/open/development/obtain-the-list-of-robots-in-the-group"}]},{"group":"Quick entry management","pages":[{"title":"Set up the quick entry of a single-chat bot","href":"/open/development/set-robot-quick-entrance"},{"title":"Query the quick entries of a single-chat bot","href":"/open/development/quick-entrance-of-inquiry-single-chat-robot"},{"title":"Clear quick entries of a single-chat bot","href":"/open/development/clear-single-chat-robot-quick-entry"}]}]},{"group":"Conversations","pages":[{"title":"Overview","href":"/open/development/im-session-overview"},{"title":"Configure the shortcut entry (group plugin) URL","href":"/open/development/create-a-swarm-plug-in-1"},{"group":"Tutorials","pages":[{"title":"Send messages via a group assistant","href":"/open/development/group-assistant-sends-a-message"},{"title":"Create a shortcut entry (group plugin)","href":"/open/development/create-a-group-plug-in"},{"title":"Implement pure pull mode for pinned cards","href":"/open/development/pure-pull-mode-process-guide"},{"title":"Create, query, modify, and manage group chats","href":"/open/development/group-session-operation-process"}]},{"group":"Group management","pages":[{"title":"Create a group chat","href":"/open/development/create-common-group-new-version-v2"},{"title":"Update a group chat","href":"/open/development/api-updategroup"},{"title":"Query group information","href":"/open/development/obtain-a-group-session"},{"title":"Update a group member's nickname","href":"/open/development/set-a-group-nickname"},{"title":"Set group admins in bulk","href":"/open/development/batch-setup-group-administrator"},{"title":"Turn off Private Chat for group members","href":"/open/development/set-private-chat"},{"title":"Get the QR code link to join a group","href":"/open/development/obtain-a-qr-code-link"},{"title":"Get the OpenConversationId of a group chat","href":"/open/development/obtain-group-openconversationid"}]}]},{"group":"Notifications","pages":[{"title":"Overview","href":"/open/development/message-corpconversation-overview"},{"group":"Tutorials","pages":[{"title":"Redirect to a web app from a Work Notification","href":"/open/development/redirect-micro-applications-to-work-messages"},{"title":"Send, query, and recall Work Notifications","href":"/open/development/work-notice-option"}]},{"group":"Work notifications","pages":[{"title":"Send Work Notifications","href":"/open/development/asynchronous-sending-of-enterprise-session-messages"},{"title":"Recall a Work Notification","href":"/open/development/notification-of-work-withdrawal"},{"title":"Update the status bar of a work notification","href":"/open/development/update-work-notification-status-bar"},{"title":"Get the delivery progress of work notifications","href":"/open/development/obtain-the-sending-progress-of-asynchronous-sending-of-enterprise-session"},{"title":"Get the delivery result of a Work Notification message","href":"/open/development/gets-the-result-of-sending-messages-asynchronously-to-the-enterprise"},{"title":"Send a work notification with a template","href":"/open/development/work-notification-templating-send-notification-interface"},{"title":"Message notification types","href":"/open/development/message-types-and-data-format"},{"title":"Message link reference","href":"/open/development/message-link-description"}]}]},{"title":"Bot FAQs","href":"/open/development/faq-robot"}]}]},{"tab":"YiDA API","icon":"cubes","pages":[{"title":"YiDA API","href":"/open/yida"}]}]},{"product":"Resources","icon":"layer-group","pages":[{"title":"Resources","href":"/announcements"}]}]},{"language":"zh","banner":{"content":"**公告**:DingTalk 国际组织商业版本将于 2026 年 10 月 21 日起调整。[查看详情](/zh/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"下载","href":"https://www.dingtalk.io/zh/download/"}},"pages":[{"title":"zh","href":"/zh/open/development/common-errors"}]},{"language":"ja","banner":{"content":"**お知らせ**:2026年10月21日より、DingTalkグローバル版のプランを改定します。[詳細を見る](/ja/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"ダウンロード","href":"https://www.dingtalk.co.jp/download/"}},"pages":[{"title":"ja","href":"/ja/open/development/common-errors"}]},{"language":"id","banner":{"content":"**Pengumuman:** Paket DingTalk untuk pelanggan internasional akan berubah mulai 21 Oktober 2026. [Selengkapnya (bahasa Inggris)](/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"Unduh","href":"https://www.dingtalk.io/download/"}},"pages":[{"title":"id","href":"/id/open/development/common-errors"}]},{"language":"uz","banner":{"content":"**Pengumuman:** Pelan DingTalk untuk pelanggan antarabangsa akan berubah mulai 21 Oktober 2026. [Ketahui lanjut (bahasa Inggeris)](/announcements/international-plan-changes-2026)","dismissible":true,"type":"info"},"footer":{"socials":{"x":"https://x.com/DingTalkJapan","instagram":"https://www.instagram.com/dingtalkjapan","linkedin":"https://www.linkedin.com/company/dingtalk"}},"navbar":{"primary":{"type":"button","label":"Muat turun","href":"https://www.dingtalk.io/download/"}},"pages":[{"title":"uz","href":"/ms/im/chats-overview"}]}]},"basePath":"","title":"Common error codes - DingTalk Help Center","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["10e4515597"],"chunks":["BannerMarkdown-BcDCEkh6.js","dist-CwjSCXIK.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-eKJ4rcii.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}