PowerBI.tips

Power BI Hack: Download Report Authored in Browser as PBIX

May 6, 2022 By Mike Carlo
Power BI Hack: Download Report Authored in Browser as PBIX

How do I download a Power BI report authored in the browser as a PBIX?

TL;DR. Browser-authored reports will not download as PBIX. Publish a blank PBIX, copy the browser report content into it with the Power BI REST API (Update Report Content In Group), then download that PBIX. The linked PowerShell function wraps the API calls.

Why can I not download a browser-authored report as PBIX?

If the report was never created as a PBIX, the Power BI service will not offer a PBIX download. Only reports that originated as PBIX files can be downloaded that way.

What is the workaround?

Publish a blank PBIX to the service, then copy the browser-authored report content into that blank report. Because the target started as a PBIX, you can download it afterward.

Which API endpoint does this use?

The Power BI REST API endpoint Update Report Content In Group. Manual API calls are messy. The linked PowerShell function wraps those steps.

What PowerShell module do I need?

Install the MicrosoftPowerBIMgmt.Profile module. Run the linked script, then call Copy-PowerBIReportContentToBlankPBIXFile from the same PowerShell window.

Which parameters does the function take?

sourceReportId, sourceWorkspaceId, targetReportId, and optional targetWorkspaceId. If you omit the target workspace, the function assumes source and target share one workspace.

Related: Split an existing Power BI file into a model and report, Updating PBIX files in SharePoint: Dos and Don’ts, Power BI Layouts PBIR Gallery, and Power BI Theme Generator.

The Problem

Most of you have probably run into a situation where someone in your organization has authored a report in the Power BI web service, and now they want to make changes that can only be done with Power BI Desktop. So, you try to download the PBIX file from the Power BI web service, only to discover that you can’t, because if it wasn’t created as a PBIX, it can’t be downloaded as a PBIX. Infuriating!

:rage:

The Solution (sorta…)

There’s actually a way to get around this problem. If you publish a blank PBIX file to the Power BI web service, you can copy the contents of the report that was originally authored in the browser into that blank report. And since that report was originally a PBIX file, you can download that instead!

Unfortunately, the only way to do this right now is to use the Power BI REST API and hit the Update Report Content In Group endpoint, and this process is just about as straightforward as Lombard Avenue in San Francisco. (Actually, probably even less so.)

File:Lombard Street SFA.jpg - Wikimedia Commons

Lombard Avenue in San Francisco: Famously bendy, but still more straightforward than manually hitting Power BI APIs.

PowerShell to the Rescue!

:powershell:

Hooray for PowerShell!

So, I wrote a PowerShell function to simplify and streamline this process, and its only prerequisite is the MicrosoftPowerBIMgmt.Profile module for PowerShell. Just run the script file (linked below) in your PowerShell terminal, and then call the Copy-PowerBIReportContentToBlankPBIXFile function directly from that same window. The expected parameters are:

  • sourceReportId: The ID of the report to copy from
  • sourceWorkspaceId: The ID of the workspace to copy from
  • targetReportId: The ID of the report to copy to
  • targetWorkspaceId: The ID of the workspace to copy to (this one is optional – if you leave it blank, the function will assume both source and target are in the same workspace)

Download the Copy-PowerBIReportContentToBlankPBIXFile.ps1 PowerShell script file here.

As always, feedback and suggestions are 100% welcome and encouraged. 

:sunglasses:

Cheers!

~ James

Acknowledgements:
This PS function was inspired by a blog article written by one of the top minds in the Power BI space, Mathias Thierbach. Check out his article here. And if you’re not already using his pbi-tools for Power BI version control, you should check that out too.

Previous

Power BI Support Channel: Microsoft Teams Tips

More Posts

Oct 24, 2026

How Deplavity Was Born (and Everything We Made Because of It)

On Explicit Measures episode 573, Mike Carlo tried to say "deployment savvy" and invented Deplavity instead. Here is where the slip happened, how it turned into a fake prescription drug, and every video, ad, and jingle made because of it.

Oct 20, 2026

Fabric Deployment Plan - Ep.573

Fabric deployment plans let you order deployments and run notebooks or pipelines before and after each item lands, which finally gives data a place in the release. Mike Carlo and Tommy Puglia work out which teams should reach for a plan, which should stay in Git and GitHub Actions, and why both would wait for GA.