Microsoft Power BI

App · Analytics · 20 actions

Work with the reports, semantic models and dashboards in your Power BI My workspace: push rows into a dataset from any workflow, run DAX queries and use the results, start and schedule refreshes, check refresh history, and clone, create or clean up reports and dashboards.

Actions

ActionWhat it does
Add rowsAdd rows to a push dataset's table: up to 10,000 per step, each an object of column name to value.
Clone a reportCopy a report within My workspace under a new name, optionally pointing the copy at a different semantic model.
Create a dashboardCreate an empty dashboard in My workspace.
Create a push datasetCreate a semantic model in My workspace that you fill by adding rows from a workflow, with one table.
Delete a dashboardPermanently delete a dashboard from My workspace.
Delete a reportPermanently delete a report from My workspace.
Delete a semantic modelPermanently delete a semantic model (dataset) from My workspace.
Delete all rows in a tableDelete every row in a push dataset's table.
Get a reportGet one report: its name, type, link and the semantic model it reads from.
Get a semantic modelGet one semantic model (dataset): who configured it, when it was created, and whether it can be refreshed or take rows.
Get refresh scheduleGet an imported semantic model's scheduled refresh: whether it is on, and on which days and at which times it runs.
List dashboardsList the dashboards in your My workspace.
List push dataset tablesList a push dataset's tables and their columns.
List refresh historyList a semantic model's recent refreshes, newest first, with their status and any error.
List report pagesList a report's pages in the order they appear.
List reportsList the reports in your My workspace, including reports shared with you and reports from apps (their names start with [App]).
List semantic modelsList the semantic models (datasets) in your My workspace, imported models and push datasets alike.
Refresh a semantic modelStart a refresh of an imported semantic model.
Run a DAX queryRun one DAX query against a semantic model and get the rows back.
Update refresh scheduleChange an imported semantic model's scheduled refresh.

Add rows

Add rows to a push dataset's table: up to 10,000 per step, each an object of column name to value.

Inputs

Push datasetdataset_idtextRequired
A push dataset in your My workspace, such as one made with 'Create a push dataset'. Pick one, or paste its id.
Table nametable_nametextRequired
The table's name in the push dataset, exactly as it was created.
RowsrowslistRequired
The rows to add. Each row maps column names to values; dates as text, such as 07/30/2014.

Outputs

dataset_idtext
rows_addednumber
table_nametext
Example output
{
  "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "rows_added": 2,
  "table_name": "Sales"
}

Clone a report

Copy a report within My workspace under a new name, optionally pointing the copy at a different semantic model. You need edit rights on the report, and Build permission on the other model if you choose one.

Inputs

Reportreport_idtextRequired
A report in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
New report namenametextRequired
The name for the copy.
Use a different semantic modeltarget_dataset_idtext
Leave blank to keep the original report's semantic model. Otherwise pick the model the copy should read.

Outputs

app_idtext
dataset_idtext
The semantic model the report reads. Empty for paginated reports.
descriptiontext
embed_urltext
formattext
PBIR, PBIRLegacy or RDL.
idtext
The report id.
is_owned_by_metrue/false
nametext
original_report_idtext
report_typetext
PowerBIReport or PaginatedReport.
web_urltext
Example output
{
  "app_id": null,
  "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "description": "",
  "embed_url": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715",
  "format": "PBIR",
  "id": "a9d1a8f4-7c21-4e4b-8d1e-5f0f6b1c2d3e",
  "is_owned_by_me": true,
  "name": "Sales overview (copy)",
  "original_report_id": null,
  "report_type": "PowerBIReport",
  "web_url": "https://app.powerbi.com/groups/me/reports/5b218778-e7a5-4d73-8187-f10824047715"
}

Create a dashboard

Create an empty dashboard in My workspace. Pin tiles to it from reports in Power BI.

Inputs

Dashboard namenametextRequired
The name shown in My workspace.

Outputs

app_idtext
embed_urltext
idtext
The dashboard id.
is_read_onlytrue/false
nametext
web_urltext
Example output
{
  "app_id": null,
  "embed_url": "https://app.powerbi.com/dashboardEmbed?dashboardId=69ffaa6c-b36d-4d01-96f5-1ed67c64d4af",
  "id": "69ffaa6c-b36d-4d01-96f5-1ed67c64d4af",
  "is_read_only": false,
  "name": "Weekly sales",
  "web_url": "https://app.powerbi.com/groups/me/dashboards/69ffaa6c-b36d-4d01-96f5-1ed67c64d4af"
}

