> ## 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.

> ## Agent Instructions
> To act on Atlan objects, use the Atlan MCP server at https://api.atlan.com/mcp or the atlanai CLI; `atlanai --map json` prints its command map. Run a read-only identity check before any write.
> The docs MCP server at /mcp searches these docs only. It cannot read or change Atlan objects.
> SDK packages: Python `atlanai` (PyPI) and TypeScript `@atlanai/sdk` (npm). Show Python first, then TypeScript.

# Workspaces

> Every published workspaces operation, generated from the contract.

13 operations on `client.workspaces`, including `workspaces.invitations`, `workspaces.release_policy`.

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.workspaces.archive(workspace_id)
  ```

  ```typescript TypeScript theme={null}
  const result = await client.workspaces.archive(workspace_id);
  ```
</CodeGroup>

## Operations

| Call | Route | Does |
| - | - | - |
| `client.workspaces.archive(workspace_id)` | `POST /registry/v1/workspaces/{workspace_id}/archive` | Archive a workspace |
| `client.workspaces.bulk_create(body)` | `POST /registry/v1/workspaces/bulk` | Bulk create workspaces |
| `client.workspaces.create(body)` | `POST /registry/v1/workspaces` | Create a workspace |
| `client.workspaces.delete(workspace_id)` | `DELETE /registry/v1/workspaces/{workspace_id}` | Delete a workspace and its subtree |
| `client.workspaces.export(workspace_id)` | `GET /registry/v1/workspaces/{workspace_id}/export` | Export a workspace |
| `client.workspaces.get(workspace_id)` | `GET /registry/v1/workspaces/{workspace_id}` | Get a workspace |
| `client.workspaces.list()` | `GET /registry/v1/workspaces` | List workspaces |
| `client.workspaces.list_recommendations()` | `GET /registry/v1/workspaces/recommendations` | Recommend workspaces to join |
| `client.workspaces.set_visibility(workspace_id, body)` | `PATCH /registry/v1/workspaces/{workspace_id}/visibility` | Change a workspace's visibility |
| `client.workspaces.update(workspace_id, body)` | `PATCH /registry/v1/workspaces/{workspace_id}` | Update a workspace's labels |
| `client.workspaces.invitations.list(workspace_id)` | `GET /registry/v1/workspaces/{workspace_id}/invitations` | List pending invites into a workspace |
| `client.workspaces.release_policy.get(workspace_id, channel)` | `GET /registry/v1/workspaces/{workspace_id}/release-policy/{channel}` | Read a workspace's resolved release policy for a channel |
| `client.workspaces.release_policy.set(workspace_id, channel, body)` | `PUT /registry/v1/workspaces/{workspace_id}/release-policy/{channel}` | Set a workspace's release policy for a channel |

## Related

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

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