Forum Discussion
How to track which dataflows are not used
Hello Team,
- We have several Dataflow Gen1s that are refreshing regularly and consuming capacity resources.
- Some of these dataflows may not be connected to any Semantic Models (Datasets), Lakehouses, or other downstream artifacts.
- As a result, they could be consuming capacity unnecessarily without being actively used.
- Verifying usage through the Lineage View for each dataflow is time-consuming and not scalable.
- Is there any report, API, or built-in feature that can help identify Dataflow Gen1s with no downstream dependencies to support governance and capacity optimization?
4 Replies
- Prince0011
Solution Sage
Currently, there isn't a built-in report or a single API that directly identifies unused Dataflow Gen1s (i.e., dataflows with no downstream dependencies) across a tenant or workspace.
However, you can use a combination of the following approaches:
Lineage View provides the most accurate dependency visualization, but as you mentioned, it doesn't scale well for a large number of dataflows.
Power BI REST APIs (such as Get Dataflows, Get Datasets, and Get Datasources) can be used to inventory your dataflows and downstream artifacts. You can then correlate this information to identify dataflows that aren't referenced by any semantic models or other supported artifacts.
If your organization uses the Power BI Scanner APIs (Metadata Scanning), these APIs provide tenant-wide metadata and lineage information that can be used to build a governance report highlighting orphaned or potentially unused dataflows.
Additionally, reviewing refresh history alongside dependency information can help identify dataflows that continue to consume capacity despite having no active downstream consumers.
For governance at scale, many organizations build a custom inventory report using the Scanner APIs and REST APIs to periodically identify:
Dataflows with no downstream dependencies.
Dataflows that haven't been accessed recently.
Dataflows with frequent refreshes but no business usage.
Candidates for retirement to optimize capacity consumption.
For more details, see:
Power BI Scanner APIs: https://learn.microsoft.com/power-bi/admin/metadata-scanning-overview
Power BI REST APIs: https://learn.microsoft.com/rest/api/power-bi/
Lineage in Microsoft Fabric and Power BI: https://learn.microsoft.com/power-bi/collaborate-share/service-data-lineage
💡 Helpful? Give a Kudos 👍 — keep the community growing.
✅ Solved your issue? Mark this as the Accepted Solution ✔️
Best regards, Prince Singh | Data Science & Microsoft Fabric Enthusiast
- GilbertQ
Super User
Hi
You can certainly use the scanner API data as long as you use the additional attributes when using the scanner API data which will then tell you what they are the underlying data sources which are relying on the dataflows.
Below is the Scanner API to use. https://learn.microsoft.com/en-us/fabric/governance/metadata-scanning-overview
- krishnakanth240
Super User
Hi Poulami
You can build one using Power BI Admin REST APIs combined with the Scanner API which returns dataflow to dataset dependency data across workspaces instead of clicking through lineage view one by one.
Approach is to run the Scanner API on a schedule, parse the JSON to identify dataflows with no referencing datasets in datasourceUsages or dependency output and cross check against the Dataflow refresh history or activity logs through Get Dataflow Transactions or Activity Events API to also catch dataflows still refreshing with zero consumption.
https://learn.microsoft.com/en-us/power-bi/enterprise/service-admin-metadata-scanning
https://learn.microsoft.com/en-us/rest/api/power-bi/admin/workspace-info-post-workspace-info
https://learn.microsoft.com/en-us/rest/api/power-bi/admin/workspace-info-get-scan-result
- PoulamiFrequent Visitor
Thank you everyone for your suggestions. Really appreciated.