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)
| File | Size | Uploaded | |
|---|---|---|---|
| zorveus-0.1.0.tar.gz | 94.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|