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

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
Anonymous
Not applicable

PowerBI REST GroupID and dataset name

Hi All,

 

I am looking to find out all dataset names that are run in multiple workspaces. 

I have 100 workspaces on dedicated capacity and I need to know all workspaces and all datasets that are using it.

I am working in PowerShell.

 

I know that workspace Name is same as Office365 group so I am able to add my admin account to all workspaces if neede.

 

What I have up untill now is:

 

Import-Module azurerm
$clientId = "my-client-id"
 
function GetAuthToken
{
    $adal = "${env:ProgramFiles}\WindowsPowerShell\Modules\AzureRM.profile\5.3.4\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
    
    $adalforms = "${env:ProgramFiles}\WindowsPowerShell\Modules\AzureRM.profile\5.3.4\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll"
 
    [System.Reflection.Assembly]::LoadFrom($adal) | Out-Null

    [System.Reflection.Assembly]::LoadFrom($adalforms) | Out-Null

    $redirectUri = "urn:ietf:wg:oauth:2.0:oob"

    $resourceAppIdURI = "https://analysis.windows.net/powerbi/api"

    $authority = "https://login.microsoftonline.com/common/oauth2/authorize";

    $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority
    
    $authResult = $authContext.AcquireToken($resourceAppIdURI, $clientID, $redirectUri, "Auto")

    return $authResult
}

function get_groups_path($group_id) {
    if ($group_id -eq "me") {
        return "myorg"
    } else {
        return "myorg/groups/$group_ID"
    }
}

$token = GetAuthToken

$auth_header = @{
   'Content-Type'='application/json'
   'Authorization'=$token.CreateAuthorizationHeader()
}

and it works for below 

 

$uri = "https://api.powerbi.com/v1.0/myorg/groups/"
$all_groups = (Invoke-RestMethod -Uri $uri –Headers $auth_header –Method GET).value

This gives me all workspaces that I have access to and thats OK I am happy so far.

 

What I cant get over is how to get dataset name in each workspace that I have access to.

Each command I run is comming up with Forbidden access or Not Found.

Anyone hav any idea how to show dataset in workspace other then my?

 

 

1 ACCEPTED SOLUTION
v-jiascu-msft
Microsoft Employee
Microsoft Employee

Hi @Anonymous,

 

If you'd like to continue with PowerShell, please try this get-powerbidataset. You can just type commands in the PowerShell. Another approach is the rest api getdatasetsingroup that can work with Invoke-RestMethod.

Power_BI_REST_Group_ID_and_dataset_name

 

 

Best Regards,

Dale

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

View solution in original post

1 REPLY 1
v-jiascu-msft
Microsoft Employee
Microsoft Employee

Hi @Anonymous,

 

If you'd like to continue with PowerShell, please try this get-powerbidataset. You can just type commands in the PowerShell. Another approach is the rest api getdatasetsingroup that can work with Invoke-RestMethod.

Power_BI_REST_Group_ID_and_dataset_name

 

 

Best Regards,

Dale

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

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

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.

Top Solution Authors