Creates a new custom report. Supports either table or chart component types.
post /dcapi/reports/customReports/v2
https://{server-hostname}:8383/dcapi/reports/customReports/v2
CustomReport.CREATECopied!
Authorization: d92d4xxxxxxxxxxxxx15f52
Display name of the custom report. Must be unique when saving
Optional description of the custom report
Sub-module name (e.g., Computer, Hardware, Software). Fetch from Get Available Columns
Array of filter criteria objects for filtering report data
Column ID the criteria is applied on. Fetch from Get Available Columns
Array of search values for the criteria
Comparison operator (e.g., contains, equal, greater than, less than, not equal)
Logical operator (AND or OR) for combining with previous criteria
Array of selected column objects for table reports. Each object specifies a column and optional aggregation
Column ID from the available columns API. Fetch from Get Available Columns
Aggregation method: SUM, AVG, COUNT, MIN, MAX, STRING_AGG, JSON_AGG, or ACTUAL_VALUE. Defaults to ACTUAL_VALUE if omitted
Array of column IDs to group by. Required when aggregation is applied
Custom criteria pattern defining how criteria are combined (e.g., (1 AND 2) OR 3)
Type of report component: Table or Chart
Chart configuration object. Required when componentType is Chart
Chart type identifier (e.g., bar, pie, line, area, dial, radar, scatter, bubble, stackedBar, wordCloud, pyramid, packedBubble, funnel). Fetch available types from Get Available Charts
X-axis column configuration
Column ID for the X-axis. Fetch from Get Available Columns
Y-axis column configuration with aggregation
Column ID for the Y/Z-axis. Fetch from Get Available Columns
Aggregation method for the axis (cannot be ACTUAL_VALUE). Values: SUM, AVG, COUNT, MIN, MAX, STRING_AGG, JSON_AGG
curl --request POST \
--url https://appdomain/dcapi/reports/customReports/v2 \
--header 'Accept: application/savedCustomReport.v2+json' \
--header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \
--header 'Content-Type: application/customReport.v2+json' \
--data '{"componentType":"Table","reportDesc":"List of all active computers with OS details","reportName":"Active Computers Report","subModule":"Computer","selectComponents":[{"columnID":"101"},{"columnID":"102"},{"columnID":"105","aggregation":"COUNT"}],"criteria":[{"comparator":"contains","logicalOperator":"AND","columnID":103,"searchValue":["Windows"]}],"groupby":["101"],"criteriaPattern":"(1)"}'Create a table-based custom report with column selection, grouping, and criteria
{
"componentType": "Table",
"reportDesc": "List of all active computers with OS details",
"reportName": "Active Computers Report",
"subModule": "Computer",
"selectComponents": [
{
"columnID": "101"
},
{
"columnID": "102"
},
{
"columnID": "105",
"aggregation": "COUNT"
}
],
"criteria": [
{
"comparator": "contains",
"logicalOperator": "AND",
"columnID": 103,
"searchValue": [
"Windows"
]
}
],
"groupby": [
"101"
],
"criteriaPattern": "(1)"
}
Create a chart-based custom report with pie chart configuration
{
"componentType": "Chart",
"reportName": "OS Distribution Chart",
"subModule": "Computer",
"chartMeta": {
"yAxis": {
"columnID": "101",
"aggregation": "COUNT"
},
"xAxis": {
"columnID": "103"
},
"chartType": "pie"
}
}
Unique ID of the created/previewed custom report
Display name of the report
Internal view name (e.g., CRVIEW_1711234567890)
Username of the report creator
Customer ID (or null for all customers)
Numeric error code: report name exists, column/criteria limits exceeded, invalid column IDs, aggregation mismatch, or invalid chart axis configuration
Detailed error description indicating the specific validation failure
Unauthorized error code returned when authentication credentials are missing, expired, or invalid (authentication=required)
Authentication failure reason
Forbidden error code returned when the authenticated user does not have the required uem-roles (e.g., DataEncryption_Admin or DataEncryptionRecoveryKey_Admin)
Message indicating insufficient privileges to access this resource
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
Rate limit exceeded message with retry guidance
Custom report successfully created
{
"owner": "admin",
"reportId": 1005,
"reportName": "Active Computers Report",
"viewName": "CRVIEW_1711234567890",
"customerId": 2
}
Report name already exists
{
"errorMessage": "A custom report with this name already exists",
"errorCode": 12345
}
Missing or invalid authentication token
{
"errorMessage": "Authentication token is missing or invalid",
"errorCode": "401"
}
User does not have the required role
{
"errorMessage": "User does not have the required role to access this resource",
"errorCode": "403"
}
Rate limit exceeded
{
"errorMessage": "Rate limit exceeded. Please retry after some time",
"errorCode": "429"
}
![]()
Duration: 1 minute | Threshold: 15 | 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.
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.