Power BI Datasets API

Manage datasets including creating, updating, refreshing, and deleting datasets. Datasets represent the data model behind Power BI reports.

OpenAPI Specification

power-bi-datasets-api-openapi.yml Raw ↑
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

# --- 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