Every piece of memory in Loom belongs to a workspace. Inside a workspace, you can also keep memory for individual users. Memory in one workspace is never visible to another.

Workspaces

A workspace (org_id) is the boundary for everything — searching, adding memory, sessions, and billing all happen within it.
mem.workspaces.list()                       # your workspaces
mem.workspaces.create("acme", "Acme Lab")   # create a new one
Your current workspace is registered automatically the first time you use it.

Users

Inside a workspace, you can see your users and their activity:
mem.users()   # {"users": [...], "count": N, "current": "<user_id>"}
Each user also gets their own personal memory for preferences and context, separate from the shared workspace memory:
mem.user.remember("style", "concise plans with citations", confidence=0.9)
mem.user.recall("how should I write plans?")
See User memory.

How access works

Every request is tied to a workspace (and optionally a user) by the credential you send:

API key

Created in the dashboard. Tied to a workspace; add X-User-Id for per-user calls.

Session token

From signup or login. Carries the workspace and user.
See Authentication for details.
You can only reach your own workspace, and personal memory stays with its user. A few actions — like looking at another user’s suggested directions — need founder access.

Founder access

Accounts with founder access can see the admin views — usage across workspaces and overall system health. See Admin API.

Workspaces & users API

The endpoints behind workspaces and users.