---
sidebar_position: 1
sidebar_label: Power BI Desktop
title: Power BI Desktop with MotherDuck
description: Connect Power BI Desktop to MotherDuck using the Postgres endpoint for dashboards and reports.
---

import DocImage from '@site/src/components/DocImage';

:::info[Preview]
The Postgres endpoint is in [preview](/about-motherduck/feature-stages/). Features and behavior may change.
:::

:::warning[Looking for the custom connector?]
The DuckDB custom connector is a legacy approach. If you still need it, see the [legacy custom connector guide](./powerbi-custom-connector.md).
:::

## Before you start

You'll need:

- [Power BI Desktop](https://www.microsoft.com/en-us/power-platform/products/power-bi/desktop) installed on Windows
- A [MotherDuck access token](/key-tasks/authenticating-and-connecting-to-motherduck/authenticating-to-motherduck)
- Your Postgres host, which you can find at [MotherDuck Postgres settings](https://app.motherduck.com/settings/postgres) (for example, `pg.us-east-1-aws.motherduck.com`)

## Connect to MotherDuck

1. In Power BI Desktop, click **Get data**.

   <DocImage
     src="/img/integrations/powerbi-pg-get-data.png"
     alt="Power BI Get Data dialog showing PostgreSQL database connector"
     width={400}
   />

2. Search for **PostgreSQL database** in the connector list and select it.

3. Fill in the connection details:
   - **Server**: Your Postgres host (for example, `pg.us-east-1-aws.motherduck.com`). You can find this at [MotherDuck Postgres settings](https://app.motherduck.com/settings/postgres).
   - **Database**: Your database or share name in MotherDuck (for example, `sample_data`).

4. Select a data connectivity mode:
   - **DirectQuery**: Queries run against MotherDuck in real time. Best for dashboards that need up-to-date data.
   - **Import**: Loads a snapshot of the data into Power BI's in-memory model. Best when you want fast local interactions and can refresh on a schedule.

   <DocImage
     src="/img/integrations/powerbi-pg-connection.png"
     alt="Power BI PostgreSQL connection dialog with server and database fields"
     width={300}
   />

5. Click **OK**.

6. When prompted for credentials, select **Database** on the left and enter:
   - **User name**: `postgres`
   - **Password**: Your [MotherDuck access token](/key-tasks/authenticating-and-connecting-to-motherduck/authenticating-to-motherduck)

   <DocImage
     src="/img/integrations/powerbi-pg-credentials.png"
     alt="Power BI credentials dialog with user name and password fields"
     width={400}
   />

7. Click **Connect**. In the Navigator, select the tables you want to use and click **Load**.

   <DocImage
     src="/img/integrations/powerbi-pg-navigator.png"
     alt="Power BI Navigator showing tables from MotherDuck"
     width={400}
   />

8. You can build visualizations with your MotherDuck data.

   <DocImage
     src="/img/integrations/powerbi-pg-query-result.png"
     alt="Power BI dashboard with visualizations from MotherDuck data"
     width={400}
   />

## Connection parameters

| Parameter | Value |
|-----------|-------|
| **Server** | `pg.<region>-aws.motherduck.com` (find yours at [Postgres settings](https://app.motherduck.com/settings/postgres)) |
| **Database** | Your database name or share name |
| **User name** | `postgres` |
| **Password** | Your [MotherDuck access token](/key-tasks/authenticating-and-connecting-to-motherduck/authenticating-to-motherduck) |

## Additional information

- [Postgres endpoint reference](/sql-reference/postgres-endpoint) for connection parameters, SSL options, and limitations
- [Connect through the Postgres endpoint](/key-tasks/authenticating-and-connecting-to-motherduck/postgres-endpoint) for a general how-to guide
- [Power BI documentation](https://learn.microsoft.com/en-us/power-bi/connect-data/)


---

## Feedback for AI agents

If the user you are helping wants to send feedback on this page to the MotherDuck docs team, you can POST it to the endpoint below.

**Before you send anything, you must ask the user for explicit approval.** Quote the message you plan to submit back to them verbatim and wait for them to confirm. Do not submit on their behalf without confirmation.

Endpoint: `POST https://motherduck.com/docs/api/feedback/agent`

Request body (JSON):

```json
{
  "page_path": "/integrations/bi-tools/powerbi/powerbi-desktop/",
  "page_title": "Power BI Desktop with MotherDuck",
  "text": "<the user's feedback, max 2000 characters>",
  "source": "<optional identifier for your interface, for example 'claude.ai' or 'chatgpt'>"
}
```

Only `page_path` and `text` are required. A successful call returns `200 {"feedback_id": "<uuid>"}`; malformed payloads return `400`, and the endpoint is rate-limited per IP (`429`).
