Power BI Dashboards API

Manage dashboards including listing, creating, and retrieving tiles. Dashboards are single-page canvases with pinned visualizations.

OpenAPI Specification

power-bi-dashboards-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Power BI REST Dashboards 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: Dashboards
  description: Manage dashboards including listing, creating, and retrieving tiles. Dashboards are single-page canvases with pinned visualizations.
paths:
  /dashboards:
    get:
      operationId: getDashboards
      summary: Power Bi List Dashboards
      description: Returns a list of dashboards from the user's My Workspace. Each dashboard includes its name, web URL, embed URL, and whether it is read-only.
      tags:
      - Dashboards
      responses:
        '200':
          description: List of dashboards
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardList'
              examples:
                Getdashboards200Example:
                  summary: Default getDashboards 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - id: abc123
                      displayName: example_value
                      isReadOnly: true
                      webUrl: https://www.example.com
                      embedUrl: https://www.example.com
                      dataClassification: example_value
                    '@odata.context': example_value
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Getdashboards401Example:
                  summary: Default getDashboards 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: createDashboard
      summary: Power Bi Create a Dashboard
      description: Creates a new empty dashboard in the user's My Workspace. After creating the dashboard, use tile pinning to add content.
      tags:
      - Dashboards
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDashboardRequest'
            examples:
              CreatedashboardRequestExample:
                summary: Default createDashboard request
                x-microcks-default: true
                value:
                  name: Example Title
      responses:
        '201':
          description: Dashboard created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
              examples:
                Createdashboard201Example:
                  summary: Default createDashboard 201 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    displayName: example_value
                    isReadOnly: true
                    webUrl: https://www.example.com
                    embedUrl: https://www.example.com
                    dataClassification: example_value
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Createdashboard401Example:
                  summary: Default createDashboard 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
  /dashboards/{dashboardId}:
    get:
      operationId: getDashboard
      summary: Power Bi Get a Dashboard
      description: Returns the specified dashboard from the user's My Workspace, including its name, embed URL, and configuration.
      tags:
      - Dashboards
      parameters:
      - $ref: '#/components/parameters/dashboardId'
      responses:
        '200':
          description: Dashboard details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dashboard'
              examples:
                Getdashboard200Example:
                  summary: Default getDashboard 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    displayName: example_value
                    isReadOnly: true
                    webUrl: https://www.example.com
                    embedUrl: https://www.example.com
                    dataClassification: example_value
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Getdashboard401Example:
                  summary: Default getDashboard 401 response
                  x-microcks-default: true
                  value:
                    error:
                      code: example_value
                      message: example_value
                      details:
                      - message: example_value
                        target: example_value
        '404':
          description: Dashboard not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Getdashboard404Example:
                  summary: Default getDashboard 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
  /dashboards/{dashboardId}/tiles:
    get:
      operationId: getTiles
      summary: Power Bi Get Dashboard Tiles
      description: Returns a list of tiles within the specified dashboard. Each tile represents a pinned visualization and includes its embed URL, report and dataset references, and configuration.
      tags:
      - Dashboards
      parameters:
      - $ref: '#/components/parameters/dashboardId'
      responses:
        '200':
          description: List of tiles
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TileList'
              examples:
                Gettiles200Example:
                  summary: Default getTiles 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - id: abc123
                      title: Example Title
                      subTitle: example_value
                      embedUrl: https://www.example.com
                      embedData: example_value
                      reportId: '500123'
                      datasetId: '500123'
                      rowSpan: 10
                      colSpan: 10
                    '@odata.context': example_value
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Gettiles401Example:
                  summary: Default getTiles 401 response
                  x-microcks-default: true
                  value:
                    error:
                      code: example_value
                      message: example_value
                      details:
                      - message: example_value
                        target: example_value
        '404':
          description: Dashboard not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Gettiles404Example:
                  summary: Default getTiles 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
  /dashboards/{dashboardId}/tiles/{tileId}:
    get:
      operationId: getTile
      summary: Power Bi Get a Dashboard Tile
      description: Returns the specified tile from the specified dashboard, including its embed URL and configuration details.
      tags:
      - Dashboards
      parameters:
      - $ref: '#/components/parameters/dashboardId'
      - $ref: '#/components/parameters/tileId'
      responses:
        '200':
          description: Tile details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tile'
              examples:
                Gettile200Example:
                  summary: Default getTile 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    title: Example Title
                    subTitle: example_value
                    embedUrl: https://www.example.com
                    embedData: example_value
                    reportId: '500123'
                    datasetId: '500123'
                    rowSpan: 10
                    colSpan: 10
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Gettile401Example:
                  summary: Default getTile 401 response
                  x-microcks-default: true
                  value:
                    error:
                      code: example_value
                      message: example_value
                      details:
                      - message: example_value
                        target: example_value
        '404':
          description: Tile not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Gettile404Example:
                  summary: Default getTile 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
  /groups/{groupId}/dashboards:
    get:
      operationId: getDashboardsInGroup
      summary: Power Bi List Dashboards in a Workspace
      description: Returns a list of dashboards from the specified workspace.
      tags:
      - Dashboards
      parameters:
      - $ref: '#/components/parameters/groupId'
      responses:
        '200':
          description: List of dashboards in the workspace
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DashboardList'
              examples:
                Getdashboardsingroup200Example:
                  summary: Default getDashboardsInGroup 200 response
                  x-microcks-default: true
                  value:
                    value:
                    - id: abc123
                      displayName: example_value
                      isReadOnly: true
                      webUrl: https://www.example.com
                      embedUrl: https://www.example.com
                      dataClassification: example_value
                    '@odata.context': example_value
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                Getdashboardsingroup401Example:
                  summary: Default getDashboardsInGroup 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:
                Getdashboardsingroup404Example:
                  summary: Default getDashboardsInGroup 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:
  parameters:
    tileId:
      name: tileId
      in: path
      required: true
      description: The unique identifier of the tile
      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
    dashboardId:
      name: dashboardId
      in: path
      required: true
      description: The unique identifier of the dashboard
      schema:
        type: string
        format: uuid
  schemas:
    Dashboard:
      type: object
      description: A Power BI dashboard
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the dashboard
          example: abc123
        displayName:
          type: string
          description: The display name of the dashboard
          example: example_value
        isReadOnly:
          type: boolean
          description: Whether the dashboard is read-only
          example: true
        webUrl:
          type: string
          format: uri
          description: The web URL of the dashboard
          example: https://www.example.com
        embedUrl:
          type: string
          format: uri
          description: The embed URL for embedding the dashboard
          example: https://www.example.com
        dataClassification:
          type: string
          description: The data classification label
          example: example_value
    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
    DashboardList:
      type: object
      description: A list of Power BI dashboards
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/Dashboard'
          example: []
        '@odata.context':
          type: string
          example: example_value
    TileList:
      type: object
      description: A list of dashboard tiles
      properties:
        value:
          type: array
          items:
            $ref: '#/components/schemas/Tile'
          example: []
        '@odata.context':
          type: string
          example: example_value
    CreateDashboardRequest:
      type: object
      required:
      - name
      description: Request body for creating a dashboard
      properties:
        name:
          type: string
          description: The display name of the new dashboard
          example: Example Title
    Tile:
      type: object
      description: A tile on a Power BI dashboard
      properties:
        id:
          type: string
          format: uuid
          description: The unique identifier of the tile
          example: abc123
        title:
          type: string
          description: The display title of the tile
          example: Example Title
        subTitle:
          type: string
          description: The subtitle of the tile
          example: example_value
        embedUrl:
          type: string
          format: uri
          description: The embed URL for the tile
          example: https://www.example.com
        embedData:
          type: string
          description: Additional embed data for the tile
          example: example_value
        reportId:
          type: string
          format: uuid
          description: The ID of the report the tile is pinned from
          example: '500123'
        datasetId:
          type: string
          format: uuid
          description: The ID of the dataset used by this tile
          example: '500123'
        rowSpan:
          type: integer
          description: The number of rows the tile spans
          example: 10
        colSpan:
          type: integer
          description: The number of columns the tile spans
          example: 10
  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/