Power BI · Schema
Power BI Dataset
Schema for a Power BI dataset resource as returned by the Power BI REST API. A dataset represents the data model that underpins reports and dashboards, including tables, columns, measures, relationships, and data source configuration.
AnalyticsBusiness IntelligenceDashboardsData AnalysisReportingVisualization
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier of the dataset, assigned by the Power BI service |
| name | string | The display name of the dataset |
| addRowsAPIEnabled | boolean | Whether the dataset supports the push rows API for real-time data ingestion |
| configuredBy | string | The email address of the user who configured or last modified the dataset |
| isRefreshable | boolean | Whether the dataset supports scheduled or on-demand refresh |
| isEffectiveIdentityRequired | boolean | Whether an effective identity (row-level security identity) is required when generating embed tokens |
| isEffectiveIdentityRolesRequired | boolean | Whether RLS role specification is required in effective identity for embed tokens |
| isOnPremGatewayRequired | boolean | Whether the dataset requires an on-premises data gateway to connect to its data sources |
| targetStorageMode | string | The storage mode that determines how data is stored and queried |
| defaultMode | string | The default mode for push datasets |
| createdDate | string | The UTC date and time when the dataset was first created |
| contentProviderType | string | The type of content provider that generated this dataset |
| createReportEmbedURL | string | The URL to create an embedded report connected to this dataset |
| qnaEmbedURL | string | The URL for the Q&A natural language embedded experience |
| webUrl | string | The web URL for accessing the dataset in the Power BI service |
| tables | array | The tables that make up the dataset schema |
| relationships | array | The relationships between tables in the dataset model |
| datasources | array | The data sources used by the dataset |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://learn.microsoft.com/schemas/power-bi/dataset.json",
"title": "Power BI Dataset",
"description": "Schema for a Power BI dataset resource as returned by the Power BI REST API. A dataset represents the data model that underpins reports and dashboards, including tables, columns, measures, relationships, and data source configuration.",
"type": "object",
"required": ["name", "tables"],
"properties": {
"id": {
"type": "string",
"format": "uuid",
"description": "The unique identifier of the dataset, assigned by the Power BI service"
},
"name": {
"type": "string",
"description": "The display name of the dataset",
"minLength": 1,
"maxLength": 256
},
"addRowsAPIEnabled": {
"type": "boolean",
"description": "Whether the dataset supports the push rows API for real-time data ingestion",
"default": false
},
"configuredBy": {
"type": "string",
"description": "The email address of the user who configured or last modified the dataset"
},
"isRefreshable": {
"type": "boolean",
"description": "Whether the dataset supports scheduled or on-demand refresh",
"default": false
},
"isEffectiveIdentityRequired": {
"type": "boolean",
"description": "Whether an effective identity (row-level security identity) is required when generating embed tokens",
"default": false
},
"isEffectiveIdentityRolesRequired": {
"type": "boolean",
"description": "Whether RLS role specification is required in effective identity for embed tokens",
"default": false
},
"isOnPremGatewayRequired": {
"type": "boolean",
"description": "Whether the dataset requires an on-premises data gateway to connect to its data sources",
"default": false
},
"targetStorageMode": {
"type": "string",
"description": "The storage mode that determines how data is stored and queried",
"enum": ["Import", "DirectQuery", "Dual", "PushDataset"]
},
"defaultMode": {
"type": "string",
"description": "The default mode for push datasets",
"enum": ["Push", "Streaming", "PushStreaming"]
},
"createdDate": {
"type": "string",
"format": "date-time",
"description": "The UTC date and time when the dataset was first created"
},
"contentProviderType": {
"type": "string",
"description": "The type of content provider that generated this dataset"
},
"createReportEmbedURL": {
"type": "string",
"format": "uri",
"description": "The URL to create an embedded report connected to this dataset"
},
"qnaEmbedURL": {
"type": "string",
"format": "uri",
"description": "The URL for the Q&A natural language embedded experience"
},
"webUrl": {
"type": "string",
"format": "uri",
"description": "The web URL for accessing the dataset in the Power BI service"
},
"tables": {
"type": "array",
"description": "The tables that make up the dataset schema",
"minItems": 1,
"items": {
"$ref": "#/$defs/Table"
}
},
"relationships": {
"type": "array",
"description": "The relationships between tables in the dataset model",
"items": {
"$ref": "#/$defs/Relationship"
}
},
"datasources": {
"type": "array",
"description": "The data sources used by the dataset",
"items": {
"$ref": "#/$defs/Datasource"
}
}
},
"$defs": {
"Table": {
"type": "object",
"description": "A table in the Power BI dataset model, containing columns, measures, and optionally rows for push datasets",
"required": ["name", "columns"],
"properties": {
"name": {
"type": "string",
"description": "The name of the table, used in DAX expressions and API references",
"minLength": 1,
"maxLength": 256
},
"columns": {
"type": "array",
"description": "The columns defined in this table",
"minItems": 1,
"items": {
"$ref": "#/$defs/Column"
}
},
"rows": {
"type": "array",
"description": "Data rows in the table (used for push datasets)",
"items": {
"type": "object"
}
},
"measures": {
"type": "array",
"description": "DAX measures defined on this table",
"items": {
"$ref": "#/$defs/Measure"
}
},
"isHidden": {
"type": "boolean",
"description": "Whether the table is hidden from report authors",
"default": false
}
}
},
"Column": {
"type": "object",
"description": "A column in a dataset table",
"required": ["name", "dataType"],
"properties": {
"name": {
"type": "string",
"description": "The column name used in DAX expressions",
"minLength": 1,
"maxLength": 256
},
"dataType": {
"type": "string",
"description": "The data type of the column values",
"enum": ["Int64", "Double", "Boolean", "Datetime", "String", "Decimal"]
},
"formatString": {
"type": "string",
"description": "A format string controlling how column values are displayed (e.g. '#,##0.00' for numbers)"
},
"sortByColumn": {
"type": "string",
"description": "The name of another column used to sort this column's values"
},
"dataCategory": {
"type": "string",
"description": "The data category providing semantic meaning to the column (e.g. Address, City, Country)"
},
"isHidden": {
"type": "boolean",
"description": "Whether the column is hidden from report authors",
"default": false
},
"summarizeBy": {
"type": "string",
"description": "The default aggregation function for the column",
"enum": ["sum", "count", "distinctCount", "min", "max", "average", "none"]
}
}
},
"Measure": {
"type": "object",
"description": "A DAX measure defined on a dataset table",
"required": ["name", "expression"],
"properties": {
"name": {
"type": "string",
"description": "The display name of the measure",
"minLength": 1,
"maxLength": 256
},
"expression": {
"type": "string",
"description": "The DAX expression that defines the measure calculation",
"minLength": 1
},
"formatString": {
"type": "string",
"description": "A format string controlling how the measure value is displayed"
},
"description": {
"type": "string",
"description": "A description of what the measure calculates"
},
"isHidden": {
"type": "boolean",
"description": "Whether the measure is hidden from report authors",
"default": false
}
}
},
"Relationship": {
"type": "object",
"description": "A relationship between two tables in the dataset model",
"required": ["name", "fromTable", "fromColumn", "toTable", "toColumn"],
"properties": {
"name": {
"type": "string",
"description": "The unique name of the relationship"
},
"fromTable": {
"type": "string",
"description": "The name of the source (many-side) table"
},
"fromColumn": {
"type": "string",
"description": "The name of the column in the source table"
},
"toTable": {
"type": "string",
"description": "The name of the target (one-side) table"
},
"toColumn": {
"type": "string",
"description": "The name of the column in the target table"
},
"crossFilteringBehavior": {
"type": "string",
"description": "The cross-filtering direction for the relationship",
"enum": ["OneDirection", "BothDirections", "Automatic"],
"default": "OneDirection"
}
}
},
"Datasource": {
"type": "object",
"description": "A data source used by the dataset",
"properties": {
"datasourceType": {
"type": "string",
"description": "The type of data source (e.g. Sql, AnalysisServices, File, Web)"
},
"connectionDetails": {
"type": "object",
"description": "Connection details for the data source",
"properties": {
"server": {
"type": "string",
"description": "The server address"
},
"database": {
"type": "string",
"description": "The database name"
},
"url": {
"type": "string",
"format": "uri",
"description": "The connection URL for web-based data sources"
},
"path": {
"type": "string",
"description": "The file path for file-based data sources"
}
}
},
"datasourceId": {
"type": "string",
"format": "uuid",
"description": "The unique identifier of the bound data source"
},
"gatewayId": {
"type": "string",
"format": "uuid",
"description": "The gateway identifier if using an on-premises data gateway"
}
}
}
}
}