Users
Access control:
- Self-lookup: Users can always retrieve their own full profile
- Owner lookup: Owners can view other users but receive limited data (no sensitive auth metadata)
- Team-specific lookup: Optionally filter by team using the team slug parameter
Returns user profile including account details, team memberships, and appropriate metadata based on access level.User email
Team slug (optional for self-lookups)
User profile retrieved successfully
User ID
First name of the user
Last name of the user
Email address of the user
Role of the user in the team
Team details the user belongs to
Full Supabase auth user data
Actual email from JWT for GitHub users (when different from constructed email)
[email protected]Bad request
Unauthorized
Forbidden - Requires role: owner, member, application
User not found
Updatable fields include:
- User metadata (first name, last name)
- Role assignments within teams
- Team associations
The endpoint validates permissions and ensures users cannot escalate their own privileges. Returns the updated user profile on success.User email
Team slug (optional)
First name of the user
JohnLast name of the user
DoeRole of the user in the team
User updated successfully
Whether the operation was successful
Error message if operation failed
Bad request
Unauthorized
User not found
**Lookup by GitHub** (when lookup=github):
- Resolves a GitHub username to user profile
- Use: GET /users?lookup=github&id=<username>
- Returns full user profile or 404 if not found
**Lookup by Email** (when lookup=email):
- Looks up user by email address
- Use: GET /users?lookup=email&id=<email>
- Returns full user profile or 404 if not found
**List mode** (default):
- Retrieves a paginated list of users
- Can filter by team (using team slug) or role
- Returns user details including email, role, team membershipsLookup mode
Identifier for lookup (GitHub username or email)
octocatTeam slug to filter by
engineeringNumber of records to return
10Number of records to skip
0Filter by role
Users retrieved successfully or lookup successful
User ID
First name of the user
Last name of the user
Email address of the user
Role of the user in the team
Team details the user belongs to
Full Supabase auth user data
Actual email from JWT for GitHub users (when different from constructed email)
[email protected]Bad request - missing id parameter for lookup
Unauthorized
Forbidden - Requires role: owner, member, application
User not found (lookup mode only)
This endpoint is useful for applications to understand the current user's permissions and profile after authentication.User profile retrieved successfully
User ID
First name of the user
Last name of the user
Email address of the user
Role of the user in the team
Team details the user belongs to
Full Supabase auth user data
Actual email from JWT for GitHub users (when different from constructed email)
[email protected]Unauthorized
Only users with owner role can delete users. Users cannot delete themselves. If removing from all teams, the user effectively loses all access to the system.Team identifier (slug) to remove the user from. If not provided, user will be removed from all teams.
engineeringUser deleted successfully
Whether the operation was successful
Email address of the user that was removed
Team identifier (slug) the user was removed from
User ID that was removed
Team account ID the user was removed from
Error message if operation failed
Bad request
Unauthorized
Forbidden - Requires role: owner
Only users with owner role can create new users. The email must be unique across the system. If the user already exists in another team, they will be added to the specified team with the given role.First name of the user
JohnLast name of the user
DoeTeam identifier (slug) to add the user to
engineeringRole of the user in the team
memberPossible values: User created successfully
Bad request
Unauthorized
Forbidden - Requires role: owner
Last updated