Back to Knowledge Base

Connect to Power BI: XMLA and DAX

Zebra AI offers multiple ways to bring your cloud‑hosted Power BI semantic models data into stories. Depending on your workspace and dataset, you’ll use either the XMLA endpoint (Premium/PPU) or the standard DAX API (non‑Premium). Zebra AI detects what’s available and routes you automatically.

When you’ll see each option

  • XMLA endpoint: Available for Premium/PPU workspaces. Opens a model‑aware selection UI which builds the corresponding DAX query for retrieval automatically.
  • DAX API: Used when XMLA isn’t available. Opens a lightweight DAX query experience, where you’ll have to input a DAX query manually.
PBI Workspace selection screen with Premium capacity highlighted (indicated by crown)

XMLA (Premium/PPU): model‑aware, larger extracts

  • Selection UI: Browse tables and columns from your dataset model, choose aggregations where relevant, and run immediately.
  • AI suggestions: Click “Suggest columns” to get a compact, high‑signal set (prioritizes one core datetime, favors descriptive fields, includes a few key measures).
  • Scale and experience:
    • Streams results with progress and cancellation.
    • Designed for bigger pulls than DAX.
    • Limit: up to 10,000,000 values per query.
    • Best for: curated extracts from governed models, faster iteration on larger selections.
XMLA endpoint data selection UI

DAX (non‑Premium): quick queries with API limits

Key Power BI DAX API constraints to keep in mind:

  • Not supported: datasets hosted in Azure Analysis Services, or live connection to on‑prem Azure Analysis Services models.
  • One query per API call; one table request per query.
  • Result size caps:
    • Max 100,000 rows OR 1,000,000 values per query (whichever hits first).
  • Practical example: 5 columns → up to 100k rows; 20 columns → up to 50k rows (1M ÷ 20).
  • Max 15 MB per query; once exceeded, the current row completes and no more rows are written.
  • Authentication:
    • Service Principals require tenant setting “Allow service principals to use Power BI APIs.”
    • Service Principals aren’t supported for datasets with RLS or with SSO enabled.
    • Query type: Only DAX queries; MDX, INFO functions, and DMV queries aren’t supported.

Tip: With DAX, keep queries targeted—select only the columns you need, aggregate early, and consider multiple small pulls if necessary.

DAX input for non-premium workspaces

Security, privacy, and data handling

  • Credentials: Access tokens are used only to execute your requests and are not stored in our database.
  • Session cleanup: Zebra AI disconnects and discards any temporarily retrieved data when the session ends.
  • Safety: Zebra AI performs read‑only operations against your Power BI data.

Typical workflow

  1. Pick workspace and dataset; Zebra AI opens XMLA (Premium) or DAX (non‑Premium).
  2. XMLA: optionally “Suggest columns,” refine selection, and run. DAX: write/run a concise query.
  3. Zebra AI streams results with progress and loads them into your story.
  4. Save your dataset selection to continue the same story in later sessions without re‑configuring.