Skip to content

SDKs · client libraries

Two SDKs. Same shape.

TypeScript and Python clients for every Intended surface — gateway, authority API, audit chain. Apache 2.0. Use the SDK if you want types and idiomatic helpers; use the REST API if you don’t.

02 · TypeScript

bash
pnpm add @intended-inc/sdk
typescript
import { createIntendedSdk } from "@intended-inc/sdk";

const sdk = createIntendedSdk({
  apiKey: process.env.INTENDED_API_KEY,
  tenantId: process.env.INTENDED_TENANT_ID,
  baseUrl: "https://api.intended.so",
});

const decision = await sdk.authorize({
  action: "sdlc.deploy.production",
  actor: "ops@acme-corp.io",
});

// decision.decision is ALLOW | ESCALATE | DENY
if (decision.allowed) {
  console.log(decision.token);
}

03 · Python

bash
uv pip install intended
python
from intended import IntendedSdk

sdk = IntendedSdk(
    api_key=os.environ["INTENDED_API_KEY"],
    tenant_id=os.environ["INTENDED_TENANT_ID"],
    api_url="https://api.intended.so",
)

decision = sdk.authorize(
    "sdlc.deploy.production",
    actor="ops@acme-corp.io",
)

# decision.decision is ALLOW | ESCALATE | DENY
if decision.decision == "ALLOW":
    print(decision.token)
SDKs — Intended | Intended