Create a push dataset

Create a semantic model in My workspace that you fill by adding rows from a workflow, with one table. Build reports on it in Power BI. Up to 75 columns.

Inputs

Dataset namenametextRequired
The name shown in My workspace.
Table nametable_nametextRequired
The name of the dataset's table, up to 100 characters.
ColumnscolumnsobjectRequired
Each column's name and its data type: string, Int64, Double, bool or DateTime.
Row retentionretention_policytext
Whether old rows are dropped automatically.One of: None (Keep every row until it is deleted), basicFIFO (Keep a rolling window of the newest rows, dropping the oldest).

Outputs

default_retention_policytext
idtext
The new dataset's id.
nametext
table_nametext
Example output
{
  "default_retention_policy": "None",
  "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "name": "Sales",
  "table_name": "Sales"
}

Delete a dashboard

Permanently delete a dashboard from My workspace. The reports its tiles came from are not affected.

Inputs

Dashboarddashboard_idtextRequired
A dashboard in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.

Outputs

dashboard_idtext
deletedtrue/false
Example output
{
  "dashboard_id": "69ffaa6c-b36d-4d01-96f5-1ed67c64d4af",
  "deleted": true
}

Delete a report

Permanently delete a report from My workspace. Its semantic model is not deleted.

Inputs

Reportreport_idtextRequired
A report in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.

Outputs

deletedtrue/false
report_idtext
Example output
{
  "deleted": true,
  "report_id": "5b218778-e7a5-4d73-8187-f10824047715"
}

Delete a semantic model

Permanently delete a semantic model (dataset) from My workspace. Reports built on it may stop working or be removed with it.

Inputs

Semantic modeldataset_idtextRequired
A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.

Outputs

dataset_idtext
deletedtrue/false
Example output
{
  "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "deleted": true
}

Delete all rows in a table

Delete every row in a push dataset's table. The table and its columns stay. This cannot be undone and cannot delete only some rows.

Inputs

Push datasetdataset_idtextRequired
A push dataset in your My workspace, such as one made with 'Create a push dataset'. Pick one, or paste its id.
Table nametable_nametextRequired
The table's name in the push dataset, exactly as it was created.

Outputs

clearedtrue/false
dataset_idtext
table_nametext
Example output
{
  "cleared": true,
  "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "table_name": "Sales"
}

Get a report

Get one report: its name, type, link and the semantic model it reads from.

Inputs

Reportreport_idtextRequired
A report in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.

Outputs

app_idtext
dataset_idtext
The semantic model the report reads. Empty for paginated reports.
descriptiontext
embed_urltext
formattext
PBIR, PBIRLegacy or RDL.
idtext
The report id.
is_owned_by_metrue/false
nametext
original_report_idtext
report_typetext
PowerBIReport or PaginatedReport.
web_urltext
Example output
{
  "app_id": null,
  "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "description": "",
  "embed_url": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715",
  "format": "PBIR",
  "id": "5b218778-e7a5-4d73-8187-f10824047715",
  "is_owned_by_me": true,
  "name": "Sales overview",
  "original_report_id": null,
  "report_type": "PowerBIReport",
  "web_url": "https://app.powerbi.com/groups/me/reports/5b218778-e7a5-4d73-8187-f10824047715"
}

Get a semantic model

Get one semantic model (dataset): who configured it, when it was created, and whether it can be refreshed or take rows.

Inputs

Semantic modeldataset_idtextRequired
A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.

Outputs

add_rows_api_enabledtrue/false
True for a push dataset, which takes rows through 'Add rows'.
configured_bytext
create_report_embed_urltext
created_datetext
descriptiontext
idtext
The semantic model (dataset) id.
is_on_prem_gateway_requiredtrue/false
is_refreshabletrue/false
nametext
qna_embed_urltext
target_storage_modetext
web_urltext
Example output
{
  "add_rows_api_enabled": false,
  "configured_by": "ada@contoso.com",
  "create_report_embed_url": null,
  "created_date": "2026-09-21T09:00:00.000Z",
  "description": null,
  "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "is_on_prem_gateway_required": false,
  "is_refreshable": true,
  "name": "Sales",
  "qna_embed_url": null,
  "target_storage_mode": "Abf",
  "web_url": "https://app.powerbi.com/groups/me/datasets/cfafbeb1-8037-4d0c-896e-a46fb27ff229"
}

