AuraOne Python SDK
Official Python SDK (auraone-sdk) for the AuraOne public API.
Installation
pip install auraone-sdk
pip install "auraone-sdk[async]" # async client
pip install "auraone-sdk[dev]" # test tooling
Authentication
Requests authenticate with a platform-issued API key:
ak_<8 lowercase hex>_<64 lowercase hex>
Keep it in an environment variable — never hard-code it:
import os
from aura_one import AuraOneClient
from aura_one.types import ClientConfig
client = AuraOneClient(
ClientConfig(
api_key=os.environ["AURAONE_API_KEY"], # ak_...
base_url="https://api.auraone.ai",
# Optional org assertion — must equal the key's organization;
# the tenant is always derived from the key server-side.
organization_id=os.environ.get("AURAONE_ORG_ID"),
)
)
Quickstart
# List templates
templates = client.evaluations.list_templates()
# Create an evaluation — config.inputs is required
evaluation = client.evaluations.create(
template_id="tpl_your_template",
config={"inputs": [{"prompt": "example", "expected": "answer"}]},
)
# Poll + cancel
detail = client.evaluations.get(evaluation["id"])
client.evaluations.cancel(evaluation["id"])
CLI
export AURAONE_API_KEY="ak_..."
aura evaluate \
--template-id tpl_your_template \
--agent-bundle-url https://example.com/agent.tar.gz \
--wait
aura list-templates
aura quotas
aura system-health
The aura CLI and AuraClient read AURAONE_API_KEY when no
--api-key/api_key argument is given. AURA_API_KEY still works as a
deprecated fallback and emits a warning; with neither set the client raises
ValueError and the CLI exits 2.
Enterprise Intelligence
client.enterprise_intelligence sends recurring work to AuraOne and reads
back finished, reviewed output. Software does the repeatable steps;
qualified people review exceptions.
Scopes: reads need enterprise-intelligence.read, writes need
enterprise-intelligence.write, and cancellation needs
enterprise-intelligence.cancel.
The flat methods are the customer surface. The grouped clients
(workflows, runs, batches, deliveries, human_tasks, connectors,
tool_bindings, context_sources, historical_sets, improvement,
regression, operations, registry) cover every other route. Many of
those also check the role of the user who created the key. Each method's
docstring names the role it needs. Complex bodies are TypedDicts with the
wire field names (see aura_one.services.enterprise_intelligence._types).
ei = client.enterprise_intelligence
# Start one unit of work. Keep the key: retrying with it returns the same run.
inputs = ei.get_run_inputs()["data"]
run = ei.create_run(
workflow_version_id="wfv_claims_intake",
input_content_id=inputs["contents"][0]["id"],
environment_version=inputs["environments"][0]["environmentVersion"],
idempotency_key="claims-2026-10-06-0001",
)
delivery = ei.get_run_delivery(run["data"]["id"])
# Resolve an exception: ask, never guess.
task = ei.human_tasks.list(status="PENDING")["data"][0]
ei.human_tasks.complete(
task["id"],
action="REQUEST_INFORMATION",
output_content_id="content_reply",
evidence={"note": "Capacity is blank. Needs supplier confirmation."},
expected_lock_version=task["lockVersion"],
)
# Upload a weekly queue as one batch (multipart; files keep source order).
ei.batches.ingest(
workflow_version_id="wfv_menu_update",
contract={
"schemaVersion": "auraone.enterprise-ingestion.v1",
"allowedMediaTypes": ["text/csv", "image/jpeg"],
"spreadsheetMode": "ROW_PER_ITEM",
"governance": {
"dataClassification": "CONFIDENTIAL",
"trainingRights": "NO_TRAINING",
"retentionUntil": None,
"legalHold": False,
},
},
sources=[
{"sourceId": "sheet", "fileName": "menu.csv", "mediaType": "text/csv",
"content": open("menu.csv", "rb").read()},
],
)
The async client (AsyncAuraOneClient) has the same methods; await each
call.
- Idempotency: every write sends an
idempotency-keyheader. Passidempotency_keyto retry safely; otherwise a UUID4 is generated per call. Keys must be 8-255 characters. - Lists return at most 100 records and have no cursor.
meta["total"]counts every match;meta["loaded"]counts what was returned. Useis_truncated(meta)and narrow withqandstatus. - Any
503raisesEnterpriseIntelligenceUnavailableErrorafter the client's retries. Other errors carry the route'scodeandmessage. - Behavior change: errors now come from the nested error body
(
{"error": {"code", "message"}}) for every service, and HTTP errors raise their typed class (NotFoundError,ServerError, ...) instead of a genericAuraOneError("Request failed: ..."). Readerror.code,error.status_codeanderror.details, not the message text. SeeCHANGELOG.md.
from aura_one.services.enterprise_intelligence import (
EnterpriseIntelligenceUnavailableError,
)
try:
ei.list_runs()
except EnterpriseIntelligenceUnavailableError as error:
print("Not available yet:", error.code)
The legacy aura.enterprise_intelligence client covers the customer read
routes and run creation only.
Notes
- All requests target
https://api.auraone.ai/api/...; there is no separate/v1host. - Cookieless
ak_requests are CSRF-exempt; browser session requests remain CSRF-protected. - Launch-excluded surfaces (compute, GraphQL, robotics, synthetic research, rewards) are not part of this SDK.
Metadata
Release files for auraone-sdk 1.0.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 | Provenance | Actions |
|---|---|---|---|---|
| auraone_sdk-1.0.0.tar.gz | 98.4 kB | Without provenance | Details for auraone_sdk-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| auraone_sdk-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for auraone_sdk-1.0.0-py3-none-any.whl |
Total release size: 192.5 kB
Release files / auraone_sdk-1.0.0.tar.gz
| Download URL | auraone_sdk-1.0.0.tar.gz |
|---|---|
| Size | 98.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ee02c6910d64efeaa1784a2e5beac6456b96ccb61bbe63aff1ab071d047b436
|
|
BLAKE2b-256 checksum How to use checksums |
f228460e3892ca28c553b4abf61757f154a5d787f4c12f9d3ed8bf89f5aba349
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Release files / auraone_sdk-1.0.0-py3-none-any.whl
| Download URL | auraone_sdk-1.0.0-py3-none-any.whl |
|---|---|
| Size | 94.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b21fed10cb2ebd8f53442839dd1ef172062108a10190b83973f26a897f3f8f78
|
|
BLAKE2b-256 checksum How to use checksums |
338f5ef715b7ac5f0bdf26396c1c6f5df9de0b1db5ed8a0ebad6f4950d40947a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.9
|
Security for auraone-sdk 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.