Microsoft Power BI (Client Credentials)

Integrate your application with the Microsoft Power BI API using a service principal (client credentials)

🚀 Quickstart

Connect to Microsoft Power BI with Tenklo and see data flow in 2 minutes.

Create the integration

In Tenklo (free signup), go to Integrations -> Configure New Integration -> Microsoft Power BI (Client Credentials).

Connect Microsoft Power BI

Go to Connections -> Add Test Connection -> Connect, then enter your Tenant ID, Client ID, and Client Secret. Later, you'll let your users do the same directly from your app.

Call the Microsoft Power BI API

Let's make your first request to the Power BI API (list the workspaces your service principal can access). Replace the placeholders below with your API key, integration ID, and connection ID:

curl "https://api.tenklo.dev/proxy/v1.0/myorg/groups" \
  -H "Authorization: Bearer <NANGO-API-KEY>" \
  -H "Provider-Config-Key: <INTEGRATION-ID>" \
  -H "Connection-Id: <CONNECTION-ID>"

Or fetch credentials with the Node SDK or API.

✅ You're connected! Check the Logs tab in Tenklo to inspect requests.

Implement Tenklo in your app

Follow our Auth implementation guide to integrate Tenklo in your app.

To obtain your own production credentials, follow the setup guide linked below.

📚 Microsoft Power BI (Client Credentials) integration guides

Nango-maintained guides for common use cases.

Official docs: Power BI REST API

🧩 Pre-built syncs & actions for Microsoft Power BI (Client Credentials)

Explore Nango-provided actions in your dashboard. Extend and customize them to fit your needs.

Others

Function nameDescriptionTypeSource code
add-dataset-rowsAppend rows of data to a push-dataset table.Action🔗 Github
add-workspace-userGrant a user or service principal access to a workspace.Action🔗 Github
create-dashboardCreate a new, empty dashboard in a workspace.Action🔗 Github
create-push-datasetCreate a new dataset with an explicit table/column schema in push mode, ready to receive rows via the API without needing a .pbix file.Action🔗 Github
create-workspaceCreate a new Power BI workspace.Action🔗 Github
delete-dataset-rowsDelete all rows from a push-dataset table (truncate)Action🔗 Github
delete-datasetDelete a dataset.Action🔗 Github
delete-workspaceDelete a workspace.Action🔗 Github
execute-dataset-queriesRun a DAX query against a dataset and return the resultsAction🔗 Github
get-dataset-refresh-scheduleGet the configured refresh schedule for a dataset.Action🔗 Github
get-datasetGet details of a single dataset.Action🔗 Github
get-workspaceGet details of a single workspace.Action🔗 Github
list-dashboard-tilesList the tiles on a dashboard.Action🔗 Github
list-dashboardsList dashboards in a workspace.Action🔗 Github
list-dataflowsList dataflows in a workspaceAction🔗 Github
list-dataset-datasourcesList the data sources backing a dataset.Action🔗 Github
list-dataset-refresh-historyList the refresh history of a dataset.Action🔗 Github
list-dataset-usersList users and service principals with direct access to a dataset.Action🔗 Github
list-datasetsList datasets in a workspace.Action🔗 Github
list-gatewaysList on-premises data gateways visible to this service principal.Action🔗 Github
list-reportsList reports in a workspace.Action🔗 Github
list-workspace-usersList users and service principals with access to a workspace.Action🔗 Github
list-workspacesList Power BI workspaces (groups) accessible to this service principal.Action🔗 Github
refresh-datasetTrigger a refresh of a dataset.Action🔗 Github
takeover-datasetTransfer ownership of a dataset's data source credentials to the caller.Action🔗 Github
update-dataset-refresh-scheduleConfigure the automatic refresh schedule for a dataset.Action🔗 Github
update-dataset-table-schemaReplace a push dataset table's column schema.Action🔗 Github
update-workspaceRename a workspace.Action🔗 Github
datasetsSync datasets across all workspaces accessible to this service principal.Sync🔗 Github
workspacesSync Power BI workspaces (groups) accessible to this service principal.Sync🔗 Github

API gotchas

  • Power BI's app-only auth isn't gated by Microsoft Graph permissions alone — a Power BI tenant admin must also enable Allow service principals to use Power BI APIs (and, if scoping to a security group, add the app to that group) in the Fabric admin portal's tenant settings. Without this, requests fail even with a valid token and correct application permissions.
  • A service principal only sees workspaces it's been added to as a viewer, contributor, member, or admin (/v1.0/myorg/groups). To read tenant-wide without per-workspace membership, use the Admin API (/v1.0/myorg/admin/groups) — this requires enabling Service principals can access read-only admin APIs in the Fabric admin portal (separate from the base tenant setting above). No Microsoft Entra API permission is needed: Tenant.Read.All/Tenant.ReadWrite.All are delegated-only scopes and don't apply to service principals.

On this page