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
| Action | What it does |
|---|---|
| Add rows | Add rows to a push dataset's table: up to 10,000 per step, each an object of column name to value. |
| Clone a report | Copy a report within My workspace under a new name, optionally pointing the copy at a different semantic model. |
| Create a dashboard | Create an empty dashboard in My workspace. |
| Create a push dataset | Create a semantic model in My workspace that you fill by adding rows from a workflow, with one table. |
| Delete a dashboard | Permanently delete a dashboard from My workspace. |
| Delete a report | Permanently delete a report from My workspace. |
| Delete a semantic model | Permanently delete a semantic model (dataset) from My workspace. |
| Delete all rows in a table | Delete every row in a push dataset's table. |
| Get a report | Get one report: its name, type, link and the semantic model it reads from. |
| 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. |
| 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. |
| List dashboards | List the dashboards in your My workspace. |
| List push dataset tables | List a push dataset's tables and their columns. |
| List refresh history | List a semantic model's recent refreshes, newest first, with their status and any error. |
| List report pages | List a report's pages in the order they appear. |
| List reports | List the reports in your My workspace, including reports shared with you and reports from apps (their names start with [App]). |
| List semantic models | List the semantic models (datasets) in your My workspace, imported models and push datasets alike. |
| Refresh a semantic model | Start a refresh of an imported semantic model. |
| Run a DAX query | Run one DAX query against a semantic model and get the rows back. |
| Update refresh schedule | Change 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 dataset
dataset_idtextRequired - A push dataset in your My workspace, such as one made with 'Create a push dataset'. Pick one, or paste its id.
- Table name
table_nametextRequired - The table's name in the push dataset, exactly as it was created.
- Rows
rowslistRequired - The rows to add. Each row maps column names to values; dates as text, such as 07/30/2014.
Outputs
dataset_idtextrows_addednumbertable_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
- Report
report_idtextRequired - A report in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
- New report name
nametextRequired - The name for the copy.
- Use a different semantic model
target_dataset_idtext - Leave blank to keep the original report's semantic model. Otherwise pick the model the copy should read.
Outputs
app_idtextdataset_idtext- The semantic model the report reads. Empty for paginated reports.
descriptiontextembed_urltextformattext- PBIR, PBIRLegacy or RDL.
idtext- The report id.
is_owned_by_metrue/falsenametextoriginal_report_idtextreport_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 name
nametextRequired - The name shown in My workspace.
Outputs
app_idtextembed_urltextidtext- The dashboard id.
is_read_onlytrue/falsenametextweb_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 name
nametextRequired - The name shown in My workspace.
- Table name
table_nametextRequired - The name of the dataset's table, up to 100 characters.
- Columns
columnsobjectRequired - Each column's name and its data type: string, Int64, Double, bool or DateTime.
- Row retention
retention_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_policytextidtext- The new dataset's id.
nametexttable_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
- Dashboard
dashboard_idtextRequired - A dashboard in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
Outputs
dashboard_idtextdeletedtrue/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
- Report
report_idtextRequired - A report in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
Outputs
deletedtrue/falsereport_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 model
dataset_idtextRequired - A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
Outputs
dataset_idtextdeletedtrue/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 dataset
dataset_idtextRequired - A push dataset in your My workspace, such as one made with 'Create a push dataset'. Pick one, or paste its id.
- Table name
table_nametextRequired - The table's name in the push dataset, exactly as it was created.
Outputs
clearedtrue/falsedataset_idtexttable_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
- Report
report_idtextRequired - A report in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
Outputs
app_idtextdataset_idtext- The semantic model the report reads. Empty for paginated reports.
descriptiontextembed_urltextformattext- PBIR, PBIRLegacy or RDL.
idtext- The report id.
is_owned_by_metrue/falsenametextoriginal_report_idtextreport_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 model
dataset_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_bytextcreate_report_embed_urltextcreated_datetextdescriptiontextidtext- The semantic model (dataset) id.
is_on_prem_gateway_requiredtrue/falseis_refreshabletrue/falsenametextqna_embed_urltexttarget_storage_modetextweb_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 model
dataset_idtextRequired - A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
Outputs
dataset_idtextdayslistenabledtrue/falselocal_time_zone_idtextnotify_optiontexttimeslist
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 dataset
dataset_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 model
dataset_idtextRequired - A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
- How many
topnumber - 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
- Report
report_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 model
dataset_idtextRequired - A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
- Email notification
notify_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/falsedataset_idtextnotify_optiontextrequest_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 model
dataset_idtextRequired - A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
- DAX query
querytextRequired - A DAX query starting with EVALUATE (or DEFINE).
- Include empty values
include_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_countnumberrowslist- 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 model
dataset_idtextRequired - A semantic model (dataset) in your My workspace. Pick one, or paste its id or its app.powerbi.com URL.
- Schedule
enabledtext - 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). - Days
daystext - The days to refresh on. Leave blank to keep the current days.One or more of:
Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday. - Times
timestext - 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 zone
local_time_zone_idtext - A Windows time zone id. Leave blank to keep the current one.
- Email on failure
notify_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_idtextdayslistenabledtrue/falselocal_time_zone_idtextnotify_optiontexttimeslist
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"
]
}