Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
sammicrosoft
New Member

Unable to Clone or Copy the Power BI Report

Dear All,

 

I had written the below code to clone the Power BI report , But I don't find the luck to clone the report .

Can any one help me in knowing what's wrong in my below code.

 

Code:

 

 

function CopyReport(reportId, Name, Dataset) {
    debugger;
    var deferred = $.ajax({
        url: "https://api.powerbi.com/v1.0/myorg/reports/" + reportId + "/Clone",
        type: "POST",
        headers: {
            "Authorization": "Bearer " + accessToken
        },
       // ContentType: "application/json",
        data: { Name: Name},
        //data: { name: Name, targetWorkspaceId: Dataset },
        success: function (responseData) {
            cache.write(responseData, "Copy report")
        },
        error: function (responseData) {
            debugger;
            cache.write(responseData, "Copy report")
        }
    });
    return deferred.promise();
}

Error:

{"error":{"code":"PowerBINotAuthorizedException","pbi.error":{"code":"PowerBINotAuthorizedException","parameters":{},"details":[],"exceptionCulprit":1}}}

 

1 ACCEPTED SOLUTION
Eric_Zhang
Microsoft Employee
Microsoft Employee

@sammicrosoft

As per the online documentation Clone report, it requires 3 parameters in the data JSON when calling that API. Based on my test, the below demo works to copy a report.

function CopyReport(reportId, Name, targetworkspace, targetDataset) {
    debugger;
    var deferred = $.ajax({
        url: "https://api.powerbi.com/v1.0/myorg/reports/" + reportId + "/Clone",
        type: "POST",
        headers: {
            "Authorization": "Bearer " + accesstoken
        },
       // ContentType: "application/json",
        //data: { Name: Name},
        data: { name: Name, targetWorkspaceId: targetworkspace, targetModelId:targetDataset},
        success: function (responseData) {
            cache.write(responseData, "Copy report")
        },
        error: function (responseData) {
            debugger;
            cache.write(responseData, "failed copying report")
        }
    });
    return deferred.promise();
}

View solution in original post

1 REPLY 1
Eric_Zhang
Microsoft Employee
Microsoft Employee

@sammicrosoft

As per the online documentation Clone report, it requires 3 parameters in the data JSON when calling that API. Based on my test, the below demo works to copy a report.

function CopyReport(reportId, Name, targetworkspace, targetDataset) {
    debugger;
    var deferred = $.ajax({
        url: "https://api.powerbi.com/v1.0/myorg/reports/" + reportId + "/Clone",
        type: "POST",
        headers: {
            "Authorization": "Bearer " + accesstoken
        },
       // ContentType: "application/json",
        //data: { Name: Name},
        data: { name: Name, targetWorkspaceId: targetworkspace, targetModelId:targetDataset},
        success: function (responseData) {
            cache.write(responseData, "Copy report")
        },
        error: function (responseData) {
            debugger;
            cache.write(responseData, "failed copying report")
        }
    });
    return deferred.promise();
}

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.