Sign up at console.axiomlens.com/sign-up. We create a test key. Use it as a Bearer token and choose the compatibility shape your client already speaks.
Branchable decision shape
curl https://api.axiomlens.com
/v1/govern \
-H "Authorization: Bearer axm_live_..." \
-H "Content-Type: application/json" \
-d '{
"current_state": {
"release": "candidate",
"evidence": "incomplete"
},
"proposed_next_action": {
"type": "promote",
"target": "production"
}
}'
OpenAI Chat Completions shape
curl https://api.axiomlens.com
/v1/chat/completions \
-H "Authorization: Bearer axm_live_..." \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 256,
"messages": [
{
"role": "user",
"content": "Summarize: ..."
}
]
}'
Anthropic Messages shape
curl https://api.axiomlens.com
/v1/messages \
-H "Authorization: Bearer axm_live_..." \
-H "Content-Type: application/json" \
-H "X-Axiom-Operator: oracle" \
-H "X-Axiom-Tier: throughput" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 256,
"messages": [
{
"role": "user",
"content": "Summarize: ..."
}
]
}'
Portable evidence shape
curl https://api.axiomlens.com
/process \
-H "Authorization: Bearer axm_live_..." \
-H "Content-Type: application/json" \
-d '{
"signal": "Use ΛXIØM to check whether this support queue policy is stable, recurrent, and auditable.",
"context": "New signup onboarding: prove the evidence contract before the first live workflow call.",
"assumption_witnesses": {
"noether": {
"transition": "app.step",
"quantity": "governance_mass",
"quantity_trace": [
1,
1,
1
]
},
"lyapunov": {
"potential_trace": [
84,
70,
63.5,
51
]
},
"poincare": {
"bounded": true,
"reaches_boundary": true,
"cycle_trace": [
0,
0.5,
1,
0
]
},
"fixed_point": {
"regime": "banach",
"fixed_point_residual": 0,
"lipschitz_bound": 0.42
},
"information_loss": {
"states": [
"appeal_pending",
"sarcastic_quote",
"policy_violation"
],
"observer_outputs": [
"allow",
"allow",
"block"
],
"closed_under_transition": true,
"observer_invariant": true
},
"empirical": {
"dataset_uri": "s3://axiom/studies/diminishing_returns.csv",
"schema_uri": "git:replication/v1/schema/diminishing_returns_v1_schema.json",
"protocol_uri": "git:replication/v1/PROTOCOL.md",
"result_uri": "git:replication/v1/results/run_2026_05_06.json",
"run_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
}
}'
TypeScript helper
type Operator = "oracle" | "validator" | "lens" | "governor" | "codex";
type Tier = "throughput" | "judgment";
export async function axiomMessage(input: string, operator: Operator, tier: Tier) {
const r = await fetch("https://api.axiomlens.com
/v1/messages", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.AXIOM_API_KEY}`,
"Content-Type": "application/json",
"X-Axiom-Operator": operator,
"X-Axiom-Tier": tier,
},
body: JSON.stringify({
// Required by /v1/messages; X-Axiom-* overrides it when the pair is mapped.
model: "claude-sonnet-4-6",
max_tokens: 256,
messages: [{ role: "user", content: input }],
}),
});
if (!r.ok) throw new Error(`ΛXIØM ${r.status}: ${await r.text()}`);
const data = await r.json();
return {
text: data.content?.[0]?.text ?? "",
modelUsed: data.model,
governance: data.axiom_governance,
};
}
Python
import os, requests
r = requests.post(
"https://api.axiomlens.com
/v1/chat/completions",
headers={
"Authorization": f"Bearer {os.environ['AXIOM_API_KEY']}",
"Content-Type": "application/json",
},
json={
"model": "claude-sonnet-4-6",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize: ..."}],
},
timeout=120,
)
r.raise_for_status()
data = r.json()
print(data["choices"][0]["message"]["content"])
print(data["axiom_governance"])