POST /api/v202607/dynamicReporting/{targetReportId}/copy

Copies a user-created dynamic report under a caller-provided title.

CopyDynamicReportV202607 Permissions: Reports (Run)
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 application/json
{  "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
Property Description Type
fullName The user’s full name string
userCode The user code string
userId The user identifier integer (int32)
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
Property Description Type
fullName The user’s full name string
userCode The user code string
userId The user identifier integer (int32)
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 application/json
{  "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.