Skip to main content

pbirs-client

A typed Python client for the Power BI Report Server REST API, with NTLM authentication and resource-based API helpers.

Requirements

  • Python 3.14 or later
  • A Power BI Report Server account

Installation

uv add pbirs-client

Usage

Set the connection details:

export BI_URL="https://reports.example.com"
export BI_USERNAME="DOMAIN\\username"
export BI_PASSWORD="password"

Create a client and call an API resource:

from pbirs_client import BIClient

with BIClient.from_env() as client:
    items = client.catalog.get_catalog_items()
    print(items)

Pass documented query options through params:

with BIClient.from_env() as client:
    reports = client.power_bi_reports.get_power_bi_reports(
        params={"$select": "Id,Name,Path"},
    )

Write operations are disabled by default. Enable them explicitly when needed:

client = BIClient.from_env(allow_mutation=True)

Development

Install the development dependencies and run the offline checks:

uv sync --group dev
just all

The test report measures Python statement coverage. To separately verify API endpoint coverage against the current Microsoft Learn catalog, run the network-dependent audit:

just api-coverage

To smoke-test non-mutating API calls against a server configured in .env, run:

just smoke

The recipe uses the connection settings from .env, even when BI environment variables are already exported. The script reports response sizes without printing response data or credentials.

Documentation

Metadata

Release files for pbirs-client 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pbirs-client 0.0.3
File Size Uploaded
pbirs_client-0.0.3.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pbirs-client 0.0.3
File Interpreter ABI Platform
pbirs_client-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 34.8 kB

Release files / pbirs_client-0.0.3.tar.gz

Download URL pbirs_client-0.0.3.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c83d32f39e325c99ab71ee980a22d03f2e20d244480270c287cc6fd730c1f50f
BLAKE2b-256 checksum
How to use checksums
da59fba4c7dc1ea3cdee3bcd9828cd185c0e656cd42b58d18416ebf55849b73d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pbirs_client-0.0.3-py3-none-any.whl

Download URL pbirs_client-0.0.3-py3-none-any.whl
Size 23.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
314559b4559052cae94f12adc62f943cde3e1b47f854f20376b68709e8907fba
BLAKE2b-256 checksum
How to use checksums
f64d2ad5f69940926e32336869d724b4f0c7c565a4e15ea2e8b87a9c94a47413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.0.7

2 release files

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page