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

  1. Use your own stable internal ID as user_id
  2. Pass user_id consistently on every relevant request
  3. Do not mix scoped and unscoped writes for the same product flow
  4. Keep permission policies and memories aligned to the same user_id

What's next