Skip to main content

Python SDK for Zanii Connect — OAuth connections and tool execution for AI agents

Project description

zanii-connect — Python SDK

Python client for Zanii Connect: OAuth connections, encrypted token vault, and audited tool execution for AI agents.

Install

pip install ./sdk/python          # from the monorepo

Quickstart

from zanii_connect import ZaniiClient

# Agents/services authenticate with a scoped API key:
nc = ZaniiClient(api_key="nsk_...")

# Or as a user (JWT):
nc = ZaniiClient(email="info@zanii.agency", password="...")

print(nc.me()["organization"]["name"])

# Connect a provider (open the returned URL in a browser to complete OAuth):
url = nc.connect("gmail", redirect_url="https://vault.zanii.agency/api/v1/connect/oauth/callback")["url"]

# Discover tools and execute one:
conn = nc.connections()["connections"][0]
found = nc.execute("gmail.search", connection_id=conn["id"], parameters={"query": "invoice"})

# Actions that need human approval return an approval link instead of executing:
res = nc.execute("gmail.sendEmail", connection_id=conn["id"],
                 parameters={"to": "info@zanii.agency", "subject": "Hi", "body": "Hello"})
if res.get("requires_approval"):
    print("Ask a human to confirm:", res["approval_url"])

# Long-running work goes through the job queue:
job = nc.execute_async("browser.run", connection_id=conn["id"], parameters={...})
result = nc.wait_for_job(job["job_id"], timeout=300)

Async

from zanii_connect import AsyncZaniiClient

async with AsyncZaniiClient(api_key="nsk_...") as nc:
    tools = await nc.tools()

Same methods as the sync client; with email/password call await nc.login(email, password) once after construction.

Behavior

  • Retries: 429/502/503/504 are retried up to 3 times with exponential backoff.
  • Idempotency: pass idempotency_key= to execute() to make retries safe for side-effecting actions.
  • Errors: non-2xx responses raise ZaniiError with .status_code and .detail.
  • MCP: AI agents that speak MCP don't need this SDK — point them at POST https://vault.zanii.agency/api/v1/mcp with an X-API-Key header.

Surface

Covers the full API:

  • Account: signup, login, me, update_profile, change_password, forgot_password, reset_password, email verification, MFA (mfa_enroll/mfa_enable/mfa_disable)
  • API keys: create_api_key (plaintext returned once), api_keys, delete_api_key
  • Org & team: org, usage, update_org, export_org, delete_org, users, invite_user, update_user, deactivate_user, roles (permissions, roles, upsert_role, delete_role), workspaces/projects/environments
  • Registry: providers, provider, provider_actions, actions, action, tools, tool, dynamic-registry admin (register_provider, register_action, unregister_action)
  • Connections: connect, connections, connections_health, delete_connection, share_connection
  • Execution: execute, execute_async, job, wait_for_job · approvals (approvals, approve)
  • Browser sandbox: create_browser_session, browser_session, browser_run, browser_run_async
  • Secrets / automation: secrets, set_secret, delete_secret, triggers, webhook subscriptions
  • Observability: executions, audit, audit_export_csv, health

Project details


Download files

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

Source Distribution

zanii_connect-0.1.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

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

zanii_connect-0.1.0-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file zanii_connect-0.1.0.tar.gz.

File metadata

  • Download URL: zanii_connect-0.1.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for zanii_connect-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0d8fbceeb0f6a0069816a644dffa7035d5a10274d4e10e96a871fd9d21be72e5
MD5 10e9065202f7a5865976eac24bd80d53
BLAKE2b-256 c8b0287607afe7d79bb42bdfb255c81c3d0aee0e8d0eaee6d6f23c7a5664ad63

See more details on using hashes here.

File details

Details for the file zanii_connect-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: zanii_connect-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for zanii_connect-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d1818744d9de8276d0108843dc3020458c5496ca6ce1f013e446f91b3de6011
MD5 becc3751772d4692435ac9ad9fae802d
BLAKE2b-256 d26c8267c3784cb844f00330050249af95e34a4bcb4760ab7a92fb6d1a3f0454

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page