> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atlasent.io/llms.txt
> Use this file to discover all available pages before exploring further.

# SDKs

> Official AtlaSent client libraries for TypeScript and Python, with Go in preview.

First-party SDKs for TypeScript and Python wrap the same REST API and expose typed models, retry/backoff, and fail-closed error helpers. A Go SDK is in preview and not yet published.

<CardGroup cols={3}>
  <Card title="TypeScript" icon="js" href="/sdks/typescript">
    Node.js + edge runtimes. `@atlasent/sdk`.
  </Card>

  <Card title="Python" icon="python" href="/sdks/python">
    3.9+. `pip install atlasent`.
  </Card>

  <Card title="Go" icon="golang" href="/sdks/go">
    Preview. Not yet published.
  </Card>
</CardGroup>

## What the SDKs do for you

* **Auth plumbing.** Sends your key as `Authorization: Bearer <key>`, rotation hooks.
* **Retries.** Respect `Retry-After`; exponential backoff on transient errors.
* **Fail-closed helpers.** Typed `AtlaSentDeniedError`, `AtlaSentError`, `RateLimitError`.
* **Typed models.** Generated from the same `openapi.yaml` this site renders.
* **Audit iterators.** Cursor pagination handled automatically.

## What they don't do

* **Cache permits.** One permit = one action. Caching is unsafe.
* **Swallow errors.** If the API is down, your agent halts. That's the point.
* **Ship a policy DSL.** Policies are JSON; compose them however you like.

## Consistency

The TypeScript and Python SDKs follow the same method names:

| Operation | Method |
| - | - |
| Evaluate an action | `client.evaluate(...)` |
| Verify a permit | `client.verify_permit_by_id(...)` / `verifyPermitById` |
| Revoke a permit | `client.revoke_permit_by_id(...)` / `revokePermitById` |
| Fail-closed end-to-end | `client.protect(...)` (Python) / `client.protect({...})` (TS) |
| Resolve approval | `client.approve_hitl_escalation(...)` / `approveHitlEscalation` (and `reject_hitl_escalation` / `rejectHitlEscalation`) |
| Export audit | `client.create_audit_export(...)` / `createAuditExport` |

Same names, idiomatic casing per language. Explicit permit consumption is operator-tier and is not part of the standard SDK guard flow — see the [operator runbook](/runbooks/governed-close-operations).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.