Ensure the tenant setting Dataset Execute Queries REST API is enabled in the Power BI Admin portal under Integration settings, and that the calling user has both Read and Build permissions on the target semantic model
Obtain an OAuth 2.0 access token for the Power BI service scope (https://analysis.windows.net/powerbi/api/.default) and include it as a Bearer token in the Authorization header
POST a JSON body with a queries array containing your DAX expression to https://api.powerbi.com/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/executeDaxQueries
The response body is one or more Apache Arrow IPC streams in binary format; use an Apache Arrow client library (e.g., pyarrow in Python) to deserialize the schema and record batches into a dataframe
Respect the rate limit of 120 query requests per minute per user; implement exponential backoff and handle 429 responses to avoid throttling in high-frequency scenarios
Known gotchas
The executeDaxQueries endpoint returns results in Apache Arrow IPC format exclusively; attempting to parse the raw binary response as JSON will fail — always use an Arrow-aware client library
Only DAX queries and INFO functions are supported; MDX and DMV queries routed to this endpoint will return an error — use XMLA-based tools (e.g., SSMS with the XMLA endpoint URL) for MDX or DMV access
The groupId in the endpoint URL refers to the Power BI workspace ID, not a dataset group; using the wrong GUID will produce a 404 even if the datasetId is correct
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp