Skip to content

tirnovar/Power_BI_REST_API_PQ

Repository files navigation

Power BI REST API CUSTOM Function Library

LinkedIn Twitter

Custom Connector

Custom Connector for Power BI REST API

Authentication Functions:

Method Name Description Requirements
Post PBI - Bearer Token Generate Bearer Token that is needed for calling Power BI REST API AzureTenantId + AzureApplicationClientId + AzureApplicationClientSecret
Post GraphAPI - Bearer Token Generate Bearer Token that is needed for calling GraphAPI AzureTenantId + AzureApplicationClientId + AzureApplicationClientSecret

Admin Functions:

API Permissions: Tenant.Read.All or Tenant.ReadWrite.All (Power BI Service)

Method Name Description Requirements Call limits
Get Domains Get all Fabric Domains in your Tenant PBI - Bearer Token Not Defined
Get Tenant Settings Get all Fabric / Power BI Admin Tenant Settings PBI - Bearer Token Not Defined
Get Capacities Get all Power BI Capactities that are in your tenant PBI - Bearer Token Not Defined
Get Capacity Users Returns users assigned to selected capacity PBI - Bearer Token + CapacityId Not Defined
Get Workspaces Get All Workspaces (Groups) in tenant PBI - Bearer Token 50 calls/per hour/per tenant. Time out after 30s
Get Workspaces with Users Get All Workspaces (Groups) in tenant with their users PBI - Bearer Token 200 calls per hour
Get Modified Workspaces Returns workspaces that has been modified since last call PBI - Bearer Token 30 calls per hour
Get Apps Without Users Get All Apps in tenant PBI - Bearer Token 200 calls per hour
Get Apps With Users Get All Apps in tenant with users PBI - Bearer Token + App Users 200 calls per hour
Get App Users Returns all assinged users to selected App PBI - Bearer Token + AppID 200 calls per hour
Get Pipelines Get All pipelines in tenant PBI - Bearer Token 200 calls per hour
Get Dataflows Get All dataflows in tenant PBI - Bearer Token Not Defined
Get Dataflow Refreshes Get All dataflows in tenant PBI - Bearer Token + WorkspaceId + DataflowId Not Defined
Get Datasets Without Users Get All datasets in tenant without users PBI - Bearer Token Not Defined
Get Datasets With Users Get All datasets in tenant with users PBI - Bearer Token + Dataset Users 200 calls per hour
Get Dataset Users Return users that are assigned to selected dataset with their rights PBI - Bearer Token + DatasetId 200 calls per hour
Get Dataset Refresh History Returns refresh history for selected dataset PBI - Bearer Token + DatasetId Not Defined
Get Dataset Last Error Refresh Returns the last Error refresh from last 10 refreshes PBI - Bearer Token + DatasetId Not Defined
Get Refreshables Get all refreshable datasets in your tenant PBI - Bearer Token Not defined
Get Datasets In Workspace Returns All datasets that are stored in selected workspace PBI - Bearer Token + WorkspacesId 200 calls per hour
Get Datasets With Users & Datasources Get All datasets with Users & Datasources. This call is not good to call if you have larger amount of datasets. (Calls for Users & Datasource for exact datasource are separete API Calls) PBI - Bearer Token + Dataset Users + Datasources of Dataset 200 calls per hour
Get Datasources of Dataset Returns All datasources that are inside selected dataset PBI - Bearer Token Not Defined
Get Dashboards Get All dashboards in tenant PBI - Bearer Token 200 calls per hour
Get Dashboard Tiles Returns All tiles from selected dashboard PBI - Bearer Token + DashboardId 200 calls per hour
Get Dashboards In Workspace With Tiles Returns All dashboards from selected workspace with their tiles PBI - Bearer Token + WorkspacesId + Dashboard Tiles 200 calls per hour
Get Reports Get All reports in tenant PBI - Bearer Token 200 calls per hour
Get Report Users Return users that are assigned to selected report PBI - Bearer Token + ReportId 200 calls per hour
Get Reports in Workspace Get All reports that are stored in selected workspace PBI - Bearer Token + WorkspacesId 200 calls per hour
Get Report Subscriptions Return subscriptions that are created for selected report PBI - Bearer Token + ReportId 200 calls per hour
Get User Artifact Access Return all artifact access (Datasets, Reports,...) that selected user or entity have PBI - Bearer Token + Identifier/UPN 200 calls per hour
Get User Subscriptions Return all subscriptions that selected user or entity have PBI - Bearer Token + Identifier/UPN 200 calls per hour
Get Imports Returns All Imports that has been made into Power BI Service PBI - Bearer Token 200 calls per hour
Get Available Features Returns all features that are registered in your Power BI Service PBI - Bearer Token Not Defined
Get Links Shared To Whole Organization Get the links shared to the whole organization PBI - Bearer Token 200 calls per hour
Get Published To Web Get all reports that are published to web PBI - Bearer Token 200 calls per hour
Get Activity Events for One Day Get All Activity Events for one selected Day PBI - Bearer Token 200 calls per hour (Not working in German Tenant)
Get Activity Events from Period Get All Activity Events from period PBI - Bearer Token 200 calls per hour (Not working in German Tenant) and MAX -30 DAYS BACK

