JavaScript library for embedding Power BI into your apps. Provides service which makes it easy to embed different types of components and an object model which allows easy interaction with these components such as changing pages, applying filters, and res

Usage no npm install needed!

<script type="module">
  import powerbiClient from 'https://cdn.skypack.dev/powerbi-client';



JavaScript library for embedding Power BI into your apps.

Build Status NPM Version Nuget Version NPM Total Downloads NPM Monthly Downloads GitHub tag Gitter


See the wiki for more details about embedding, service configuration, setting a default page, page navigation, dynamically applying filters, and more.

Code Docs

See the code docs for detailed information about classes, interfaces, types, etc.


New live demo for a sample application using the powerbi-client library in scenarios such as page navigation, applying filters, updating settings, and more.


Install via Nuget:

Install-Package Microsoft.PowerBI.JavaScript

Install from NPM:

npm install --save powerbi-client

Installing beta versions:

npm install --save powerbi-client@beta

Include the library via import or manually

Ideally you would use a module loader or a compilation step to import using ES6 modules as:

import * as pbi from 'powerbi-client';

However, the library is exported as a Universal Module and the powerbi.js script can be included before your app's closing </body> tag as:

<script src="/powerbi-client/dist/powerbi.js"></script>

When included directly, the library is exposed as a global named powerbi-client. There is also another global named powerbi which is an instance of the service.


This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments