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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Frequent Visitor

Migrating All Workspaces, Datasets, and Apps Between Power BI Tenants

Hi, I have a client ClientA, who has a power BI account, in that account we have different workspaces some include premium per user and capacity as well, in these workspaces I have 200+ reports, and I have around 30+ workspaces, 

Now, I have a requirement in which I have Client ClientB, Now the clientA wants to migrate all its workspace data Including(Reports, datasets, apps, and dataflows) to ClientB tenant, and most of these reports are based on the Live connection.

I tried to figure out some solution for the same, in which I figured out there is no direct way to migrate workspaces, we have to do that manually by creating the workspace in ClientB and uploading the report, that we have in ClientA workspaces manually, the issue we have over here is multiple workspaces and large number of reports and their size and connectivity,

so if we will do it manually it is quite possible that we will make some mistakes, for example, importing the live connection report and then exporting that into the clientB-created workspace which we have in ClientA as well, and uploading the file. (Quite possibly the connection mode from Direct query will get changed to import mode and will have to fix that and that will take more time.)

Based on my research and discussions, I have gathered that it is technically possible to achieve this by using the Power BI REST API.

The REST API provides a suite of endpoints that can be used to programmatically extract Power BI content from one tenant and deploy it to another. This would involve:

Authenticating against both the source and destination tenants via Azure AD.

Extracting content (like reports and datasets) from the source tenant by making API calls to list and export these assets.

Importing the extracted content into the destination tenant by creating new workspaces and uploading the assets using the API.

I understand that this method requires a substantial amount of scripting, likely involving a language like PowerShell, Python, or C#, to handle the HTTP requests and the necessary logic for a smooth migration. This process also involves handling OAuth tokens for authentication, managing API rate limits, and potentially reconfiguring data connections and security settings post-migration.

Has anyone in the community successfully undertaken such a migration using the REST API? I would be interested in any insights, experiences, or recommendations on best practices and potential pitfalls to avoid. Additionally, if there are existing tools or scripts that can facilitate this process, that information would be incredibly valuable.

Thank you for your assistance and for sharing your expertise!




Super User
Super User

Hi. Yes we had. We have used SimplePBI python unofficial library for the PowerBi Rest API to make it easier. There are things to consider before doing it. You can only migrate datasets and its original report. Dashboards and apps can't be migrated. I'm not sure about dataflow because we didn't have those, but it might be possible to export the json and load it again.

It's very important to get a deep dive knowledge about the content to migrate, how much content, sizes, users shared, features (incremental refresh datasets can't be downloaded), etc. There are content that breaks rules and others that make it more difficult. For example: a critical details is that exporting and importing might be a total pain if the data model size is higher than 1gb. We did it manually for those because they weren't that much and it was way more coding and complexity for migrating that.

Consider that after migrating everything, you need to schedule refresh all over again. That means editing credentials or configuring gateway sources manually. Entering credentials it must be done manually. You can schedule refresh at the same manual process or later with API probably.

I hope that helps,

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Happy to help!

LaDataWeb Blog

Hi @ibarrau ,

Thank you for sharing your valuable insights on migrating reports and datasets using the SimplePBI Python library and the Power BI REST API. Your detailed explanation is really helpful.

I noticed that the migration of workspace-level reports was not specifically mentioned in your response. Given that my migration scenario involves multiple workspaces with numerous reports in each, I'm particularly interested in understanding how to handle this aspect.

Have you had any experience with, or could you offer any advice on, migrating entire workspaces (including all contained reports, datasets, and other configurations) from one Power BI tenant to another? Any insights or suggestions on this would be greatly appreciated, especially regarding the automation of such processes.

Sorry I forgot to mention about workspaces. The thing about "migration" is that it's not actually a migration as the definition. It's more creating the most closed structure in another tenant. Thinking that way means that you will be creating scripts to make sure your new structure is similar to the old one.

The script will probably start getting the workspaces and its datasets/reports with a token. You can loop them. Then running a new token auth for the new structure and creating the workspace. You can go workspace by workspace read old, create new. Then content, export old and import new (considering the limitations like I said before).

The creation of the workspace can be as deep as you want. The process could include things like asign a capacity or check the users in the old to add users in the new one with the same permission for the workspace.

Another thing to consider is apps. Sadly, if you are distributing the content with just apps, you can't migrate that configuration.

I hope that helps

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Happy to help!

LaDataWeb Blog

Helpful resources

Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

Check out the February 2024 Power BI update to learn about new features.

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors
Top Kudoed Authors