Skip to main content

Zorveus Python SDK (zorveus)

Official Python client library for the Zorveus AI Infrastructure Platform.

See DOCUMENTATION.md for full codebase reference documentation and API details.

Installation

Standard installation:

pip install zorveus

With official OpenAI SDK integration extra:

pip install zorveus[openai]

Environment variables

Variable Description Default
ZORVEUS_INFERENCE_KEY Data Plane inference key (zrv_live_...) None
ZORVEUS_GATEWAY_URL Data Plane API base URL https://api.zorveus.com/v1
ZORVEUS_SERVICE_KEY Control Plane service key (zrv_svc_...) None
ZORVEUS_BASE_URL Control Plane API base URL https://api.zorveus.com

Copy examples/.env.example to .env to configure environment variables.


Usage

1. Data Plane inference client (Zorveus and AsyncZorveus)

Non-streaming chat completion

from zorveus import Zorveus

client = Zorveus(api_key="zrv_live_123...")

response = client.chat.completions.create(
    model="openai/gpt-4.1-mini",
    messages=[{"role": "user", "content": "Explain AI gateways in one sentence."}],
    zorveus_metadata={"external_user_id": "usr_sara_101"}
)
print(response.choices[0].message.content)

SSE streaming completion

from zorveus import Zorveus

client = Zorveus(api_key="zrv_live_123...")

stream = client.chat.completions.create(
    model="openai/gpt-4.1-mini",
    messages=[{"role": "user", "content": "Count from 1 to 5."}],
    stream=True
)

for chunk in stream:
    content = chunk.choices[0].delta.content or ""
    print(content, end="", flush=True)

Async inference client

import asyncio
from zorveus import AsyncZorveus

async def main():
    client = AsyncZorveus(api_key="zrv_live_123...")
    response = await client.chat.completions.create(
        model="openai/gpt-4.1-mini",
        messages=[{"role": "user", "content": "Hello world!"}]
    )
    print(response.choices[0].message.content)
    await client.close()

asyncio.run(main())

Query live spend & allowance

from zorveus import Zorveus

client = Zorveus(api_key="zrv_live_123...")
usage = client.get_usage()

print(f"Spend cap: ${usage.spend_cap}")
print(f"Period spend: ${usage.period_spend}")
print(f"Remaining allowance: ${usage.remaining_allowance}")

2. OpenAI SDK integration (ZorveusOpenAI)

If you prefer using official openai SDK types, install zorveus[openai] and use ZorveusOpenAI:

from zorveus.openai import ZorveusOpenAI

client = ZorveusOpenAI(
    api_key="zrv_live_123...",
    external_user_id="cus_12345",
    display_name="Ada Lovelace",
    email="ada@example.com",
    user_metadata={"plan": "pro", "workspace_id": "workspace_789"}
)

response = client.chat.completions.create(
    model="openai/gpt-4.1-mini",
    messages=[{"role": "user", "content": "Hello from OpenAI wrapper!"}]
)

print(response.choices[0].message.content)

3. Control Plane service client (ZorveusServiceClient)

Provision user profile & grant credits

from zorveus import ZorveusServiceClient

service = ZorveusServiceClient(api_key="zrv_svc_123...")
app_id = "app_startup_123"
external_id = "usr_sara_101"

# 1. Create or update profile
user_res = service.product_users.create_or_update(
    app_id=app_id,
    external_user_id=external_id,
    display_name="Sara Connor",
    email="sara@example.com"
)

# 2. Grant credits with 12-decimal string precision
grant_res = service.product_users.grant_credit_by_external_id(
    app_id=app_id,
    external_user_id=external_id,
    amount="25.000000000000",
    source="promotion",
    reason="Welcome Bonus"
)

print(f"Available balance: ${grant_res.credit_summary.available_credits}")

Register BYOK provider credentials

from zorveus import ZorveusServiceClient

service = ZorveusServiceClient(api_key="zrv_svc_123...")

credential = service.provider_credentials.create(
    app_id="app_startup_123",
    provider="openai",
    api_key="sk-proj-..."
)
print("Credential registered:", credential.provider_credential.id)

4. OAuth 2.0 PKCE flow (ZorveusOAuth)

from zorveus import ZorveusOAuth

# 1. Generate PKCE parameters
pkce = ZorveusOAuth.generate_pkce()

# 2. Build authorization URL
auth_url = ZorveusOAuth.get_authorization_url(
    client_id="zrv_client_123",
    redirect_uri="https://yourapp.com/oauth/callback",
    state=pkce.state,
    code_challenge=pkce.code_challenge
)

# 3. Validate callback URL
validation = ZorveusOAuth.validate_callback(
    "https://yourapp.com/oauth/callback?code=auth_code_123&state=" + pkce.state,
    expected_state=pkce.state
)

# 4. Exchange authorization code for access token
if validation.valid and validation.code:
    token_res = ZorveusOAuth.exchange_token(
        client_id="zrv_client_123",
        code=validation.code,
        code_verifier=pkce.code_verifier,
        redirect_uri="https://yourapp.com/oauth/callback"
    )
    print("Access token:", token_res.access_token)

License

MIT

Release files for zorveus 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 zorveus 0.1.0
File Size Uploaded
zorveus-0.1.0.tar.gz 94.0 kB Details

Built distribution (wheel)

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

Total release size: 113.1 kB

Release files / zorveus-0.1.0.tar.gz

Download URL zorveus-0.1.0.tar.gz
Size 94.0 kB
Tags Source
SHA-256 checksum
How to use checksums
aa3ad9cb52e1d31d25453588134359d208dfcb13504d8cfa89557c6d95325d2b
BLAKE2b-256 checksum
How to use checksums
21cd3255e10e904bbb0c665cc21e3f9135e5b597c5695fd45c447e5de313d80c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

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

Download URL zorveus-0.1.0-py3-none-any.whl
Size 19.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c9467effdc0e07c22660066cc8acbda84bac3774b430af5e0f5c80b0aece0e9f
BLAKE2b-256 checksum
How to use checksums
151f7f608ad0f23cec36e79cc2a82475ad2ee052cfa38e1be407ba25c1d06e8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

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