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

Compete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.

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
August Power BI Update Carousel

Power BI Monthly Update - August 2025

Check out the August 2025 Power BI update to learn about new features.

August 2025 community update carousel

Fabric Community Update - August 2025

Find out what's new and trending in the Fabric community.