Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Hi everyone,
I installed an instance of Power BI Server with some reports on a computer and I can view the reports in embed version inside a web-app by adding the parameter "?rs:embed=true" to the report URL in a iframe. My PBI Server is installed with Evaluation License.
Can I use REST API to get reports from my Power BI Server? Note that my reports are on my Server and not on app.powerbi.com.
Can I get this functionality with an Evaluation for the moment or is the Premium license necessary to call my PBI Server via REST from my angular web-app?
Thanks in advance.
Best regard.
Salvatore
Solved! Go to Solution.
The simplest of the PBIRS API calls is as shown in the screenshot.
Here is the code if you want to invoke the same API call using PowerShell
$Cred = Get-Credential
$Url = "http://powerbi.local/Reports/api/v2.0/Me"
#Invoke-RestMethod -Method 'GET' -Uri $Url -UseDefaultCredentials -OutVariable UserContext
Invoke-RestMethod -Method 'GET' -Uri $Url -Credential $Cred -OutVariable UserContext
echo $UserContext
Here is the list of PBI RS APIs that you can play with.
Please accept the solution, if you agree.
Cheers,
Hari T
You can set your cedentials at the GET request level by choosing the Authorization method as "NTLM Authentication".
This is when you are on windows and using Windows Authentication. You can also set the Domain of your Org. in the advanced properties.
Cheers,
Hari T
There is no functional difference between evaluation edition and full enterprise, aside from a timebomb and licensing rules. You can use the evaluation edition for purposes of dev/test and demo's. Running it in any production evironment will require the appropriate SQL enterprise core or PowerBI premium licenses.
Thank you for your reply!
So, how can I obtain the embedded token for my REST calls to PBI Server? I tried to implement a REST call from an Angular app but I didn't know the correct way to get this token.
My reports are published on a PBI Server instead of PBI Services (app.powerbi.com).
Thank you!
Best regards.
I haven't tried Angular to make the Rest Api calls but used powershell/postman to make the calls. You can set the security context at the request level or Collection level while making an API call. This worked like a charm for me.
Cheers,
Hari T
The simplest of the PBIRS API calls is as shown in the screenshot.
Here is the code if you want to invoke the same API call using PowerShell
$Cred = Get-Credential
$Url = "http://powerbi.local/Reports/api/v2.0/Me"
#Invoke-RestMethod -Method 'GET' -Uri $Url -UseDefaultCredentials -OutVariable UserContext
Invoke-RestMethod -Method 'GET' -Uri $Url -Credential $Cred -OutVariable UserContext
echo $UserContext
Here is the list of PBI RS APIs that you can play with.
Please accept the solution, if you agree.
Cheers,
Hari T
Hey @Anonymous, I'm trying to call Power BI to rest APIs from an Angular Application using HTTP get request, also passing all the required params and the Auth token through the request header but getting 304 forbidden error in response.
The strange thing is the same request is working through the Postman with the same request header and params.
I'm not sure what causing this issue...
The GET call in my example returns the User Context properties.
To answer your question, it is the UserID which is stored as GUID in ReportServer metadata.
Cheers,
Hari T
Hi Harikishant. Thank you.
I want to accept your answer as a solution, but there is still something missing!
Are you speaking about the "UserID field in "Users" table into the PBI Server database?
However, in my case, I receive "401 Unauthorize".
I sent a GET request with Postman to PBI Server WebPortal URL and WebService URL without body and with only "Content-Type"="application/json" as Header.
My question is: where should I set the credentials before send the request to obtain the authorization?
Many thanks.
You can set your cedentials at the GET request level by choosing the Authorization method as "NTLM Authentication".
This is when you are on windows and using Windows Authentication. You can also set the Domain of your Org. in the advanced properties.
Cheers,
Hari T
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.
User | Count |
---|---|
3 | |
2 | |
2 | |
1 | |
1 |
User | Count |
---|---|
5 | |
4 | |
4 | |
4 | |
4 |