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

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
ledd_25
New Member

PowerBI Audit Activity events API - Scheduled RefreshDataset activity

im trying to get refresh activity for all datasets in the organization using service principal utilizing the get activity events

However this does not include scheduled events. You can use get refresh history, but it only works for workspaces you have access to.

But im trying to get all the scheduled refresh events of all datasets in the organization. Are there other ways to access that without being part of every workspace?

if no, then  how could you get all scheduled refresh dataset activities of the org's datasets? Do you need to programmatically set yourself as a workspace user temporarily then remove when done?

4 REPLIES 4
v-dineshya
Community Support
Community Support

Hi @ledd_25 ,

Thank you for reaching out to the Microsoft Community Forum.

 

The Get Activity Events API from Power BI’s Admin REST API returns audit log events for a tenant, but it does not include scheduled refresh events. This is a known limitation.


please refer below for alternative workaround.

 

1. Use the Get Refresh History API, but it requires access to each workspace. Power BI Service Admin can use the Admin APIs to enumerate all datasets across the tenant using GetDatasetsAsAdmin, then loop through each dataset to call Get Refresh History.

 

Note: This still requires that the service principal has access to each workspace.


2. Audit logs for Power BI can be captured through the Microsoft 365 Audit Log . This includes scheduled refreshes if audit logging is enabled in the Power BI Admin Portal.


3. When the service principal is not a member, If you want access refresh history for workspaces try the below workaround.

 

Temporarily assign the service principal to each workspace. Fetch the refresh history and then remove the service principal, this can be automated using the Power BI REST Admin APIs.

 

Please refer below microsoft official document for your reference.

Admin - Get Activity Events - REST API (Power BI Power BI REST APIs) | Microsoft Learn

 

If my response has resolved your query, please mark it as the "Accepted Solution" to assist others. Additionally, a "Kudos" would be appreciated if you found my response helpful.

Thank you

Deku
Community Champion
Community Champion

You would need read access to the semantic models.

 

Alternatively you can set log analytics integration on each workspace. This will give all refreshes, plus you get the benefit of knowing how long the refreshes take and the cpu cost, plus you get stats for individual tables and partitions etc 


Did I answer your question?
Please help by clicking the thumbs up button and mark my post as a solution!

I have over 1000 workspaces, is there any way to programmatically do that? if no, what other alternatives do i have?

Deku
Community Champion
Community Champion

Yes. Use GetGroupsAsAdmin to get the workspace then run AddUserAsAdmin for each. Pick you favourite scripting language of choice


Did I answer your question?
Please help by clicking the thumbs up button and mark my post as a solution!

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.