Skip to main content
The management client is generated from the gateway’s contracts, so it covers the whole published surface. This page explains how the client is organised. Every operation is in the per-resource reference, one page per resource, for example:

Users

18 operations

Agents

17 operations

Skills

16 operations

Experiments

15 operations

Datasets

14 operations

Harnesses

12 operations

Sessions

11 operations

Outputs

10 operations

Workspaces

10 operations

Evaluation guide

34 eval operations
Those pages are generated from the same operation manifest the SDKs ship, so they cannot drift from what the client actually exposes. This page describes the pattern once rather than repeating every operation by hand.

How the client is organised

One namespace per resource — not per generated service — with the verb as the method name: client.agents.create(...), not client.agents.agent_create_agent(...). A resource can nest: client.agents has a sessions and a traces sub-resource, reached as client.agents.sessions.list(agent_id).
Path parameters come first, positionally; the request body is last, as a plain object. Method and resource names are snake_case in Python, camelCase in TypeScript. with_workspace() rebinds the whole client to another workspace over the same generated clients, so a multi-tenant process does not need a second client:

Resources you reach most

Content operations (file bytes, skill bundles) return the stored media type, not JSON — check the content type before parsing or you will write a corrupt file. Prefer the tracing SDK over building session records by hand. Use sessions/agents.sessions directly only when the runtime cannot be instrumented.

Errors

Every generated exception — including the per-status subclasses — is normalised to a single AtlanAPIError carrying the gateway’s problem document, so you handle a status and a stable code rather than parsing bodies:
The fields are status, code, title, detail, and the request’s trace_id / traceId — quote that trace ID when reporting a gateway problem. detail is deliberately kept out of the exception message so an error that reaches a log or a user-facing surface cannot carry a server-supplied string. Catch AtlanAPIError and branch on status or code. You never need to catch a per-status exception class. Writes are not retried automatically. A retried create can duplicate an artifact, so retry deliberately — see Errors and retries.

Reaching an operation this page omits

Start with the per-resource reference — together those pages list all 213. Beyond that, the operation manifest ships inside both packages and is the canonical inventory, so you can enumerate the surface at runtime:
The underlying generated clients also sit under client.raw.<service>.apis, keyed by the contract’s service name (agent, skill, file, mcp, model, api, otel, registry, secret, eval) rather than by resource, when you want a generated signature rather than the facade’s forwarded call.

Next steps

Agents cookbook

Register an agent, attach tools and files, record a run.

Skills cookbook

Publish, retrieve and inspect skills.

Tracing

Spans, cost, scores and Visitor identity.

API reference

The underlying HTTP contract.