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

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
bayeshelsinki
Regular Visitor

Data refresh with Web.Contents and Web API authentication

Hi,

In Power BI Desktop, it is convenient to store tokens securely, when using the Web.contents function by using the ApiKeyName argument. Upon refreshing the data Power BI prompts the token, data is loaded and the token is stored securely outside the .pbix file.

When I publish the report to Power BI service I run into problems if I want to refresh the data. Is the secure storing of tokens only  supported in Power BI desktop and do I need to hardcode the token to my Power Query to enable scheduled refreshes with Web.Contents? The hardcoded tokens approach works with data refreshes in both Desktop and Service, but is not as secure.

1 ACCEPTED SOLUTION
v-eqin-msft
Community Support
Community Support

Hi @bayeshelsinki ,

 

To my knowledge, Power BI service does not support the ApiKeyName option.

You could take a look at this issus for detailed description.

 

In addition, there are several blog posts on how to work around this problem.Hope these help.

 

Web.Contents(), M Functions And Dataset Refresh Errors In Power BI

Dynamic Web.Contents() and Power BI Refresh Errors

Using The “Skip Test Connection” Option For Power BI Data Sources To Avoid Scheduled Refresh Failure...

 

As for the syntax of the workaround, 

you could check this blog to learn more.

Revisiting Dynamic Web.Contents()

 

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

View solution in original post

3 REPLIES 3
bayeshelsinki
Regular Visitor

Thanks @v-eqin-msft!

This is a big minus as there is no way to store the tokens securely and they have to be hard-coded into the power query. Anyone that has access to the .pbix file will also get the authentication tokens.

Not necessarily. Maybe you can hard code a token, use it to test the connection, then expire it and then replace it at runtime with a parameterized token that you get from outside of Power BI (via a separate query for example).

 

yeah, sounds crazy. but maybe worth a try.

v-eqin-msft
Community Support
Community Support

Hi @bayeshelsinki ,

 

To my knowledge, Power BI service does not support the ApiKeyName option.

You could take a look at this issus for detailed description.

 

In addition, there are several blog posts on how to work around this problem.Hope these help.

 

Web.Contents(), M Functions And Dataset Refresh Errors In Power BI

Dynamic Web.Contents() and Power BI Refresh Errors

Using The “Skip Test Connection” Option For Power BI Data Sources To Avoid Scheduled Refresh Failure...

 

As for the syntax of the workaround, 

you could check this blog to learn more.

Revisiting Dynamic Web.Contents()

 

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

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Feb2025 Sticker Challenge

Join our Community Sticker Challenge 2025

If you love stickers, then you will definitely want to check out our Community Sticker Challenge!

Feb2025 NL Carousel

Fabric Community Update - February 2025

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