Users
Use the Users resource when your product has end-users and each user needs isolated data.
The key is user_id. Pass it on teammates, runs, tasks, memories, and permissions.
Why this matters
Without user_id, resources are account-level.
With user_id, each end-user gets isolated:
- teammates
- run history
- memory
- permission policies
Start with user_id
Teammate scoped to one end-user
Python
Run scoped to the same user
Python
Task scoped to the same user
Python
Memory and permissions scoped to the same user
Python
User profiles
Profiles are auto-created the first time you use a new user_id. You can also manage them directly.
Create
Python
Get and list
Python
Update
Python
Delete
Python
Deleting a user profile removes profile fields only. Existing runs, tasks, and memories under that user_id stay in place.
Filter by user_id
List endpoints support user_id filters so you only fetch one tenant.
Best practices
- Use your own stable internal ID as
user_id - Pass
user_idconsistently on every relevant request - Do not mix scoped and unscoped writes for the same product flow
- Keep permission policies and memories aligned to the same
user_id
What's next
- Runs for execution patterns
- Human-in-the-Loop for approvals and plan mode
- API Reference for endpoint details
