Overview
Add Microsoft Power BI to any ModuleX agent or workflow. Business intelligence and analytics platform integration against the Power BI REST API (api.powerbi.com/v1.0/myorg).
Categories : Analytics & Data · Business Intelligence · Analytics · Productivity · Auth : OAuth2 (Microsoft Entra ID) · Actions : 10
Authentication
OAuth2 (Microsoft Entra ID)
Connect using Microsoft OAuth2 (recommended)
Required Credentials
Field Description Required Format Client ID Microsoft Entra ID App Registration Client ID Yes -Client Secret Microsoft Entra ID App Registration Client Secret Yes -
OAuth Configuration
Authorization URL : https://login.microsoftonline.com/common/oauth2/v2.0/authorize
Token URL : https://login.microsoftonline.com/common/oauth2/v2.0/token
Scopes : https://analysis.windows.net/powerbi/api/.default, offline_access
Available Actions
add_rows_to_push_dataset — Append rows to a table in a Power BI Push Dataset
Parameters ID of the Push Dataset (use list_datasets to find IDs)
Exact case-sensitive name of the table within the dataset
JSON array of row objects matching the table column schema
ID of the workspace (omit for My workspace)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"rows_added" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Rows Added"
}
},
"required" : [
"success"
],
"title" : "AddRowsToPushDatasetOutput" ,
"type" : "object"
}
execute_dax_query — Execute a DAX query against a Power BI dataset
Parameters ID of the dataset to query (use list_datasets to find IDs)
DAX expression starting with EVALUATE
ID of the workspace (omit for My workspace)
Whether to include null values in the response (Default: true)
UPN of an effective identity for Row-Level Security
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"results" : {
"items" : {
"additionalProperties" : true ,
"type" : "object"
},
"title" : "Results" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "ExecuteDaxQueryOutput" ,
"type" : "object"
}
export_report — Export a Power BI report to PDF, PPTX, PNG, or other file format (Premium only)
get_refresh_history — Get the refresh history for a Power BI dataset
Parameters ID of the dataset (use list_datasets to find IDs)
ID of the workspace (omit for My workspace)
Number of most recent refresh entries to return (max 200)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"refreshes" : {
"items" : {
"additionalProperties" : true ,
"type" : "object"
},
"title" : "Refreshes" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "GetRefreshHistoryOutput" ,
"type" : "object"
}
get_reports_by_id — Retrieve metadata for a single Power BI report by ID
list_dashboards — List Power BI dashboards in a workspace
Parameters ID of the workspace (omit for My workspace)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"dashboards" : {
"items" : {
"additionalProperties" : true ,
"type" : "object"
},
"title" : "Dashboards" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "ListDashboardsOutput" ,
"type" : "object"
}
list_datasets — List Power BI datasets (semantic models) in a workspace
Parameters ID of the workspace (omit for My workspace)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"datasets" : {
"items" : {
"additionalProperties" : true ,
"type" : "object"
},
"title" : "Datasets" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "ListDatasetsOutput" ,
"type" : "object"
}
list_reports — List Power BI reports in a workspace
Parameters ID of the workspace (omit for My workspace)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"reports" : {
"items" : {
"additionalProperties" : true ,
"type" : "object"
},
"title" : "Reports" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "ListReportsOutput" ,
"type" : "object"
}
list_workspaces — List Power BI workspaces accessible to the authenticated user
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"workspaces" : {
"items" : {
"additionalProperties" : true ,
"type" : "object"
},
"title" : "Workspaces" ,
"type" : "array"
}
},
"required" : [
"success"
],
"title" : "ListWorkspacesOutput" ,
"type" : "object"
}
refresh_dataset — Trigger a refresh of a Power BI dataset
Parameters ID of the dataset to refresh (use list_datasets to find IDs)
ID of the workspace (omit for My workspace)
Email notification behavior: NoNotification, MailOnCompletion, MailOnFailure (Default: NoNotification)
Response {
"additionalProperties" : false ,
"properties" : {
"success" : {
"title" : "Success" ,
"type" : "boolean"
},
"error" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Error"
},
"status_code" : {
"anyOf" : [
{
"type" : "integer"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Status Code"
},
"request_id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Request Id"
},
"dataset_id" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Dataset Id"
},
"location" : {
"anyOf" : [
{
"type" : "string"
},
{
"type" : "null"
}
],
"default" : null ,
"title" : "Location"
}
},
"required" : [
"success"
],
"title" : "RefreshDatasetOutput" ,
"type" : "object"
}
Limits & Quotas
Power BI REST API is rate-limited per user/app; exact limits depend on capacity (shared vs Premium).
Dataset refreshes: Pro allows up to 8/day; Premium allows up to 48/day.
DAX query execution timeout: 5 minutes server-side.
Export API: Premium-only; exports may take minutes for large reports.
Error model: non-2xx responses are caught and returned as success=False + error rather than raising.
Links