Copies a user-created dynamic report under a caller-provided title.
Use this endpoint to create an independent saved report from an existing report without retaining its Watts chat history association.
The request can override the source report’s description, KQL, and grid/chart state; null values inherit the corresponding source values.
KQL is not validated, so malformed KQL creates a report that cannot be executed successfully.
Request Headers
| Header | Value | Required | Description |
|---|---|---|---|
| ECI-ApiKey | string | Yes | Your API key. See Authentication. |
| Content-Type | application/json | Yes | All requests must specify JSON content type, including the request body. |
Path Parameters
| Name | Description | Type | Required |
|---|---|---|---|
| targetReportId | Unique numeric identifier of the user-created dynamic report to copy. | integer (int32) | Required |
Request Body
DynamicReportCopyRequestV202607
| Property | Description | Type |
|---|---|---|
| gridState | Optional serialized AG Grid state, including chart configuration. Null inherits the source report’s grid and chart state. | string |
| kql | Optional KQL definition for the copied report. Null inherits the source report’s KQL. | string |
| reportDescription | Optional description for the copied report. Null inherits the source description; an empty string clears it. Maximum length: 4000 characters. Max length of 4000 | string |
| reportName | The title assigned to the copied report. Maximum length: 255 characters. Max length of 255 | string |
Example Request Body
{ "gridState": "string", "kql": "string", "reportDescription": "string", "reportName": "string"
}
Responses
200
OK
The request succeeded and the response body contains the requested data.
Response Body Parameters
DynamicReportResponseV202607
| Property | Description | Type | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| columns | Required (defined) | string[] | ||||||||||||
| createdBy | UserChild | |||||||||||||
|
UserChild properties
|
||||||||||||||
| createdDate | Date and time when the report was created. Required (defined) | string (date-time) | ||||||||||||
| description | User-facing description stored on the current report version. Null when no description was supplied. Required (defined) | string | ||||||||||||
| dynamicReportId | Unique numeric identifier of the saved dynamic report. Required (defined) | integer (int32) | ||||||||||||
| dynamicReportInfo | User-facing saved report title. Required (defined) | string | ||||||||||||
| gridState | Serialized grid, chart, and panel state stored on the current report version. Null when no UI state has been saved. Required (defined) | string | ||||||||||||
| kql | KQL persisted on the current report version and used to reproduce its data. Required (defined) | string | ||||||||||||
| lastViewedDate | Date and time when the current report version was last successfully executed. Null when the report has never been viewed. Required (defined) | string (date-time) | ||||||||||||
| modifiedBy | UserChild | |||||||||||||
|
UserChild properties
|
||||||||||||||
| modifiedDate | Date and time when the current report version was most recently modified. Required (defined) | string (date-time) | ||||||||||||
| ownerId | Unique numeric identifier of the EnergyCAP owner that contains this report. Required (defined) | integer (int32) | ||||||||||||
| shared | True when the report has been shared with everyone, at least one user, or at least one user group. False when only the creator can see it. Required (defined) | boolean | ||||||||||||
| sharedWithMe | True when the current caller can see this report only because it was shared with them (directly, through a user group, or with everyone). False for reports the caller created. Required (defined) | boolean | ||||||||||||
| visible | True when the report appears in the current caller’s report list. False when the caller has hidden this shared report from their list. Always true for reports the caller created. Required (defined) | boolean | ||||||||||||
| wattsChatId | Unique numeric identifier of the reporting chat that owns the linked assistant message. Null for legacy or unlinked reports. Required (defined) | integer (int32) | ||||||||||||
| wattsChatMessageId | Unique numeric identifier of the assistant message associated with the saved KQL. Null for legacy or unlinked reports. Always null when the caller is not the report’s creator, because the chat belongs to the creator. Required (defined) | integer (int32) | ||||||||||||
Example Response
{ "columns": [
"string"
], "createdBy": { "fullName": "string", "userCode": "string", "userId": 1
}, "createdDate": "2026-10-16", "description": "string", "dynamicReportId": 1, "dynamicReportInfo": "string", "gridState": "string", "kql": "string", "lastViewedDate": "2026-10-16", "modifiedBy": { "fullName": "string", "userCode": "string", "userId": 1
}, "modifiedDate": "2026-10-16", "ownerId": 1, "shared": false, "sharedWithMe": false, "visible": false, "wattsChatId": 1, "wattsChatMessageId": 1
}
400
Bad Request
The request was malformed or contains invalid parameters. Check the request body and query parameters.
404
Not Found
The requested resource was not found. Verify the ID or path is correct.