Power BI · Arazzo Workflow

Power BI Inventory a Workspace's Content

Version 1.0.0

Find a workspace by OData filter and enumerate every dataset, report, dashboard, and import it contains.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub AnalyticsBusiness IntelligenceDashboardsData AnalysisReportingVisualizationArazzoWorkflows

Provider

power-bi

Workflows

workspace-content-inventory
Resolve a workspace by name and list all of its content.
Locates a workspace using an OData filter and enumerates its datasets, reports, dashboards, and imports into a single inventory result.
5 steps inputs: workspaceFilter outputs: dashboards, datasets, groupId, groupName, imports, reports
1
findWorkspace
Filter the workspace list down to the target workspace and capture its identifier, which every content collection below is scoped by.
2
inventoryDatasets
List the workspace's datasets, the models that every report and dashboard in the workspace ultimately depends on.
3
inventoryReports
List the workspace's reports, each of which carries the datasetId it is bound to so dataset-to-report dependencies can be mapped.
4
inventoryDashboards
List the workspace's dashboards, including their data classification.
5
inventoryImports
List the workspace's imports to record how the content arrived and whether any import is still publishing or has failed.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Power BI Inventory a Workspace's Content
  summary: Find a workspace by OData filter and enumerate every dataset, report, dashboard, and import it contains.
  description: >-
    The governance pattern behind any Power BI tenant audit or content
    migration. Workspace-scoped content is exposed through separate collection
    operations, so a full picture of what a workspace holds requires resolving
    the workspace identifier and then walking each collection in turn. This
    workflow filters the workspace list by name, then inventories the datasets,
    reports, dashboards, and imports underneath it. Every step spells out its
    request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
  x-realizes-capability-ids:
  - BC-610.50
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-610.50
      capability_name: Analytics & BI Management
      spec: power-bi-datasets-api-openapi.yml
      confidence: 0.85
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: dashboardsApi
  url: ../openapi/power-bi-dashboards-api-openapi.yml
  type: openapi
- name: datasetsApi
  url: ../openapi/power-bi-datasets-api-openapi.yml
  type: openapi
- name: groupsApi
  url: ../openapi/power-bi-groups-api-openapi.yml
  type: openapi
workflows:
- workflowId: workspace-content-inventory
  summary: Resolve a workspace by name and list all of its content.
  description: >-
    Locates a workspace using an OData filter and enumerates its datasets,
    reports, dashboards, and imports into a single inventory result.
  inputs:
    type: object
    required:
    - workspaceFilter
    properties:
      workspaceFilter:
        type: string
        description: >-
          An OData filter expression selecting the workspace, for example
          "name eq 'Finance Reporting'".
  steps:
  - stepId: findWorkspace
    description: >-
      Filter the workspace list down to the target workspace and capture its
      identifier, which every content collection below is scoped by.
    operationId: getGroups
    parameters:
    - name: "$filter"
      in: query
      value: $inputs.workspaceFilter
    - name: "$top"
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    - context: $response.body
      condition: $.value.length > 0
      type: jsonpath
    outputs:
      groupId: $response.body#/value/0/id
      groupName: $response.body#/value/0/name
      isOnDedicatedCapacity: $response.body#/value/0/isOnDedicatedCapacity
      capacityId: $response.body#/value/0/capacityId
  - stepId: inventoryDatasets
    description: >-
      List the workspace's datasets, the models that every report and dashboard
      in the workspace ultimately depends on.
    operationId: getDatasetsInGroup
    parameters:
    - name: groupId
      in: path
      value: $steps.findWorkspace.outputs.groupId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      datasets: $response.body#/value
  - stepId: inventoryReports
    description: >-
      List the workspace's reports, each of which carries the datasetId it is
      bound to so dataset-to-report dependencies can be mapped.
    operationId: getReportsInGroup
    parameters:
    - name: groupId
      in: path
      value: $steps.findWorkspace.outputs.groupId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      reports: $response.body#/value
  - stepId: inventoryDashboards
    description: List the workspace's dashboards, including their data classification.
    operationId: getDashboardsInGroup
    parameters:
    - name: groupId
      in: path
      value: $steps.findWorkspace.outputs.groupId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      dashboards: $response.body#/value
  - stepId: inventoryImports
    description: >-
      List the workspace's imports to record how the content arrived and
      whether any import is still publishing or has failed.
    operationId: getImportsInGroup
    parameters:
    - name: groupId
      in: path
      value: $steps.findWorkspace.outputs.groupId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      imports: $response.body#/value
  outputs:
    groupId: $steps.findWorkspace.outputs.groupId
    groupName: $steps.findWorkspace.outputs.groupName
    datasets: $steps.inventoryDatasets.outputs.datasets
    reports: $steps.inventoryReports.outputs.reports
    dashboards: $steps.inventoryDashboards.outputs.dashboards
    imports: $steps.inventoryImports.outputs.imports

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • 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.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/power-bi-workspace-content-inventory-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

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.