Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hello,
I'm wondering if it's possible to make one or a few GET calls to the Power BI API to pull all semantic model(aka dataset) and dataflow refresh statuses within a given workspace/group so we can report on what succeeded and what failed? New semantic models and dataflows will be added over time so I want the pull those refresh statuses as well without having to adjust the code that's executing the GET calls.
Based on existing Microsoft information I found on the web, at a high-level it appears that I need to perform multiple GET calls to obtain the refresh status histories but my concern is the amount of API calls I can make in a given hour. I've read somewhere the limit is 200 calls per hour for a given service principal user account that the API calls are being performed under. I don't see any specific Microsoft documentation on the limitations when it comes to the number of GET calls that can be made in an hour.
Based on the existing Microsoft documentation, I first need to perform a GET call to obtain an initial of group IDs (aka workspace IDs) and then filter down the list based on the Capacity ID associated to those group IDs. Next, I would take the filtered group IDs and iterate through each to pull a list of dataset IDs and dataflow IDs. Then, I iterate through each dataset ID and dataflow ID to perform more GET calls to pull the refresh status history for each. So, in theory I'm making many GET calls depedent on how many dataset IDs and dataflow IDs exist in the groups/workspaces.
Step 1) GET call for list of group IDs
Step 2) GET call for list of dataset IDs for each group ID (if there are 3 groups IDs, then 3 GET individual calls are made)
Step 3) GET call for list of dataflow IDs for each group ID (if there are 3 group IDs, then 3 GET individual calls are made)
Step 4) GET call to pull refresh status history for each dataset ID listed within each group ID (if there are 50 dataset IDs, then 50 GET calls are made individually)
Step 5) GET call to pull refresh status history for each dataflow ID listed within each group ID (if there are 50 dataflow IDs, then 50 GET calls are made individually)
As you can see, as new datasets and dataflows are added over time, the 200 GET calls per hour limitation will be breached quickly especially if there are many datasets and dataflows that already exist. I'm wondering if there's a more efficient way of minimizing the amount of GET calls that need to be performed in order to pull the refresh status history for datasets and dataflows within each workspace. Is it possible to make 4 or 5 GET calls and still pull the refresh status histories I need or, is what I described above the only way?
Hi,
Is this api something you can use:
https://learn.microsoft.com/en-us/rest/api/power-bi/admin/get-refreshables-for-capacity
Does the term "refreshables" include dataflows? The documentation mentions the term "refreshables" but only the datasets are mentioned in the context of Microsoft's documentation when I click the link you provided.
Hi @Magellan57 ,
Please review the following blog and check if it can resolve your problem.
Three methods to get refresh history of Power BI dataflows
Best Regards
Check out the September 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
41 | |
4 | |
4 | |
3 | |
3 |