zanii-connect — Python SDK
Python client for Zanii Connect: OAuth connections, encrypted token vault, and audited tool execution for AI agents.
Install
pip install zanii-connect
Requires Python 3.10+.
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="...")
# Or with a bearer token you already hold — a vault session JWT, or a Zanii ID
# access token minted for the vault resource (aud = https://vault.zanii.agency/mcp):
nc = ZaniiClient(token="...")
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=toexecute()to make retries safe for side-effecting actions. - Errors: non-2xx responses raise
ZaniiErrorwith.status_codeand.detail. A failed tool call's.detailis the provider's real message (e.g.provider 404: Requested entity was not found.), never empty. - MCP: AI agents that speak MCP don't need this SDK — point them at
POST https://vault.zanii.agency/api/v1/mcpwith anX-API-Keyheader.
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(each row carriesreceipt_hash+proof_url),audit,audit_export_csv,health - Proof-of-action:
receipts_bundle(offline-verifiable audit bundle),compliance_report(json/markdown)
License
MIT © Zanii Agency
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.2.1.tar.gz
(10.4 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zanii_connect-0.2.1.tar.gz.
File metadata
- Download URL: zanii_connect-0.2.1.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
04b8e33501b3581f68b6e6593af8ec7b5608a62f4327d85910abc760ad9b41be
|
|
| MD5 |
1d223cedc646daa6345ef91fec4748ee
|
|
| BLAKE2b-256 |
8042071eab80b354a440693ef460df990921efd6af39ec74241e0e72d38da446
|
File details
Details for the file zanii_connect-0.2.1-py3-none-any.whl.
File metadata
- Download URL: zanii_connect-0.2.1-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3554fcb7293297b9b7785977e73fc4f40651ae913ba45dcca0f768a0894f8c93
|
|
| MD5 |
7502bc972b742c618aeb1905af99d8ec
|
|
| BLAKE2b-256 |
1d17e6d56993a61e8f183de4d376882b3c2a4bd4c9b9e3054420d65af81b2807
|