Skip to main content
Microsoft Power BI logo

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

FieldDescriptionRequiredFormat
Client IDMicrosoft Entra ID App Registration Client IDYes-
Client SecretMicrosoft Entra ID App Registration Client SecretYes-

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

Parameters

dataset_id
string
required
ID of the Push Dataset (use list_datasets to find IDs)
table_name
string
required
Exact case-sensitive name of the table within the dataset
rows
string
required
JSON array of row objects matching the table column schema
workspace_id
string
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"
}

Parameters

dataset_id
string
required
ID of the dataset to query (use list_datasets to find IDs)
query
string
required
DAX expression starting with EVALUATE
workspace_id
string
ID of the workspace (omit for My workspace)
include_nulls
boolean
Whether to include null values in the response (Default: true)
impersonated_user_name
string
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"
}

Parameters

report_id
string
required
ID of the report to export (use list_reports to find IDs)
format
string
Output format: PDF, PPTX, PNG, CSV, XLSX, DOCX, XML, MHTML (Default: PDF)
workspace_id
string
ID of the workspace (omit for My workspace)
poll_interval_seconds
integer
Seconds between export status polls (Default: 5)
poll_timeout_seconds
integer
Maximum seconds to wait for export completion (Default: 300)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "export_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Export Id"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "report_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Report Id"
    },
    "format": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Format"
    },
    "resource_file_extension": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Resource File Extension"
    },
    "resource_location": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Resource Location"
    },
    "file_size_bytes": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "File Size Bytes"
    },
    "file_base64": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "File Base64"
    },
    "percent_complete": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Percent Complete"
    }
  },
  "required": [
    "success"
  ],
  "title": "ExportReportOutput",
  "type": "object"
}

Parameters

dataset_id
string
required
ID of the dataset (use list_datasets to find IDs)
workspace_id
string
ID of the workspace (omit for My workspace)
top
integer
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"
}

Parameters

report_id
string
required
Power BI report ID (GUID)
group_id
string
Workspace group ID (omit for My workspace)

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Id"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "web_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Web Url"
    },
    "embed_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Embed Url"
    },
    "dataset_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Dataset Id"
    },
    "report_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Report Type"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetReportsByIdOutput",
  "type": "object"
}

Parameters

workspace_id
string
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"
}

Parameters

workspace_id
string
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"
}

Parameters

workspace_id
string
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"
}

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"
}

Parameters

dataset_id
string
required
ID of the dataset to refresh (use list_datasets to find IDs)
workspace_id
string
ID of the workspace (omit for My workspace)
notify_option
string
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.

Databricks

Google Tag Manager

Mixpanel