# Fetch all available custom reports for the user Retrieves a list of all custom reports accessible to the user, along with metadata such as report name, owner, last modified time, and associated view name. ## Endpoint `GET /dcapi/reports/customReports` ## Request ### Request URL `https://{server-hostname}:8383/dcapi/reports/customReports` ### Scope `CustomReport.READ` ### Header `Authorization: d92d4xxxxxxxxxxxxx15f52` ### Request Parameters #### Request Headers - **Accept** `string` — Mandatory - `application/allCustomReports.v1+json` ## Sample Request ### Curl ```curl curl --request GET \ --url https://appdomain/dcapi/reports/customReports \ --header 'Accept: application/allCustomReports.v1+json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' ``` ## Response Parameters ### HTTP code 200 #### Response Body — `application/json` - `JSON object` - **id** `string` - Root node identifier. Always 'customReports' - **parent** `string` - Parent node identifier. Always null for the root node - **label** `string` - Localized display name of the root node (e.g., Custom Reports) - **properties** `JSON object` - Root node metadata including report type, expandable, and selectable flags - **children** `JSON array` - Array of child custom report nodes. Null when no reports exist - **leaf** `boolean` - False when children exist, true when no children - **errorMessage** `string` - Warning message when some reports are affected or disabled. Null when all reports are healthy - **root** `boolean` - Always true for the root node ### HTTP code 401 #### Response Body — `application/json` - `JSON object` - **errorCode** `long` - Unauthorized error code returned when authentication credentials are missing, expired, or invalid (authentication=required) - **errorMsg** `string` - Authentication failure reason ### HTTP code 403 #### Response Body — `application/json` - `JSON object` - **errorCode** `long` - Forbidden error code returned when the authenticated user does not have the required uem-roles (e.g., DataEncryption_Admin or DataEncryptionRecoveryKey_Admin) - **errorMsg** `string` - Message indicating insufficient privileges to access this resource ### HTTP code 417 #### Response Body — `application/json` - `JSON object` - **errorCode** `string` - Error code: REPORT_UNAUTHORIZED. PMP users are not allowed to access custom reports - **errorMessage** `string` - Message indicating PMP product users are not authorized to access custom reports ### HTTP code 429 #### Response Body — `application/json` - `JSON object` - **errorCode** `long` - Rate limit error code returned when the API call threshold (configured via threshold/duration in security XML) is exceeded; client is locked out for lock-period minutes - **errorMsg** `string` - Rate limit exceeded message with retry guidance ### HTTP code 500 #### Response Body — `application/json` - `JSON object` - **errorCode** `string` - Error code: INTERNAL_ERROR. Unexpected failure during custom report list retrieval (e.g., database exception) - **errorMessage** `string` - Detailed error description for the internal server error ### Possible Response Codes - `200` — HTTP code - `401` — HTTP code - `403` — HTTP code - `417` — HTTP code - `429` — HTTP code - `500` — HTTP code ## Sample Responses ### HTTP 200 #### Root node with two custom report children ```json { "parent": null, "children": [ { "parent": "customReports", "children": null, "root": false, "errorMessage": null, "id": "2", "label": "Untitled2", "leaf": true, "properties": { "owner": "admin", "viewName": "CRVIEW_1776239184200", "expandable": false, "selectable": true, "actionURL": "/webclient#/uems/reports/report/custom/view-report/2?viewName=CRVIEW_1776239184200", "description": "Test Description", "lastModified": "Apr 15, 2026 01:16 PM" } }, { "parent": "customReports", "children": null, "root": false, "errorMessage": null, "id": "1", "label": "Untitled1", "leaf": true, "properties": { "owner": "admin", "viewName": "CRVIEW_1776239157642", "expandable": false, "selectable": false, "actionURL": "/webclient#/uems/reports/report/custom/view-report/1?viewName=CRVIEW_1776239157642", "description": "Test Description", "lastModified": "Apr 15, 2026 01:15 PM" } } ], "root": true, "errorMessage": null, "id": "customReports", "label": "Custom Reports", "leaf": false, "properties": { "reportType": "2", "expandable": true, "selectable": false } } ``` #### No saved custom reports — root node with null children ```json { "parent": null, "children": null, "root": true, "errorMessage": null, "id": "customReports", "label": "Custom Reports", "leaf": true, "properties": { "reportType": "2", "expandable": false, "selectable": false } } ``` ### HTTP 401 #### Missing or invalid authentication token ```json { "errorMessage": "Authentication token is missing or invalid", "errorCode": "401" } ``` ### HTTP 403 #### User does not have the required role ```json { "errorMessage": "User does not have the required role to access this resource", "errorCode": "403" } ``` ### HTTP 417 #### PMP product users are not allowed access ```json { "errorMessage": "You are not authorized to access custom reports", "errorCode": "REPORT_UNAUTHORIZED" } ``` ### HTTP 429 #### Rate limit exceeded ```json { "errorMessage": "Rate limit exceeded. Please retry after some time", "errorCode": "429" } ``` ### HTTP 500 #### Unexpected failure during custom report list retrieval ```json { "errorMessage": "Internal server error while fetching custom reports", "errorCode": "INTERNAL_ERROR" } ``` ## Rate Limiting ![](https://www.zohowebstatic.com/sites/zweb/images/people/ico-help.png) **Duration:** 1 minute | **Threshold:** 30 | **Lock period:** 5 minutes Duration - Time window for the threshold. Threshold - Number of API calls allowed within the specified duration. Lock Period - Wait time before consecutive API requests.