Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.
I have a shared dataset in a central workspace which is used by many users accros our organization. I know I can use the Lineage view to get a list of reports which are built on top of this dataset. Below the lineage view pane it says "More workspaces with limited acces". I guess those are the workspaces which I dont have acces to , so I can not see if the dataset is being used in other workspaces. Is there an API call which shows the reports/workspaces using that dataset?
As of my last knowledge update in September 2021, Power BI did not have a built-in API or direct feature to programmatically retrieve a list of reports or workspaces that use a specific dataset across the entire organization. The Lineage view is limited to showing usage within the workspace where the dataset resides.
However, you can use the Power BI REST API along with PowerShell or other programming languages to achieve this. Here's a high-level approach to do so:
1. **Get All Workspaces**:
You can use the Power BI REST API to list all workspaces in your organization. You'll need to use the `Get Groups As Admin` API endpoint for this.
2. **Iterate Through Workspaces**:
Once you have the list of all workspaces, you can iterate through each workspace.
3. **Get Content in Each Workspace**:
For each workspace, use the `Get Items In Group` API endpoint to retrieve a list of items (reports, dashboards, datasets, etc.) within that workspace.
4. **Check Dataset Usage**:
For each item in the workspace, check whether it uses the dataset of interest by examining its data source connections. You can extract the dataset ID from the item's connection properties.
Here's a simplified example in PowerShell to get you started:
```powershell
# Replace with your actual API endpoints and access token
$apiUrl = "https://api.powerbi.com/v1.0/myorg/"
$accessToken = "YOUR_ACCESS_TOKEN"
# Get all workspaces
$workspaces = Invoke-RestMethod -Uri ($apiUrl + "groups") -Headers @{Authorization=("Bearer " + $accessToken)}
# Iterate through workspaces
foreach ($workspace in $workspaces.value) {
# Get items in each workspace
$items = Invoke-RestMethod -Uri ($apiUrl + "groups/" + $workspace.id + "/items") -Headers @{Authorization=("Bearer " + $accessToken)}
# Check dataset usage in each item
foreach ($item in $items.value) {
# Check data source connections for the item and look for your dataset
# Extract dataset ID from the connection properties
# Check if the dataset ID matches the one you're interested in
# If there's a match, log the workspace and item information
}
}
```
Please note that this is a simplified example, and the actual implementation can be more complex based on your organization's specific requirements and the complexity of the Power BI datasets and reports in use. Also, remember to securely manage access tokens and authenticate your API calls.
Additionally, since my knowledge is based on information available up to September 2021, there may have been updates or changes to the Power BI API or new features introduced since then. You may want to check the Power BI API documentation or community resources for any recent developments related to this functionality.
Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!
Check out the October 2025 Power BI update to learn about new features.