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.7

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.7
File Size Uploaded
pbirs_client-0.0.7.tar.gz 11.1 kB Details

Built distribution (wheel)

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

Total release size: 34.8 kB

Release files / pbirs_client-0.0.7.tar.gz

Download URL pbirs_client-0.0.7.tar.gz
Size 11.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7f23f236e6ec9907cb5dbb272dddc515fc6eaf4308b520d6c58643d41cbd213a
BLAKE2b-256 checksum
How to use checksums
e68b240ed1badf56f0b391dc44d880aec96776a4015ba6a023e9570d867ca65b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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.7-py3-none-any.whl

Download URL pbirs_client-0.0.7-py3-none-any.whl
Size 23.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
79e0bcd938768ac8b148a7a97c62117ab5385a4f30a69aff6be1c155c74ca75a
BLAKE2b-256 checksum
How to use checksums
b4bad6d0eea1f2dd4b15574f67ef764556d9287daa0136fa39c1606163936509
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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

This release

0.0.7 This release

2 release files

0.0.3

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