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

# Users

> Every published users operation, generated from the contract.

9 operations on `client.users`, including `users.traces`.

Path parameters come first, positionally; the request body is last, as a plain
object. Method names are `snake_case` in Python and `camelCase` in
TypeScript, and resource names follow the same rule.

<CodeGroup>
  ```python Python theme={null}
  result = client.users.get(user_id)
  ```

  ```typescript TypeScript theme={null}
  const result = await client.users.get(user_id);
  ```
</CodeGroup>

## Operations

| Call                                                | Route                                                      | Does                                          |
| --------------------------------------------------- | ---------------------------------------------------------- | --------------------------------------------- |
| `client.users.get(user_id)`                         | `GET /registry/v1/users/{user_id}`                         | Get a directory user                          |
| `client.users.list()`                               | `GET /registry/v1/users`                                   | List directory users                          |
| `client.users.list_memberships(user_id)`            | `GET /registry/v1/users/{user_id}/memberships`             | List a user's workspace memberships           |
| `client.users.onboard()`                            | `POST /registry/v1/users/onboard`                          | Onboard the caller                            |
| `client.users.update(user_id, body)`                | `PATCH /registry/v1/users/{user_id}`                       | Replace a user's enrichment                   |
| `client.users.traces.get(user_id, trace_id)`        | `GET /registry/v1/users/{user_id}/traces/{trace_id}`       | Read one of this person's traces              |
| `client.users.traces.list(user_id)`                 | `GET /registry/v1/users/{user_id}/traces`                  | List the traces this person created           |
| `client.users.traces.list_spans(user_id, trace_id)` | `GET /registry/v1/users/{user_id}/traces/{trace_id}/spans` | List the spans of one of this person's traces |
| `client.users.traces.query_stats(user_id, body)`    | `POST /registry/v1/users/{user_id}/traces/stats/query`     | Trace statistics for this person              |

## Related

<CardGroup cols={2}>
  <Card title="How the client is organised" icon="list" href="/sdk/operations">
    Resources, call shapes, and errors.
  </Card>

  <Card title="Errors and retries" icon="triangle-exclamation" href="/developers/errors-and-retries">
    What the SDK raises, and which calls are safe to retry.
  </Card>
</CardGroup>
