Microsoft Power BI Datasets API
The Datasets API from Microsoft Power BI — 5 operation(s) for datasets.
The Datasets API from Microsoft Power BI — 5 operation(s) for datasets.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/microsoft-power-bi-datasets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.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:
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
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: []
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
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
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'
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: []
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: []
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
ParameterList:
type: object
description:
# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/power-bi/refs/heads/main/openapi/power-bi-datasets-api-openapi.yml