openapi: 3.1.0 info: title: Power BI REST Dashboards Datasets API description: The Power BI REST API provides service endpoints for embedding, administration, governance, and user resources. It enables programmatic access to Power BI content including datasets, reports, dashboards, and workspaces (groups). The API uses Azure Active Directory (OAuth 2.0) for authentication and authorization. version: '1.0' contact: name: Microsoft Power BI Support url: https://powerbi.microsoft.com/en-us/support/ termsOfService: https://powerbi.microsoft.com/en-us/api-terms/ license: name: Microsoft API License url: https://powerbi.microsoft.com/en-us/terms-of-service/ servers: - url: https://api.powerbi.com/v1.0/myorg description: Power BI REST API - User context security: - bearerAuth: [] tags: - name: Datasets description: Manage datasets including creating, updating, refreshing, and deleting datasets. Datasets represent the data model behind Power BI reports. paths: /datasets: get: operationId: getDatasets summary: Power Bi List Datasets description: Returns a list of datasets from the user's My Workspace. Each dataset includes metadata such as name, configuration settings, and whether it is a push dataset or refreshable. tags: - Datasets responses: '200': description: List of datasets content: application/json: schema: $ref: '#/components/schemas/DatasetList' examples: Getdatasets200Example: summary: Default getDatasets 200 response x-microcks-default: true value: value: - id: abc123 name: Example Title addRowsAPIEnabled: true configuredBy: example_value isRefreshable: true isEffectiveIdentityRequired: true isEffectiveIdentityRolesRequired: true isOnPremGatewayRequired: true targetStorageMode: Import createReportEmbedURL: https://www.example.com qnaEmbedURL: https://www.example.com webUrl: https://www.example.com createdDate: '2026-01-15T10:30:00Z' contentProviderType: example_value '@odata.context': example_value '401': description: Unauthorized - missing or invalid access token content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getdatasets401Example: summary: Default getDatasets 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createDataset summary: Power Bi Create a Push Dataset description: Creates a new push dataset in the user's My Workspace. Push datasets allow applications to push data directly into Power BI in real time without needing a data source or scheduled refresh. tags: - Datasets parameters: - name: defaultRetentionPolicy in: query description: The default retention policy for the dataset schema: type: string enum: - None - basicFIFO example: None requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDatasetRequest' examples: CreatedatasetRequestExample: summary: Default createDataset request x-microcks-default: true value: name: Example Title defaultMode: Push tables: - name: Example Title columns: {} rows: {} measures: {} relationships: - name: Example Title fromTable: example_value fromColumn: example_value toTable: example_value toColumn: example_value crossFilteringBehavior: OneDirection responses: '201': description: Dataset created successfully content: application/json: schema: $ref: '#/components/schemas/Dataset' examples: Createdataset201Example: summary: Default createDataset 201 response x-microcks-default: true value: id: abc123 name: Example Title addRowsAPIEnabled: true configuredBy: example_value isRefreshable: true isEffectiveIdentityRequired: true isEffectiveIdentityRolesRequired: true isOnPremGatewayRequired: true targetStorageMode: Import createReportEmbedURL: https://www.example.com qnaEmbedURL: https://www.example.com webUrl: https://www.example.com createdDate: '2026-01-15T10:30:00Z' contentProviderType: example_value '400': description: Invalid request body content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Createdataset400Example: summary: Default createDataset 400 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Createdataset401Example: summary: Default createDataset 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '409': description: Dataset name conflict content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Createdataset409Example: summary: Default createDataset 409 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK /datasets/{datasetId}: get: operationId: getDataset summary: Power Bi Get a Dataset description: Returns the specified dataset from the user's My Workspace, including its configuration, tables, and data source details. tags: - Datasets parameters: - $ref: '#/components/parameters/datasetId' responses: '200': description: Dataset details content: application/json: schema: $ref: '#/components/schemas/Dataset' examples: Getdataset200Example: summary: Default getDataset 200 response x-microcks-default: true value: id: abc123 name: Example Title addRowsAPIEnabled: true configuredBy: example_value isRefreshable: true isEffectiveIdentityRequired: true isEffectiveIdentityRolesRequired: true isOnPremGatewayRequired: true targetStorageMode: Import createReportEmbedURL: https://www.example.com qnaEmbedURL: https://www.example.com webUrl: https://www.example.com createdDate: '2026-01-15T10:30:00Z' contentProviderType: example_value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getdataset401Example: summary: Default getDataset 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '404': description: Dataset not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getdataset404Example: summary: Default getDataset 404 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK delete: operationId: deleteDataset summary: Power Bi Delete a Dataset description: Deletes the specified dataset from the user's My Workspace. This also deletes all reports and dashboard tiles that are built on the dataset. tags: - Datasets parameters: - $ref: '#/components/parameters/datasetId' responses: '200': description: Dataset deleted successfully '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Deletedataset401Example: summary: Default deleteDataset 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '404': description: Dataset not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Deletedataset404Example: summary: Default deleteDataset 404 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK /datasets/{datasetId}/refreshes: get: operationId: getRefreshHistory summary: Power Bi Get Refresh History description: Returns the refresh history for the specified dataset. The response includes the status, start time, and end time of each refresh operation. tags: - Datasets parameters: - $ref: '#/components/parameters/datasetId' - name: $top in: query description: Maximum number of refresh entries to return schema: type: integer default: 10 example: 10 responses: '200': description: List of refresh entries content: application/json: schema: $ref: '#/components/schemas/RefreshList' examples: Getrefreshhistory200Example: summary: Default getRefreshHistory 200 response x-microcks-default: true value: value: - requestId: '500123' id: abc123 refreshType: Scheduled startTime: '2026-01-15T10:30:00Z' endTime: '2026-01-15T10:30:00Z' status: Unknown serviceExceptionJson: example_value '@odata.context': example_value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getrefreshhistory401Example: summary: Default getRefreshHistory 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '404': description: Dataset not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getrefreshhistory404Example: summary: Default getRefreshHistory 404 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: refreshDataset summary: Power Bi Trigger a Dataset Refresh description: Triggers a refresh for the specified dataset. For enhanced refresh capabilities, include a request body specifying tables, partitions, or the type of refresh. tags: - Datasets parameters: - $ref: '#/components/parameters/datasetId' requestBody: description: Optional enhanced refresh request content: application/json: schema: $ref: '#/components/schemas/RefreshRequest' examples: RefreshdatasetRequestExample: summary: Default refreshDataset request x-microcks-default: true value: type: Full commitMode: transactional maxParallelism: 10 retryCount: 10 objects: - table: example_value partition: example_value responses: '202': description: Refresh triggered successfully '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Refreshdataset401Example: summary: Default refreshDataset 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '404': description: Dataset not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Refreshdataset404Example: summary: Default refreshDataset 404 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK /datasets/{datasetId}/datasources: get: operationId: getDatasources summary: Power Bi Get Data Sources description: Returns a list of data sources for the specified dataset. Each data source includes connection details such as the server, database, and data source type. tags: - Datasets parameters: - $ref: '#/components/parameters/datasetId' responses: '200': description: List of data sources content: application/json: schema: $ref: '#/components/schemas/DatasourceList' examples: Getdatasources200Example: summary: Default getDatasources 200 response x-microcks-default: true value: value: - datasourceType: example_value connectionDetails: {} datasourceId: '500123' gatewayId: '500123' '@odata.context': example_value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getdatasources401Example: summary: Default getDatasources 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '404': description: Dataset not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getdatasources404Example: summary: Default getDatasources 404 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK /datasets/{datasetId}/parameters: get: operationId: getParameters summary: Power Bi Get Dataset Parameters description: Returns a list of parameters for the specified dataset. Parameters allow dynamic configuration of data source connections and query behavior. tags: - Datasets parameters: - $ref: '#/components/parameters/datasetId' responses: '200': description: List of parameters content: application/json: schema: $ref: '#/components/schemas/ParameterList' examples: Getparameters200Example: summary: Default getParameters 200 response x-microcks-default: true value: value: - name: Example Title type: example_value currentValue: example_value isRequired: true suggestedValues: {} '@odata.context': example_value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getparameters401Example: summary: Default getParameters 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: updateParameters summary: Power Bi Update Dataset Parameters description: Updates the values of one or more parameters for the specified dataset. After updating parameters, a dataset refresh is required for the new values to take effect. tags: - Datasets parameters: - $ref: '#/components/parameters/datasetId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateParametersRequest' examples: UpdateparametersRequestExample: summary: Default updateParameters request x-microcks-default: true value: updateDetails: - name: Example Title newValue: example_value responses: '200': description: Parameters updated successfully '400': description: Invalid parameter values content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Updateparameters400Example: summary: Default updateParameters 400 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Updateparameters401Example: summary: Default updateParameters 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK /groups/{groupId}/datasets: get: operationId: getDatasetsInGroup summary: Power Bi List Datasets in a Workspace description: Returns a list of datasets from the specified workspace. This is similar to the My Workspace datasets endpoint but scoped to a specific workspace. tags: - Datasets parameters: - $ref: '#/components/parameters/groupId' responses: '200': description: List of datasets in the workspace content: application/json: schema: $ref: '#/components/schemas/DatasetList' examples: Getdatasetsingroup200Example: summary: Default getDatasetsInGroup 200 response x-microcks-default: true value: value: - id: abc123 name: Example Title addRowsAPIEnabled: true configuredBy: example_value isRefreshable: true isEffectiveIdentityRequired: true isEffectiveIdentityRolesRequired: true isOnPremGatewayRequired: true targetStorageMode: Import createReportEmbedURL: https://www.example.com qnaEmbedURL: https://www.example.com webUrl: https://www.example.com createdDate: '2026-01-15T10:30:00Z' contentProviderType: example_value '@odata.context': example_value '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getdatasetsingroup401Example: summary: Default getDatasetsInGroup 401 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value '404': description: Workspace not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: Getdatasetsingroup404Example: summary: Default getDatasetsInGroup 404 response x-microcks-default: true value: error: code: example_value message: example_value details: - message: example_value target: example_value x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: RefreshRequest: type: object description: Request body for an enhanced dataset refresh properties: type: type: string description: The type of processing to perform enum: - Full - ClearValues - Calculate - DataOnly - Automatic - Defragment example: Full commitMode: type: string description: Determines whether objects are committed in batches or only when complete enum: - transactional - partialBatch example: transactional maxParallelism: type: integer description: Maximum number of threads to run in parallel example: 10 retryCount: type: integer description: Number of times to retry on failure example: 10 objects: type: array description: Specific tables or partitions to refresh items: type: object properties: table: type: string description: The table name to refresh partition: type: string description: The partition name within the table to refresh example: [] DatasetList: type: object description: A list of Power BI datasets properties: value: type: array items: $ref: '#/components/schemas/Dataset' example: [] '@odata.context': type: string description: OData context URL example: example_value CreateDatasetRequest: type: object required: - name - tables description: Request body for creating a push dataset properties: name: type: string description: The display name of the dataset example: Example Title defaultMode: type: string description: The dataset mode enum: - Push - Streaming - PushStreaming example: Push tables: type: array description: The tables within the dataset items: $ref: '#/components/schemas/Table' example: [] relationships: type: array description: Relationships between tables items: $ref: '#/components/schemas/Relationship' example: [] UpdateParametersRequest: type: object required: - updateDetails description: Request body for updating dataset parameters properties: updateDetails: type: array items: type: object required: - name - newValue properties: name: type: string description: The parameter name newValue: type: string description: The new value for the parameter example: [] Relationship: type: object required: - name - fromTable - fromColumn - toTable - toColumn description: A relationship between two tables in a dataset properties: name: type: string description: The name of the relationship example: Example Title fromTable: type: string description: The source table name example: example_value fromColumn: type: string description: The source column name example: example_value toTable: type: string description: The target table name example: example_value toColumn: type: string description: The target column name example: example_value crossFilteringBehavior: type: string description: The cross-filtering direction enum: - OneDirection - BothDirections - Automatic example: OneDirection ErrorResponse: type: object description: Error response from the Power BI REST API properties: error: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable error message details: type: array description: Additional error details items: type: object properties: message: type: string target: type: string example: example_value Table: type: object required: - name - columns description: A table within a Power BI dataset properties: name: type: string description: The name of the table example: Example Title columns: type: array description: The columns in the table items: $ref: '#/components/schemas/Column' example: [] rows: type: array description: Rows of data in the table items: type: object example: [] measures: type: array description: DAX measures defined on the table items: $ref: '#/components/schemas/Measure' example: [] ParameterList: type: object description: A list of dataset parameters properties: value: type: array items: $ref: '#/components/schemas/Parameter' example: [] '@odata.context': type: string example: example_value Refresh: type: object description: A dataset refresh operation entry properties: requestId: type: string description: The unique identifier of the refresh request example: '500123' id: type: integer description: The sequential identifier of the refresh example: abc123 refreshType: type: string description: The type of refresh enum: - Scheduled - OnDemand - ViaApi - ViaEnhancedApi example: Scheduled startTime: type: string format: date-time description: The start time of the refresh example: '2026-01-15T10:30:00Z' endTime: type: string format: date-time description: The end time of the refresh example: '2026-01-15T10:30:00Z' status: type: string description: The status of the refresh enum: - Unknown - Completed - Failed - Cancelled - Disabled example: Unknown serviceExceptionJson: type: string description: JSON-formatted error details if the refresh failed example: example_value RefreshList: type: object description: A list of dataset refresh entries properties: value: type: array items: $ref: '#/components/schemas/Refresh' example: [] '@odata.context': type: string example: example_value Measure: type: object required: - name - expression description: A DAX measure defined on a table properties: name: type: string description: The name of the measure example: Example Title expression: type: string description: The DAX expression for the measure example: example_value formatString: type: string description: Optional format string example: example_value isHidden: type: boolean description: Whether the measure is hidden in reports example: true Datasource: type: object description: A data source used by a dataset properties: datasourceType: type: string description: The type of data source (e.g. Sql, AnalysisServices, File) example: example_value connectionDetails: type: object description: Connection details for the data source properties: server: type: string description: The server address database: type: string description: The database name url: type: string description: The connection URL path: type: string description: The file path example: example_value datasourceId: type: string format: uuid description: The unique identifier of the data source example: '500123' gatewayId: type: string format: uuid description: The gateway identifier if using an on-premises gateway example: '500123' Parameter: type: object description: A parameter in a dataset properties: name: type: string description: The parameter name example: Example Title type: type: string description: The data type of the parameter example: example_value currentValue: type: string description: The current value of the parameter example: example_value isRequired: type: boolean description: Whether the parameter is required example: true suggestedValues: type: array description: Suggested values for the parameter items: type: string example: [] Dataset: type: object description: A Power BI dataset representing a data model properties: id: type: string format: uuid description: The unique identifier of the dataset example: abc123 name: type: string description: The display name of the dataset example: Example Title addRowsAPIEnabled: type: boolean description: Whether the push API is enabled for this dataset example: true configuredBy: type: string description: The user who configured the dataset example: example_value isRefreshable: type: boolean description: Whether the dataset can be refreshed example: true isEffectiveIdentityRequired: type: boolean description: Whether effective identity is required for embedding example: true isEffectiveIdentityRolesRequired: type: boolean description: Whether RLS roles are required for embedding example: true isOnPremGatewayRequired: type: boolean description: Whether an on-premises gateway is required example: true targetStorageMode: type: string description: The storage mode of the dataset enum: - Import - DirectQuery - Dual - PushDataset example: Import createReportEmbedURL: type: string format: uri description: URL to create an embedded report on this dataset example: https://www.example.com qnaEmbedURL: type: string format: uri description: URL for the Q&A embedded experience example: https://www.example.com webUrl: type: string format: uri description: The web URL of the dataset example: https://www.example.com createdDate: type: string format: date-time description: The date and time the dataset was created example: '2026-01-15T10:30:00Z' contentProviderType: type: string description: The content provider type example: example_value DatasourceList: type: object description: A list of data sources properties: value: type: array items: $ref: '#/components/schemas/Datasource' example: [] '@odata.context': type: string example: example_value Column: type: object required: - name - dataType description: A column in a dataset table properties: name: type: string description: The column name example: Example Title dataType: type: string description: The data type of the column enum: - Int64 - Double - Boolean - Datetime - String - Decimal example: Int64 formatString: type: string description: Optional format string for the column example: example_value sortByColumn: type: string description: Name of the column to sort by example: example_value isHidden: type: boolean description: Whether the column is hidden in reports example: true parameters: datasetId: name: datasetId in: path required: true description: The unique identifier of the dataset schema: type: string format: uuid groupId: name: groupId in: path required: true description: The unique identifier of the workspace (group) schema: type: string format: uuid securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: Azure Active Directory OAuth 2.0 access token. Obtain a token by registering an Azure AD application and requesting the Power BI Service scope (https://analysis.windows.net/powerbi/api/.default). externalDocs: description: Power BI REST API Reference url: https://learn.microsoft.com/en-us/rest/api/power-bi/