Overview
The OtherUserResource provides methods for looking up other users on the Speckle server. Access it via client.other_user after authenticating your SpeckleClient.
Use this resource to search for users by name or email, or retrieve public profile information for specific users.
from specklepy.api.client import SpeckleClient
client = SpeckleClient(host="https://app.speckle.systems")
client.authenticate_with_token(token)
# Access other user operations
user = client.other_user.get("user_id")
Methods
get()
Get public profile information for another user by their ID.
client.other_user.get(id: str) -> Optional[LimitedUser]
Parameters:
The ID of the user to retrieve
Returns:
The user’s public profile, or None if not found
Example:
user = client.other_user.get("other_user_id_here")
if user:
print(f"Name: {user.name}")
print(f"Bio: {user.bio}")
print(f"Company: {user.company}")
print(f"Avatar: {user.avatar}")
print(f"Verified: {user.verified}")
print(f"Role: {user.role}")
else:
print("User not found")
See LimitedUser for property details.
This method returns limited public profile information. Email addresses and other private information are not included. Use client.active_user.get() to access your own full profile.
user_search()
Search for users by name or email.
client.other_user.user_search(
query: str,
*,
limit: int = 25,
cursor: Optional[str] = None,
archived: bool = False,
emailOnly: bool = False
) -> UserSearchResultCollection
Parameters:
Search query (minimum 3 characters)
Maximum number of results to return
Search email addresses only
Returns:
results
UserSearchResultCollection
Search results with pagination cursor
Example:
# Search for users by name
results = client.other_user.user_search("john", limit=10)
print(f"Found {len(results.items)} users:")
for user in results.items:
print(f" - {user.name} ({user.company})")
if user.verified:
print(f" ✓ Verified")
# Paginate through more results
if results.cursor:
next_page = client.other_user.user_search(
"john",
cursor=results.cursor
)
Search by Email:
# Search email addresses only
results = client.other_user.user_search(
"[email protected]",
emailOnly=True
)
if results.items:
user = results.items[0]
print(f"Found: {user.name} ({user.email if hasattr(user, 'email') else 'email hidden'})")
See UserSearchResultCollection for property details.
The search query must be at least 3 characters long. Shorter queries will result in an error.
Types
LimitedUser
Represents another user’s public profile information.
Server role (e.g., “server:user”, “server:admin”)
UserSearchResultCollection
Collection of user search results with pagination.
Pagination cursor for next page