Python SDK for the Ambertrace neurosymbolic AI platform API
Project description
AmbertraceAI Python SDK
Python client for the Ambertrace neurosymbolic AI platform API.
Install
pip install ambertraceai
Authentication
The SDK authenticates with an Ambertrace API key (prefix at_...). Create one from the
dashboard at app.ambertrace.ai → Settings → API Keys, then
pass it to the client:
from ambertraceai import AmbertraceAPI
api = AmbertraceAPI(base_url="https://app.ambertrace.ai", api_key="at_...")
Keep the key out of source control — read it from an environment variable in real code:
import os
api = AmbertraceAPI(base_url="https://app.ambertrace.ai", api_key=os.environ["AMBERTRACE_API_KEY"])
See Agent Keys for the user- vs. platform-scoped key model.
Quick Start
from ambertraceai import AmbertraceAPI
api = AmbertraceAPI(
base_url="https://app.ambertrace.ai",
api_key="at_...",
)
# Create a domain
domain = api.domains.create(
name="Legal Contracts",
description="Contract analysis for risk and compliance",
)
# Upload data
dataset = api.datasets.upload(
domain_id=domain["id"],
file_path="contracts.csv",
)
# Build a platform (async — returns the platform and a build job)
result = api.platforms.create(
domain_id=domain["id"],
dataset_id=dataset["id"],
)
platform_id = result["platform"]["id"]
build_job_id = result["build_job"]["id"]
# Wait for the build to finish
job = api.wait_for_job(build_job_id, timeout=600)
# Query the platform
answer = api.platforms.query(
platform_id=platform_id,
query="What are the highest-risk clauses?",
)
print(answer["answer"])
print(answer["explanation"])
Resources
| Resource | Methods |
|---|---|
api.domains |
list, create, get, update, delete, build_ontology, eval_config, set_eval_config, delete_eval_config, suggest_eval_config, list_templates, create_template, update_template, delete_template, feedback_stats |
api.datasets |
list, get, upload, fetch, quality, clean, preview, delete |
api.platforms |
list, create, get, delete, status, query, suggest_rules, list_suggestions, approve_suggestion, reject_suggestion, graph |
api.predictions |
predict, list_configs, create_config, delete_config, train, list_predictions |
api.connectors |
list, test |
api.usage |
get |
api.jobs |
get |
api.api_keys |
list, create, revoke |
Connectors
Connectors pull data from external providers. List what's available, optionally test a config, then ingest it as a dataset linked to a domain:
api.connectors.list() # discover connectors + their required config fields
# Stocks/ETFs and crypto are keyless:
api.datasets.fetch(domain_id=1, connector_type="yahoo",
config={"symbols": ["AAPL", "SPY"], "range": "2y"})
api.datasets.fetch(domain_id=1, connector_type="coinbase",
config={"product_ids": ["BTC-USD", "ETH-USD"]})
# FRED needs your own free key (https://fred.stlouisfed.org):
api.datasets.fetch(domain_id=1, connector_type="fred",
config={"api_key": "<your FRED key>",
"series_ids": ["GS10", "FEDFUNDS"], "frequency": "monthly"})
# Generic REST/CSV — bring your own auth via headers:
api.datasets.fetch(domain_id=1, connector_type="rest",
config={"url": "https://api.example.com/series",
"headers": {"Authorization": "Bearer ..."}})
| Connector | Config | Key? |
|---|---|---|
yahoo |
symbols, interval, range |
none |
coinbase |
product_ids, granularity |
none |
fred / fred_sentiment |
series_ids, frequency, api_key |
bring your own |
rest |
url, format, records_path, headers, params |
bring your own (via headers) |
Bring your own provider keys. Connectors that hit a credentialed provider require
your own key, passed in config — Ambertrace never uses a shared key on your behalf.
Agent Keys
AI agents authenticate with user-scoped API keys that give full lifecycle access (domains, datasets, platforms, rules, predictions). A human creates the key from the dashboard; the agent can then create narrower platform-scoped keys for its integrations.
# Agent creates a platform-scoped key for a specific integration
platform_key = api.api_keys.create(
scope="platform",
platform_id=42,
name="Slack Integration",
)
# List keys visible to this agent
keys = api.api_keys.list()
# Revoke a platform key the agent created
api.api_keys.revoke(platform_key["id"])
User-scoped keys cannot create other user-scoped keys (no self-replication). Chat, conversations, and billing remain human-only.
Job Polling
Long-running operations (platform builds, data cleaning, training) return a job_id. Use wait_for_job to poll:
job = api.wait_for_job(job_id, timeout=300, poll_interval=5)
if job["status"] == "error":
print(f"Failed: {job.get('error_message')}")
Error Handling
from ambertraceai import AmbertraceAPI, AmbertraceError
try:
api.domains.get(999)
except AmbertraceError as e:
print(e.status_code) # 404
print(e.code) # "not_found"
print(str(e)) # "Domain not found."
API Documentation
Full API reference: app.ambertrace.ai/openapi/redoc
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
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 ambertraceai-0.3.0.tar.gz.
File metadata
- Download URL: ambertraceai-0.3.0.tar.gz
- Upload date:
- Size: 77.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cafa6fea9675c9131708d1f5a1a9cc4a49326d01b05c3458ee3c0c2fe1c879a9
|
|
| MD5 |
374133ad6730b27b5d740fec169d55f9
|
|
| BLAKE2b-256 |
78645f144154127f7cf5365a544b3748964546021d06096f714ef4110732f04a
|
Provenance
The following attestation bundles were made for ambertraceai-0.3.0.tar.gz:
Publisher:
publish.yml on Pilot-Generative-AI/ambertraceai-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ambertraceai-0.3.0.tar.gz -
Subject digest:
cafa6fea9675c9131708d1f5a1a9cc4a49326d01b05c3458ee3c0c2fe1c879a9 - Sigstore transparency entry: 1707512584
- Sigstore integration time:
-
Permalink:
Pilot-Generative-AI/ambertraceai-python@30a5e354752672df0ebcb03569483a0626d4a36f -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Pilot-Generative-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@30a5e354752672df0ebcb03569483a0626d4a36f -
Trigger Event:
push
-
Statement type:
File details
Details for the file ambertraceai-0.3.0-py3-none-any.whl.
File metadata
- Download URL: ambertraceai-0.3.0-py3-none-any.whl
- Upload date:
- Size: 222.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6deb694a8715c8d0db4d9e474dd4ee93ae0d4e5020ac5a9953630a9dee1953c0
|
|
| MD5 |
4562aa64fe16a1ba05aa882a61507940
|
|
| BLAKE2b-256 |
f55887f246eb387d1e7b787e4c98ca2563cacaaad365bbbdee37cc0dfdfbe406
|
Provenance
The following attestation bundles were made for ambertraceai-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on Pilot-Generative-AI/ambertraceai-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ambertraceai-0.3.0-py3-none-any.whl -
Subject digest:
6deb694a8715c8d0db4d9e474dd4ee93ae0d4e5020ac5a9953630a9dee1953c0 - Sigstore transparency entry: 1707512633
- Sigstore integration time:
-
Permalink:
Pilot-Generative-AI/ambertraceai-python@30a5e354752672df0ebcb03569483a0626d4a36f -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/Pilot-Generative-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@30a5e354752672df0ebcb03569483a0626d4a36f -
Trigger Event:
push
-
Statement type: