Forum Discussion
Generate Power BI API Token Without User Interaction for Scheduled Report Exports
- 1 year ago
Hi Himanshu_G,
Can try using a Service Principal (App Owns Data) is a secure, scalable, and reliable way to automate Power BI report exports. It lets your system access Power BI without needing a user to log in, making it perfect for scheduled tasks. This approach ensures that reports are delivered consistently and securely, while also reducing manual work—providing a better experience for your team and your customers.
Please refer to below documentation for same and let me know if this helps.
https://learn.microsoft.com/en-us/power-bi/developer/embedded/embed-service-principal?tabs=azure-portalThanks,
Prashanth Are
MS Fabric community support
We need to export Power BI reports using the Power BI REST API and send them via email on a scheduled basis in a User Owns Data scenario. The challenge is that obtaining an access token requires user authentication, but we need a way to generate the token automatically without user interaction to support scheduled email delivery.
Requirement
We are looking for a solution to:
- Programmatically authenticate and retrieve an access token for Power BI APIs without manual login.
- Automate report exports and send them via email at scheduled intervals.
- Ensure compliance with User Owns Data authentication requirements while maintaining security best practices.
Has anyone successfully implemented this? What are the best practices to achieve this securely? Any guidance would be greatly appreciated!
- rohit19911 year agoSuper User
Hi Himanshu_G
To programmatically generate a Power BI API access token without user interaction for scheduled report exports in a User Owns Data scenario, the recommended and secure approach is to implement service principal authentication using Azure AD app registrations.
While User Owns Data typically involves delegated permissions and user context, automation without manual login is achievable by shifting to a Service Principal or Service Account model with appropriate permissions assigned. In this setup, you register an application in Azure AD, grant it API permissions to Power BI, and use a client secret or certificate to authenticate via OAuth2.0 to obtain tokens programmatically. This allows your backend service or script to fetch a token and call the Power BI REST API to export reports and send them via email at scheduled intervals using tools like Power Automate, Azure Functions, or custom code.
It’s important to ensure that the service principal has access to the necessary workspaces and datasets, and to store secrets securely (e.g., in Azure Key Vault). While this approach leans toward the App Owns Data model, it is often adapted in User Owns Data workflows when automation is a priority.
- v-sathmakuri1 year agoCommunity Support
Hi Himanshu_G ,
Thank you for reaching out to Microsoft Fabric Community.
Thank you Himanshu_G for the prompt response.
May I ask if you have resolved this issue? If so, please mark the helpful reply and accept it as the solution. This will be helpful for other community members who have similar problems to solve it faster.
Thank you.
- Himanshu_G1 year agoHelper I
rohit1991 Thank you for the suggested solution. However, it doesn't align with our specific use case.
- v-sathmakuri1 year agoCommunity Support
Hi Himanshu_G ,
Thank you for reaching out to Microsoft Fabric Community.
using service account or service principal are the possible solutions.
Could you share a bit more about the constraints or requirements you're working with? For example:
-
Are service principals or app registrations not allowed in your environment?
-
Is the report being exported tied to per-user row-level security (RLS)?
Once I have a better idea of the exact boundaries, we can provide you the best solution possible.
If this post helps, then please consider Accepting as solution to help the other members find it more quickly, don't forget to give a "Kudos" – I’d truly appreciate it!
Thank you!!
- v-sathmakuri1 year agoCommunity Support
Hi Himanshu_G ,
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions. If the responses has addressed your query, please accept it as a solution and give a 'Kudos' so other members can easily find it.
Thank you!!
-
- v-sathmakuri1 year agoCommunity Support
Hi Himanshu_G ,
I hope this information provided is helpful. Feel free to reach out if you have any further questions or would like to discuss this in more detail. If responses provided answers your question, please accept it as a solution so other community members with similar problems can find a solution faster.
Thank you!!