# 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. ## Endpoints `GET /dcapi/reports/customReports` ## Request URL `https://`[*{serverurl}*](https://www.manageengine.com/products/desktop-central/help/api/cloud/oauth-authentication-endpoint-domain.html)`/dcapi/reports/customReports` ## Scope `DesktopCentralCloud.CustomReport.READ` ## Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Accept** (`string`, Mandatory): `application/allCustomReports.v1+json` ## Sample Request ```curl curl --request GET \ --url https://appdomains/dcapi/reports/customReports \ --header 'Accept: application/allCustomReports.v1+json' \ --header 'Authorization: Zoho-oauthtoken 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: credentials missing, expired, or invalid - **errorMsg** (`string`): Authentication failure reason ### HTTP code 403 Response Body: `application/json` - `JSON Object` - **errorCode** (`long`): Error code indicating insufficient permissions - **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 reached threshold - **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 Response: 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 } } ``` ## Sample Response: HTTP 401 ### Missing or invalid authentication token ```json { "errorMessage": "Authentication token is missing or invalid", "errorCode": "401" } ``` ## Sample Response: HTTP 403 ### User does not have the required role ```json { "errorMessage": "User does not have the required role to access this resource", "errorCode": "403" } ``` ## Sample Response: HTTP 417 ### PMP product users are not allowed access ```json { "errorMessage": "You are not authorized to access custom reports", "errorCode": "REPORT_UNAUTHORIZED" } ``` ## Sample Response: HTTP 429 ### Rate limit exceeded ```json { "errorMessage": "Rate limit exceeded. Please retry after some time", "errorCode": "429" } ``` ## Sample Response: HTTP 500 ### Unexpected failure during custom report list retrieval ```json { "errorMessage": "Internal server error while fetching custom reports", "errorCode": "INTERNAL_ERROR" } ``` ![](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.