Skip to main content

prdb-sdk (Python)

Python client for the prdb Public API.

Install

pip install prdb-sdk

Requires Python 3.10 or newer. The client is async and uses httpx under the hood, by way of the Kiota bundle.

Usage

import asyncio
from uuid import UUID

from prdb_sdk import create_client


async def main() -> None:
    client = create_client(api_key="...")

    # GET /videos
    page = await client.videos.get()
    for video in page.items or []:
        print(video.title)

    # GET /videos/{id}
    video = await client.videos.by_id(UUID("...")).get()

    # Query parameters are typed, including the closed-set ones.
    from prdb_sdk.generated.videos.videos_request_builder import VideosRequestBuilder

    config = VideosRequestBuilder.VideosRequestBuilderGetRequestConfiguration(
        query_parameters=VideosRequestBuilder.VideosRequestBuilderGetQueryParameters(
            page=2,
            page_size=50,
            search="...",
        )
    )
    page_two = await client.videos.get(request_configuration=config)


asyncio.run(main())

The request builders mirror the API's URL structure, so GET /videos/{id}/filehashes is client.videos.by_id(video_id).filehashes.get().

Authentication

create_client sends the key in the X-Api-Key header, and keeps it on the API host: a redirect to a different origin raises CrossOriginRedirectError rather than handing your credential to whoever answers there. Redirects that stay on the same origin are followed normally.

base_url must use https, so the key is never sent in cleartext.

GET /health is the only endpoint that works without a key; use create_anonymous_client() for health probes. That one has no credential to protect, so it accepts a plain http base URL.

Options

from prdb_sdk import RetryOptions, create_client

client = create_client(
    api_key="...",
    base_url="https://api.prdb.net",   # override for a staging deployment
    http_client=my_httpx_async_client, # control timeouts, proxies, connection limits
    retry=RetryOptions.disabled(),     # see below
)

The client you pass in is configured with the SDK's middleware in place, so it behaves like the one built for you — same redirect rule, same retry handling.

Retrying

By default the SDK retries a 429, 503 or 504 up to three times, honouring Retry-After.

Turn that off if your application already retries prdb calls:

client = create_client("...", retry=RetryOptions.disabled())

Otherwise the two policies multiply — one logical call becomes up to n×m requests against an API that rate limits, and an outer circuit breaker never sees a stable failure to open on. The built-in policy also retries writes, so an application that must not repeat one should own the retry itself.

To keep it but change it:

client = create_client("...", retry=RetryOptions(max_retries=5, delay=1.0))

Generated code

Everything under prdb_sdk/generated/ is produced by Kiota from spec/openapi.json in the repository root and is overwritten on every regeneration. Do not edit it — see the root README.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prdb_sdk-0.2.0.tar.gz (51.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prdb_sdk-0.2.0-py3-none-any.whl (220.9 kB view details)

Uploaded Python 3

File details

Details for the file prdb_sdk-0.2.0.tar.gz.

File metadata

  • Download URL: prdb_sdk-0.2.0.tar.gz
  • Upload date:
  • Size: 51.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for prdb_sdk-0.2.0.tar.gz
Algorithm Hash digest
SHA256 50cd7fd6b277e182b95ebc4d6103e35568b4c41d254705e7692b5d539a1ddf48
MD5 c398acf50a74299aa8c4feaefe23dd48
BLAKE2b-256 9b0aca1ab2580330a52ba725184a08626d19aa80ffe2f31f63bedc22a3e6700d

See more details on using hashes here.

Provenance

The following attestation bundles were made for prdb_sdk-0.2.0.tar.gz:

Publisher: release.yml on prdb-net/prdb-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file prdb_sdk-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: prdb_sdk-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 220.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for prdb_sdk-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b24e572ea303c8a10d2fbcd4c9f1102dabc301cee66bb65607713fa226fff62
MD5 fb7383d2d7dbb7248000de163f573b43
BLAKE2b-256 b0f00e251494ee2e31cae15a922c8d97da31916f30f606cf72f445b1323dc3d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for prdb_sdk-0.2.0-py3-none-any.whl:

Publisher: release.yml on prdb-net/prdb-sdk

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.14.0

2 files

0.13.0

2 files

0.12.0

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

This release

0.2.0 This release

2 files

0.1.1

2 files

0.1.0

2 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