Get refresh schedule

Get an imported semantic model's scheduled refresh: whether it is on, and on which days and at which times it runs.

Inputs

Semantic modeldataset_idtextRequired
A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.

Outputs

dataset_idtext
dayslist
enabledtrue/false
local_time_zone_idtext
notify_optiontext
timeslist
Example output
{
  "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "days": [
    "Monday",
    "Thursday"
  ],
  "enabled": true,
  "local_time_zone_id": "UTC",
  "notify_option": "MailOnFailure",
  "times": [
    "07:00",
    "16:30"
  ]
}

List dashboards

List the dashboards in your My workspace.

Inputs

None.

Outputs

countnumber
How many were returned.
dashboardslist
The dashboards found.
Example output
{
  "count": 1,
  "dashboards": [
    {
      "app_id": null,
      "embed_url": "https://app.powerbi.com/dashboardEmbed?dashboardId=69ffaa6c-b36d-4d01-96f5-1ed67c64d4af",
      "id": "69ffaa6c-b36d-4d01-96f5-1ed67c64d4af",
      "is_read_only": false,
      "name": "Weekly sales",
      "web_url": "https://app.powerbi.com/groups/me/dashboards/69ffaa6c-b36d-4d01-96f5-1ed67c64d4af"
    }
  ]
}

List push dataset tables

List a push dataset's tables and their columns. Works on push datasets only; query an imported model with DAX instead.

Inputs

Push datasetdataset_idtextRequired
A push dataset in your My workspace, such as one made with 'Create a push dataset'. Pick one, or paste its id.

Outputs

countnumber
How many were returned.
tableslist
The dataset's tables.
Example output
{
  "count": 1,
  "tables": [
    {
      "columns": [
        {
          "data_type": "string",
          "name": "Product"
        },
        {
          "data_type": "Double",
          "name": "Amount"
        }
      ],
      "description": null,
      "is_hidden": false,
      "name": "Sales"
    }
  ]
}

List refresh history

List a semantic model's recent refreshes, newest first, with their status and any error. Power BI keeps between 20 and 60 entries, and none for models refreshed from OneDrive.

Inputs

Semantic modeldataset_idtextRequired
A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
How manytopnumber
Return only the newest this many. Blank returns all kept.From 1 to 60.

Outputs

countnumber
How many were returned.
refresheslist
Recent refreshes, newest first.
Example output
{
  "count": 1,
  "refreshes": [
    {
      "attempt_count": 1,
      "end_time": "2026-09-21T09:01:10.000Z",
      "refresh_type": "ViaApi",
      "request_id": "9399bb89-25d1-44f8-8576-136d7e9014b1",
      "service_exception_json": null,
      "start_time": "2026-09-21T09:00:00.000Z",
      "status": "Completed"
    }
  ]
}

List report pages

List a report's pages in the order they appear.

Inputs

Reportreport_idtextRequired
A report in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.

Outputs

countnumber
How many were returned.
pageslist
The report's pages, in order.
Example output
{
  "count": 1,
  "pages": [
    {
      "display_name": "Page 1",
      "name": "ReportSection",
      "order": 0
    }
  ]
}

List reports

List the reports in your My workspace, including reports shared with you and reports from apps (their names start with [App]).

Inputs

None.

Outputs

countnumber
How many were returned.
reportslist
The reports found.
Example output
{
  "count": 1,
  "reports": [
    {
      "app_id": null,
      "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
      "description": "",
      "embed_url": "https://app.powerbi.com/reportEmbed?reportId=5b218778-e7a5-4d73-8187-f10824047715",
      "format": "PBIR",
      "id": "5b218778-e7a5-4d73-8187-f10824047715",
      "is_owned_by_me": true,
      "name": "Sales overview",
      "original_report_id": null,
      "report_type": "PowerBIReport",
      "web_url": "https://app.powerbi.com/groups/me/reports/5b218778-e7a5-4d73-8187-f10824047715"
    }
  ]
}

