ausca
Client for Ausca metered agent infrastructure services: document OCR, document analysis, media transcription, browser sessions, and agent inboxes. Paid per call under a hard USD cap you set, with no account or provider API keys, and a settlement receipt on every completed invocation.
Install
pip install ausca
Use
import os
from ausca import AuscaClient
client = AuscaClient.with_local_key(
private_key=os.environ["AUSCA_PRIVATE_KEY"], # pays USDC on Base
max_payment_usd=0.50, # hard per-call cap
)
outcome = client.invoke("browser.session", {"duration_seconds": 600})
print(outcome.result)
print(outcome.payment.transaction) # settlement proof
invoke resolves the offer's immutable revision, schema digests, and
payable route from the live catalog, reads the exact payment requirement,
pays it if it fits the cap, and retries the same bytes with the same
idempotency key. Each call starts with a fresh key. For recovery after an
uncertain response, pass the same caller-owned idempotency_key; use a new
key for another intentional purchase, even when its input is identical.
A CLI ships with the package:
ausca catalog
ausca price document.ocr
AUSCA_PRIVATE_KEY=0x... AUSCA_MAX_PAYMENT_USD=0.50 \
ausca invoke browser.session '{"duration_seconds":600}'
# Reuse this key only to recover that same intended purchase:
ausca invoke browser.session '{"duration_seconds":600}' \
--idempotency-key browser-attempt-20260903-0001
Payment rails
Payment is a pluggable authority, never a client concern. The built-in
LocalKeyAuthority pays x402 v2 with a local signing key through the
official x402 library, which enforces
the cap through its spend controls before anything is signed; other rails
implement the same small PaymentAuthority protocol.
client.pay_request(url, ...) runs one paid call against any resource the
configured authority can pay; nothing in it is vendor-specific.
Artifact-backed offers
Document and media offers take an immutable artifact commitment instead of
raw bytes. ausca commit file.pdf sends the bytes to Ausca's keyless
temporary ingress and returns the commitment the offer input carries; the
library equivalent is client.commit(data, media_type). Repeating the same
bytes is idempotent. The active offer catalog sets the usable input limit.
Successful paid state includes receipt_ref.public_url, an immutable
hash-only proof of the Ausca service, public price, completion time, and
receipt digest. It contains no request or result bytes, content digests, or
access capabilities. Anyone holding the unguessable URL can read it.
The full agent contract lives at https://ausca.com/SKILL.md; discover the
active offers at https://ausca.com/catalog.json. The npm equivalent is
ausca, which adds a local MCP
server (npx ausca mcp).
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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 ausca-0.0.2.tar.gz.
File metadata
- Download URL: ausca-0.0.2.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8218388560c65b9647bce7d54c7e932488243737545ac268d8aebcd38a131b0d
|
|
| MD5 |
8b18ccd7c27fef5581efc32f703329e0
|
|
| BLAKE2b-256 |
7e1c6791b825be212a627641b230f9c0d211b70925e750664ee8a15f34028b24
|
File details
Details for the file ausca-0.0.2-py3-none-any.whl.
File metadata
- Download URL: ausca-0.0.2-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9f1ecd41670e83cb44952db6dc8f663e2c61db6c5eab044c27388ae40afbee3
|
|
| MD5 |
3ca1766bb5b41bab200c8cb302de801b
|
|
| BLAKE2b-256 |
8581ef651fb0a733d6dab156663aff3537ef696d99632daa7d4fd4f1ea17ff7a
|