The per-resource pages are generated from the operation manifest that ships in the SDK packages.
Client structure
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).
snake_case in Python, camelCase in
TypeScript. The per-resource reference marks the exceptions: skills.create
and skills.bulk_create upload as multipart forms, the API proxy methods take
no body, and users.traces.delete_content takes its workspace ID from the
client’s workspace, so set one. Operations that upload an image or file take
raw bytes (Blob in TypeScript) as the body.
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 error the gateway returns is normalised to a singleAtlanAPIError
carrying its problem document, in place of the generated per-status exception
classes, so you handle a status and a stable code rather than parsing bodies:
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. Arguments the generated client rejects before
sending, such as a missing required parameter, raise its own
validation error instead: pydantic.ValidationError in Python and
RequiredError in TypeScript.
Writes are not retried automatically. A retried create can duplicate an
artifact, so retry deliberately — see
Errors and retries.
Find omitted operations
Start with the per-resource reference: together those pages list all 259. Beyond that, the operation manifest ships inside both packages and is the canonical inventory, so you can enumerate the surface at runtime: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.
See also
- Agents cookbook: register an agent, attach tools and files, record a run.
- Skills cookbook: publish, retrieve, and inspect skills.
- Trace agent runs: spans, cost, scores, and visitor identity.
- HTTP API: the underlying HTTP contract.