Workspace Members Data Structures
All data structures used in the Workspace Members API endpoint.
Invite Member Request
Request body for inviting a member to a workspace
Invite Member Request
objectRequest body for inviting a member to a workspace
emailstring (email)requiredEmail address of the user to invite
roleRolerequiredRole to assign to the member
Invite Member Response
Response from inviting a member
Invite Member Response
objectResponse from inviting a member
okbooleanrequiredWhether the invitation was successful
messagestringOptional message describing the result
codestringOptional error code (e.g., 'plan/limit-reached')
Member
Workspace member information
Member
objectWorkspace member information
idstringrequiredUnique member identifier
roleRolerequiredstatusStatusrequiredcreatedAtstring (date-time)requiredISO 8601 timestamp of when the member joined (empty string for pending invites)
updatedAtstring (date-time)ISO 8601 timestamp of when the member was last updated (optional)
Paginated Members
Paginated members response
Paginated Members
objectPaginated members response
pageintegerrequiredCurrent page number (1-indexed)
limitintegerrequiredNumber of items per page
totalintegerrequiredTotal number of items across all pages
totalPagesintegerrequiredTotal number of pages
hasNextbooleanrequiredWhether there is a next page
hasPrevbooleanrequiredWhether there is a previous page
Remove Member Response
Response from removing a member
Remove Member Response
objectResponse from removing a member
okbooleanrequiredWhether the removal was successful
messagestringOptional message describing the result
Role
Member role in the workspace
Role
stringMember role in the workspace
Status
Member status (invited for pending invites)
Status
stringMember status (invited for pending invites)
Update Member Role Request
Request body for updating a member's role
Update Member Role Request
objectRequest body for updating a member's role
roleRolerequiredNew role to assign to the member (cannot be 'owner')
Update Member Role Response
Response from updating a member's role
Update Member Role Response
objectResponse from updating a member's role
okbooleanrequiredWhether the role update was successful
messagestringOptional message describing the result
User
User information
User
objectUser information
idstringrequiredUnique user identifier (empty string for pending invites)
emailstring (email)requiredUser email address
fullNamestringrequiredUser's full name
avatarUrlstring | nullURL to user's avatar image
createdAtstring (date-time)requiredISO 8601 timestamp of when the user account was created (empty string for pending invites)
updatedAtstring (date-time)requiredISO 8601 timestamp of when the user account was last updated (empty string for pending invites)
interface InviteMemberRequest {
/** Email address of the user to invite */
email: string;
/** Role to assign to the member */
role: Role;
}
interface InviteMemberResponse {
/** Whether the invitation was successful */
ok: boolean;
/** Optional message describing the result */
message?: string;
/** Optional error code (e.g., 'plan/limit-reached') */
code?: string;
}
interface Member {
/** Unique member identifier */
id: string;
role: Role;
status: Status;
/** ISO 8601 timestamp of when the member joined (empty string for pending invites) */
createdAt: string;
/** ISO 8601 timestamp of when the member was last updated (optional) */
updatedAt?: string;
user: User;
}
interface PaginatedMembers {
/** Array of workspace members */
items: Member[];
/** Current page number (1-indexed) */
page: number;
/** Number of items per page */
limit: number;
/** Total number of items across all pages */
total: number;
/** Total number of pages */
totalPages: number;
/** Whether there is a next page */
hasNext: boolean;
/** Whether there is a previous page */
hasPrev: boolean;
}
interface RemoveMemberResponse {
/** Whether the removal was successful */
ok: boolean;
/** Optional message describing the result */
message?: string;
}
type Role = "owner" | "admin" | "member" | "viewer";
type Status = "active" | "inactive" | "invited";
interface UpdateMemberRoleRequest {
/** New role to assign to the member (cannot be 'owner') */
role: Role;
}
interface UpdateMemberRoleResponse {
/** Whether the role update was successful */
ok: boolean;
/** Optional message describing the result */
message?: string;
}
interface User {
/** Unique user identifier (empty string for pending invites) */
id: string;
/** User email address */
email: string;
/** User's full name */
fullName: string;
/** URL to user's avatar image */
avatarUrl?: string;
/** ISO 8601 timestamp of when the user account was created (empty string for pending invites) */
createdAt: string;
/** ISO 8601 timestamp of when the user account was last updated (empty string for pending invites) */
updatedAt: string;
}interface InviteMemberRequest {
/** Email address of the user to invite */
email: string;
/** Role to assign to the member */
role: Role;
}
interface InviteMemberResponse {
/** Whether the invitation was successful */
ok: boolean;
/** Optional message describing the result */
message?: string;
/** Optional error code (e.g., 'plan/limit-reached') */
code?: string;
}
interface Member {
/** Unique member identifier */
id: string;
role: Role;
status: Status;
/** ISO 8601 timestamp of when the member joined (empty string for pending invites) */
createdAt: string;
/** ISO 8601 timestamp of when the member was last updated (optional) */
updatedAt?: string;
user: User;
}
interface PaginatedMembers {
/** Array of workspace members */
items: Member[];
/** Current page number (1-indexed) */
page: number;
/** Number of items per page */
limit: number;
/** Total number of items across all pages */
total: number;
/** Total number of pages */
totalPages: number;
/** Whether there is a next page */
hasNext: boolean;
/** Whether there is a previous page */
hasPrev: boolean;
}
interface RemoveMemberResponse {
/** Whether the removal was successful */
ok: boolean;
/** Optional message describing the result */
message?: string;
}
type Role = "owner" | "admin" | "member" | "viewer";
type Status = "active" | "inactive" | "invited";
interface UpdateMemberRoleRequest {
/** New role to assign to the member (cannot be 'owner') */
role: Role;
}
interface UpdateMemberRoleResponse {
/** Whether the role update was successful */
ok: boolean;
/** Optional message describing the result */
message?: string;
}
interface User {
/** Unique user identifier (empty string for pending invites) */
id: string;
/** User email address */
email: string;
/** User's full name */
fullName: string;
/** URL to user's avatar image */
avatarUrl?: string;
/** ISO 8601 timestamp of when the user account was created (empty string for pending invites) */
createdAt: string;
/** ISO 8601 timestamp of when the user account was last updated (empty string for pending invites) */
updatedAt: string;
}