Skip to main content

Python SDK Reference

The rodiun package provides sync and async Python clients for the Rodiun platform, plus the rodiun CLI.

Installation​

pip install rodiun

Quick example​

from rodiun import RodiuClient

client = RodiuClient.from_config() # reads RODIUN_API_KEY from env

result = client.run("rodiun.notification-email@1.0.0", inputs={
"to": "user@example.com",
"from_address": "noreply@app.com",
"subject": "Hello",
"body": "World",
})
print(result["receipt"]["trust_score"])

RodiuClient​

Class methods​

RodiuClient.from_config(env_file: str | None = None) -> RodiuClient

Creates a client from environment variables (RODIUN_API_KEY, RODIUN_BASE_URL).

RodiuClient(api_key: str, base_url: str = "https://api.rodiun.io") -> RodiuClient

Instance methods​

MethodDescription
run(orb_id, inputs)Execute an Orb synchronously
get_receipt(receipt_id)Retrieve an OPAL Trust Receipt
list_orbs()List available Orbs
swap_provider(orb_id, provider)Trigger a hot-swap for an Orb

Async client​

from rodiun import AsyncRodiuClient
import asyncio

async def main():
client = AsyncRodiuClient.from_config()
result = await client.run("rodiun.notification-email@1.0.0", inputs={...})
print(result["status"])

asyncio.run(main())

Error handling​

from rodiun.exceptions import OrbNotFoundError, RateLimitError, RodiuError

try:
result = client.run("unknown.orb@1.0.0", inputs={})
except OrbNotFoundError as e:
print(f"Orb not found: {e.orb_id}")
except RateLimitError as e:
print(f"Rate limited. Retry after {e.retry_after_ms}ms")
except RodiuError as e:
print(f"Error: {e}")

See also​