List semantic models

List the semantic models (datasets) in your My workspace, imported models and push datasets alike.

Inputs

None.

Outputs

countnumber
How many were returned.
datasetslist
The semantic models found.
Example output
{
  "count": 1,
  "datasets": [
    {
      "add_rows_api_enabled": false,
      "configured_by": "ada@contoso.com",
      "create_report_embed_url": null,
      "created_date": "2026-09-21T09:00:00.000Z",
      "description": null,
      "id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
      "is_on_prem_gateway_required": false,
      "is_refreshable": true,
      "name": "Sales",
      "qna_embed_url": null,
      "target_storage_mode": "Abf",
      "web_url": "https://app.powerbi.com/groups/me/datasets/cfafbeb1-8037-4d0c-896e-a46fb27ff229"
    }
  ]
}

Refresh a semantic model

Start a refresh of an imported semantic model. Power BI runs it in the background; use 'List refresh history' to see how it went. On shared capacity (every Free and Pro workspace) a model can be refreshed at most eight times a day, counting scheduled refreshes. Push datasets cannot be refreshed.

Inputs

Semantic modeldataset_idtextRequired
A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
Email notificationnotify_optiontext
Whether Power BI emails you about this refresh.One of: NoNotification (Don't email anyone), MailOnFailure (Email me if it fails), MailOnCompletion (Email me when it finishes). Default: NoNotification.

Outputs

acceptedtrue/false
dataset_idtext
notify_optiontext
request_idtext
Matches request_id in 'List refresh history'.
Example output
{
  "accepted": true,
  "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "notify_option": "NoNotification",
  "request_id": "9399bb89-25d1-44f8-8576-136d7e9014b1"
}

Run a DAX query

Run one DAX query against a semantic model and get the rows back. Column names come back qualified, such as 'Sales[Amount]'. Limited to one table of 100,000 rows or 1,000,000 values. Your Power BI admin must have the tenant setting 'Dataset Execute Queries REST API' on.

Inputs

Semantic modeldataset_idtextRequired
A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
DAX queryquerytextRequired
A DAX query starting with EVALUATE (or DEFINE).
Include empty valuesinclude_nullstrue/false
Return blank cells as null instead of leaving the column out of that row.Default: false.

Outputs

columnslist
The column names seen, in order.
row_countnumber
rowslist
One object per row, keyed by qualified column name.
Example output
{
  "columns": [
    "Sales[Product]",
    "Sales[Amount]"
  ],
  "row_count": 1,
  "rows": [
    {
      "Sales[Amount]": 9.5,
      "Sales[Product]": "Widget"
    }
  ]
}

Update refresh schedule

Change an imported semantic model's scheduled refresh. Only the fields you fill in change. Turning the schedule off changes nothing else, as Power BI requires. You must own the model, and shared capacity allows up to eight times a day.

Inputs

Semantic modeldataset_idtextRequired
A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
Scheduleenabledtext
Turn the schedule on or off. Leave blank to keep it as it is.One of: true (Turn the schedule on), false (Turn the schedule off).
Daysdaystext
The days to refresh on. Leave blank to keep the current days.One or more of: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
Timestimestext
The times of day to refresh, in the time zone below. Leave blank to keep the current times.One or more of: 00:00, 00:30, 01:00, 01:30, 02:00, 02:30, 03:00, 03:30, 04:00, 04:30, and 38 more.
Time zonelocal_time_zone_idtext
A Windows time zone id. Leave blank to keep the current one.
Email on failurenotify_optiontext
Whether the owner is emailed when a scheduled refresh fails.One of: NoNotification (Don't email anyone), MailOnFailure (Email the owner if a scheduled refresh fails).

Outputs

dataset_idtext
dayslist
enabledtrue/false
local_time_zone_idtext
notify_optiontext
timeslist
Example output
{
  "dataset_id": "cfafbeb1-8037-4d0c-896e-a46fb27ff229",
  "days": [
    "Monday",
    "Thursday"
  ],
  "enabled": true,
  "local_time_zone_id": "UTC",
  "notify_option": "MailOnFailure",
  "times": [
    "07:00",
    "16:30"
  ]
}

On this page