Skip to main content

protoface-sdk

Official Python SDK for the Protoface API.

Install protoface-sdk and import protoface_sdk.

Installation

pip install protoface-sdk

Or with uv:

uv add protoface-sdk

Requires Python 3.10+ and a Protoface API key.

Quickstart

import os

from protoface_sdk import ProtofaceClient

with ProtofaceClient(api_key=os.environ["PROTOFACE_API_KEY"]) as client:
    status = client.get_status()
    avatars = client.avatars.list(limit=10)

    print(status.status.value)
    print([avatar.id for avatar in avatars.data])

Resources

client.sessions.create(session_request, idempotency_key=...)
client.sessions.create_livekit(avatar_id=..., url=..., room_name=..., worker_token=...)
client.sessions.get(session_id)
client.sessions.list(status=["running"], avatar_id=..., limit=...)  # -> Page[Session]
client.sessions.end(session_id)

client.avatars.list(scope="platform", q="stock", limit=...)    # -> Page[Avatar]
client.avatars.get(avatar_id)
client.avatars.create(image=..., name=...)                     # multipart upload
client.avatars.delete(avatar_id)

client.pipecat.sessions.create(avatar_id=...)                  # Pipecat relay bootstrap

client.usage.summary(period="current_month")                   # or period_start/period_end

client.list_billing_plans()
client.get_status()

Page objects expose .data, .has_more, and .next_cursor. Pass .next_cursor back as starting_after to fetch the next page.

LiveKit sessions

client.sessions.create_livekit(...) starts the backend worker for a customer-owned LiveKit room. Your application still owns the room and mints a short-lived worker token with its own LiveKit API key and secret.

session = client.sessions.create_livekit(
    avatar_id="av_stock_001",
    url=livekit_url,
    room_name="demo-room",
    worker_token=worker_token,
)

session = session.wait_until_running(timeout=10)
print(session.id, session.status)

For framework-level realtime integrations, use the dedicated packages:

  • livekit-plugins-protoface for LiveKit Agents.
  • pipecat-protoface for Pipecat.

Errors

Every non-2xx response raises a typed ProtofaceError subclass (AuthenticationError, RateLimitError, QuotaExceededError, etc.). Switch on the stable error.code, never on error.message:

from protoface_sdk import ProtofaceError, QuotaExceededError, RateLimitError

try:
    client.sessions.create(session_request)
except RateLimitError as err:
    print("rate limited:", err.code, err.retry_after_seconds)
except QuotaExceededError as err:
    print("quota:", err.code)
except ProtofaceError as err:
    print(err.code, err.request_id, err.status)

The client retries 429, 503, and transient network failures for safe requests, and for writes that include an Idempotency-Key.

License

Apache-2.0 - see LICENSE.

Metadata

Release files for protoface-sdk 0.1.0

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

Source distribution (sdist)

Source distribution for protoface-sdk 0.1.0
File Size Uploaded
protoface_sdk-0.1.0.tar.gz 30.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for protoface-sdk 0.1.0
File Interpreter ABI Platform
protoface_sdk-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 49.4 kB

Release files / protoface_sdk-0.1.0.tar.gz

Download URL protoface_sdk-0.1.0.tar.gz
Size 30.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c9bad5c781bcc9956f1010b1d74ef359c17780c4df4d44398f509ed098b87c90
BLAKE2b-256 checksum
How to use checksums
4210500045972bbebda0bae19e68fa8ae189da40bfd9391666fca9a4e756dbe0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.

Transparency log

Release files / protoface_sdk-0.1.0-py3-none-any.whl

Download URL protoface_sdk-0.1.0-py3-none-any.whl
Size 19.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
af3bc01bb9b2e6516c2ea763e4d367751556562edc96a96d82eb16ced6e25d72
BLAKE2b-256 checksum
How to use checksums
1036501c1b6e10d27a74dc134a10c9d72cdb82858d42e8465cce6a6921fb0ddb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

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