API Permissions: InformationProtectionPolicy.Read.All (GraphAPI)

Method Name Description Requirements
Get Information Protections Labels Get All labels that can be used in your company GraphAPI - Bearer Token

--> Sensitivity labes can on Dataflow / Dataset / Report / Workbook / Dashboard be find out by Scan Results

Scanner API Functions:

Method Name Description Requirements Call limits
Post GetInfo Start scanning to selected Workspace PBI - Bearer Token + WorkspaceId 500 calls per hour and 16 simultaneous requests
Post GetInfo - for Enhanced Response Start scanning to selected Workspace PBI - Bearer Token + WorkspaceId 500 calls per hour and 16 simultaneous requests
Get Scan Status Returns actual status of called scan (by ID) PBI - Bearer Token + scanId 10 000 calls per hour
Get Scan Results Returns results of called scan (by ID) !(Works only when Scan Status is "Successful")! PBI - Bearer Token + scanId 500 calls per hour
Get Scan Status and / or Results Call Scan Status and if result is "Successful" then Scan Results is called for results PBI - Bearer Token + scanId 500 calls per hour
Get Modified Workspaces Returns list of Workspace IDs that has been updated from selected DateTime PBI - Bearer Token 30 calls per hour

Thanks to Kathrin Borchert ( Twitter, LinkedIn ) you can recieve all data about your workpaces by this API because her update on GetInfo - for Enhanced Response function. By this Enhanced scanner ID you will recieve from Scan Results function everything.

Gateways:

To get Gateways in tenant you need User Token from user that has access into Power Platform - Admin portal

Link To đź“– Documentation

Method Name Description Requirements
Get Create URL to user Login This query returns an URL that User opens in browser and login to recieve requested URL ANSWER AzureTenantId + AzureApplicationClientId
Get Extract code Returns extracted code from response after user loggin Create URL to user Login
Post Refresh Token cURL to get Refresh Token from Postman Extract code + AzureTenantId + AzureApplicationClientId + AzureApplicationClientSecret
Get User Token Returns User Access Token Refresh Token + AzureTenantId + AzureApplicationClientId + AzureApplicationClientSecret
Get Gateways Returns All gateways in tenant Get User Token

Scorecards & Goals

API Permissions: Dataset.Read.All or Dataset.ReadWrite.All (Power BI Service)

Method Name Description Requirements Call limits
Get Scorecards from workspace Returns Scorecards that are stored in selected workspace. (User / Service principal need to be assinged into workspace to be able to see these scorecards) PBI - Bearer Token + WorkspacesId Not Defined
Get Goals from scorecard Return goals from selected scorecard  PBI - Bearer Token + WorkspacesId + ScorecardId Not Defined

Querying Datasets

API Permissions: Dataset.Read.All or Dataset.ReadWrite.All (Power BI Service)

Method Name Description Requirements Call limits
Get Data from Different Dataset Returns data that are result of DAX Query or Table in selected Dataset PBI - Bearer Token + DatasetId + TableName ( + Own DAX Query <- OPTIONAL ) MAX 100 000 table rows per query, One table request per query, One query per API call, Datasets with RLS are not supported, Dataset has to be in Workspace V2