Users
When building products on top of m8tes, use the user_id field to isolate each end-user's data. Teammates, runs, memories, and tasks are all scoped by user_id.
Why user_id?
Without user_id, all resources belong to your account globally. With user_id, each end-user gets:
- Isolated teammates — users only see their own bots
- Isolated memories — teammate context is per-user
- Isolated task history — no cross-user data leakage
- Scoped teammate reuse — quick-start mode reuses teammates per user
Set user_id on Everything
Teammates
Runs
Quick Start (auto-create teammate)
If cust_123 runs this again with the same name, the existing teammate is reused.
Memories
Tasks
Filtering by user_id
All list endpoints accept user_id to return only that user's resources:
Without the filter, list endpoints return all resources across all end-users (for your account).
Managing End-User Profiles
End-user profiles are auto-created whenever you pass user_id to any endpoint (runs, teammates, tasks, memories, permissions, apps). You can also create profiles explicitly with additional data, or update them later.
Auto-Creation
When you create a run, teammate, memory, or any other resource with a user_id, an end-user profile is automatically created if one doesn't already exist. No extra API call needed.
Create with Profile Data
To create a profile with name, email, company, or metadata upfront:
If the user_id already exists (via auto-creation or a previous create), this returns a 409 Conflict. Use update instead.
Update Profile
Only the fields you include are updated. Omitted fields remain unchanged.
List and Get
Delete
Deleting a profile removes the profile data only. Resources created with that user_id (runs, memories, etc.) are not affected.
Security
End-user profiles are scoped to your API account. You cannot access another account's end-users. The same user_id string can exist across different API accounts without conflict.
Account Settings
Control account-level behavior through the settings endpoint.
Company Research
By default, m8tes runs automatic company research when users sign up. You can disable this:
Best Practices
- Always pass user_id consistently — set it on teammates, runs, memories, and tasks
- Use stable IDs — use your application's user IDs (e.g.
usr_abc, database IDs) - Don't mix scoped and unscoped — if you use
user_idfor one user, use it for all - Isolation is strict — when
user_idis set, only that user's data is visible to the teammate (memories, history, etc.)
What's Next
- Memories — personalize teammate context per end-user
- Permissions — control tool access per end-user
- Tools — end-user OAuth connections
- API Reference — full endpoint documentation
