Get Started

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

object

Request body for inviting a member to a workspace

emailstring (email)required

Email address of the user to invite

roleRolerequired

Role to assign to the member

Invite Member Response

Response from inviting a member

Invite Member Response

object

Response from inviting a member

okbooleanrequired

Whether the invitation was successful

messagestring

Optional message describing the result

codestring

Optional error code (e.g., 'plan/limit-reached')

Member

Workspace member information

Member

object

Workspace member information

idstringrequired

Unique member identifier

roleRolerequired
statusStatusrequired
createdAtstring (date-time)required

ISO 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

object

Paginated members response

pageintegerrequired

Current page number (1-indexed)

limitintegerrequired

Number of items per page

totalintegerrequired

Total number of items across all pages

totalPagesintegerrequired

Total number of pages

hasNextbooleanrequired

Whether there is a next page

hasPrevbooleanrequired

Whether there is a previous page

Remove Member Response

Response from removing a member

Remove Member Response

object

Response from removing a member

okbooleanrequired

Whether the removal was successful

messagestring

Optional message describing the result

Role

Member role in the workspace

Role

string

Member role in the workspace

owneradminmemberviewer

Status

Member status (invited for pending invites)

Status

string

Member status (invited for pending invites)

activeinactiveinvited

Update Member Role Request

Request body for updating a member's role

Update Member Role Request

object

Request body for updating a member's role

roleRolerequired

New role to assign to the member (cannot be 'owner')

Update Member Role Response

Response from updating a member's role

Update Member Role Response

object

Response from updating a member's role

okbooleanrequired

Whether the role update was successful

messagestring

Optional message describing the result

User

User information

User

object

User information

idstringrequired

Unique user identifier (empty string for pending invites)

emailstring (email)required

User email address

fullNamestringrequired

User's full name

avatarUrlstring | null

URL to user's avatar image

createdAtstring (date-time)required

ISO 8601 timestamp of when the user account was created (empty string for pending invites)

updatedAtstring (date-time)required

ISO 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;
}