Skip to content

Scheduled refresh ​

Publish the report to Power BI Service to share it and refresh it automatically. No gateway is needed, since the Telescope API is a public cloud service.

1. Publish ​

In Power BI Desktop, select Home → Publish and pick a workspace.

2. Set the data source credentials ​

  1. In Power BI Service, open the workspace and find the semantic model (it has the same name as your report).
  2. Select ⋯ → Settings, then expand Data source credentials.
  3. Select Edit credentials next to https://api.telescope.eco.
  4. Set Authentication method to Anonymous and Privacy level to Organizational.
  5. Check Skip test connection, and select Sign in.
Power BI Service credentials dialog with Anonymous, Organizational and Skip test connection

Skip test connection is required

Power BI tests the connection with a plain request to the base URL, without your X-API-Key header. Telescope answers that with 401, so without Skip test connection the credentials won't save.

3. Schedule the refresh ​

Still in the semantic model settings, expand Refresh:

  1. Turn on Configure a refresh schedule.
  2. Choose a frequency and time. Daily is enough for most reports: results change when analyses rerun or someone updates an assessment in Telescope, not by the minute.
  3. Add an email address for refresh failure notifications.
Power BI Service scheduled refresh settings

Every refresh reloads all data:

  • The API can't return only the properties that changed.
  • The API doesn't report deleted properties. A full reload removes them from the report.

Power BI's incremental refresh isn't a good fit for the same reasons.

Change the API key ​

When you rotate the key, update it without republishing: in the semantic model settings, expand Parameters, paste the new value into TelescopeApiKey, and select Apply. Then refresh.

Keep the API key safe ​

The key is stored in the report's parameters. Anyone who can edit the semantic model, or download the .pbix file, can read it.

  • Use a key just for Power BI, so you can rotate it without breaking other integrations.
  • Only give Build or edit access to the semantic model to people who may see the key. Viewers of the report can't see parameters.
  • Don't email or share the .pbix file with the key in it. Clear the parameter first.
  • If the key may have leaked, rotate it and update the parameter.

Why the queries look like this ​

Power BI Service only refreshes web queries whose address it can work out without running them. That is why TelescopeGet passes a fixed base URL to Web.Contents and adds the path, query and header as options:

powerquery
Web.Contents(TelescopeBaseUrl, [RelativePath = path, Query = query, Headers = ...])

Building the full URL as text, like Web.Contents(TelescopeBaseUrl & path), works in Desktop, but the Service refuses to refresh it with "This dataset includes a dynamic data source".

Troubleshooting ​

ProblemWhat to check
401 or "Access to the resource is forbidden"The TelescopeApiKey parameter is wrong, or the key was rotated or revoked. Check it on the API keys page in Telescope.
Credentials won't save in the ServiceCheck Skip test connection.
"This dataset includes a dynamic data source"A query builds the URL as text. Use TelescopeGet and TelescopeList as written.
"We couldn't authenticate with the credentials provided" in DesktopThe data source is set to something other than Anonymous. Change it under File → Options and settings → Data source settings.
Hazards is empty for new propertiesThe analyses haven't finished yet. Refresh again later.
Refresh is slowEach request returns 100 properties, and Portfolios makes one request per portfolio, so refresh time grows with both. Load fewer properties with filters if you only need some.