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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
micpol
Frequent Visitor

Power BI REST API - retrieving activity events returns 403 / "API is not accessible for application"

Hello,

 

I am trying to get activity logs using a Power BI secrvice principal. Once a valid access token is retrieved, it is possible to use the Power BI REST API for example to get the groups (GET https://api.powerbi.com/v1.0/myorg/groups) - it works fine. 

 

Hoerver, when I attempt to get activity events (GET https://api.powerbi.com/v1.0/myorg/admin/activityevents) a 403 Forbidden error with the following message is returned:

{

"Message": "API is not accessible for application"
}


The service principal has all requires scopes and also the admin role. The doc says that it is possible to "authenticate via service principal"  (ref. to https://docs.microsoft.com/en-us/rest/api/power-bi/admin/getactivityevents), so my understaing is that this API can be used with a service principal.

 

Any idea?

 

Best regards,

Michal

7 REPLIES 7
shubh43
Regular Visitor

The URL in the Microsoft API documentation is wrong for service principals.

You need to also include the workspace ID in the URL, see below

 

https://api.powerbi.com/v1.0/myorg/groups/{WorkspaceID}/admin/activityevents)

HI Shubh43,

 

thanks for your reply.

 

I gave a try to that URL with a valid workspace ID, unfortunatlly it returned a 404 error.

 

Where did you get this URL from? Is it anywhere documented?

 

Best reagards,

Michal

 

PowerMS
Regular Visitor

Hi, 

 

I'm facing the same issue with the API https://api.powerbi.com/v1.0/myorg/admin/activityevents

1- I have created an app registration with the API permissions :

 
Tenant.Read.All
Tenant.ReadWrite.All

 

3-created Security Group in Azure Active Directory with the role  "Power BI administrator "

4- Added the app to the Security group 

5-Add the security group to the Admin API tenant setting in the Power BI admin portal

 

and I'm still having the error message "{"Message":"API is not accessible for application"}" 

 

Any help please ? 

 

 

Regards,

SteveAtCity
New Member

I am seeing the same issue as @micpo and @sjkpdk when trying to use the activityevents API from Azure Data Factory. 

@V-lianl-msft :

Has anyone been able to get this method to work?

 

If not can what alternatives are there to extract power bi audit log activity?

 

What does the documentation mean by

  • " The user must have administrator rights . . . to call this API or authenticate via service principal."
  • "Required scope: Tenant.Read.All or Tenant.ReadWrite.All."
sjkpdk
New Member

We are also unable to get this to work. It is really fustrating when the docs state that it should work for a service principal, but in reality it doesnt seem to be the case. 

V-lianl-msft
Community Support
Community Support

Hi @micpol ,

 

You must meet these requirements to access the Power BI activity log:

  • You must either be a global admin or a Power BI service admin.
  • You have installed the  Power BI Management cmdlets locally or use the Power BI Management cmdlets in Azure Cloud Shell.

 

Best Regards,
Liang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hi @V-lianl-msft ,

 

thank you for your reply.

 

My case is related to embedding content for customers (https://docs.microsoft.com/en-us/power-bi/developer/embedded/embed-sample-for-customers?tabs=net-fra... , https://docs.microsoft.com/en-us/power-bi/developer/embedded/embed-service-principal ), so I am using a Power BI servcice principal (App account), not an AAD user account.

 

The service principal has been added to Power BI service admin list as well as required scopes have been set correctly.

 

Furthermore, I am talking to the Power BI service by means of the REST API (https://docs.microsoft.com/en-us/rest/api/power-bi/admin/getactivityevents) from within my application (backend), I am not using any Power BI Management cmdlets.

 

According to https://docs.microsoft.com/en-us/rest/api/power-bi/admin/getactivityevents it is possible to get authenticated via service principal. Note that other Power BI REST APIs are working fine.

 

In this particular case the message I am facing is "API is not accessible for application" and the HTTP error code is 403 Forbidden. It seems to me that the https://docs.microsoft.com/en-us/rest/api/power-bi/admin/getactivityevents does not work with a service principal.

 

Summarizing, is that feasible to get acticity events using a service principal created for the "embed content for your customers" case at all? I would like to have acccess to that activity log from within an application (backend).

 

Best reagrds,
Michal

 

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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