Team Member
A person in the workspace — the author or assignee of most other resources.
theme and storyPointsCapacity are writable only on your own member record; writing another member's returns 403 whatever your role.
List Team Members
List members. Returns a paginated envelope (data, total, limit, hasMore, nextCursor). Filterable by 4 fields. Ordered by name unless you pass sort.
Required scope: members:read
query Parameters
sortField to sort by. Prefix with - for descending (-createdAt); a createdAt:desc / createdAt:asc suffix works too, but never both markers at once. Default: name.
cursorOpaque cursor for the next page (the envelope nextCursor).
limitItems per page (1–200, default 50). A larger value is clamped to the cap rather than rejected, so always follow nextCursor instead of assuming one page held everything.
includeTotalWhen true, the response envelope includes the total number of matching rows. Omit it for cheaper pagination.
expandComma-separated relations to inline (see Expanding objects above). Valid values are listed in the enum.
name[eq]Filter where name equals.
name[contains]Filter where name contains.
name[startsWith]Filter where name starts with.
email[eq]Filter where email equals.
email[contains]Filter where email contains.
online[eq]Filter where online equals.
pending[eq]Filter where pending equals.
List Team Members › Responses
OK
The page of results.
totalTotal rows matching the query (across pages).
limithasMorenextCursorOpaque cursor for the next page; null on the last page.
Create Team Member
Create a Team Member. Server-assigned fields are ignored if sent. Creating a member is an invitation. It emails the address you supply, consumes a seat (a team at its plan limit gets 409), and needs the inviteToTeam permission — plus inviteToProject if you pass projectId. It is idempotent on an email that is already active (you get the existing member back), it reactivates a previously removed member rather than creating a second one, and it cannot invite someone as owner. Only email, name, roleId and projectId are read; everything else on the member is either set by the person themselves or derived.
Required scope: members:write
query Parameters
expandComma-separated relations to inline (see Expanding objects above). Valid values are listed in the enum.
Headers
Idempotency-KeyOptional replay key (see Idempotent requests above).
Create Team Member › Request Body
emailMember's email address.
nameThe invited person's display name. Defaults to the email address when omitted.
roleIdThe member's role, which decides what they may do. Changing it re-roles the member and can cascade permission changes across the workspace; it requires the editRole permission. A role name (for example manager) is accepted in place of an id.
projectIdOptionally add the invited member to this project at invite time.
Create Team Member › Responses
Created
idTeam-member id (primary key)
userIdThe global user-account id behind this member. Not resolvable through this API — id is what every other resource references.
nameMember's display name
emailMember's email address.
avatarAvatar image URL.
initialsTwo-letter initials, shown when there is no avatar.
colorHex tint used for this member's avatar placeholder.
onlineWhether the member was connected at the moment this response was built. Point-in-time only; it is not pushed to you.
tzIanaIANA timezone, for example "America/Los_Angeles".
pendingTrue while the member has been invited but has not accepted yet. An active member has pending: false and removed: false.
removedTrue once the member has been removed from the team. Members are removed, not soft-deleted: there is no purgeAt and no restore window, though inviting the same email again reactivates the original record.
roleIdThe member's role, which decides what they may do. Changing it re-roles the member and can cascade permission changes across the workspace; it requires the editRole permission. A role name (for example manager) is accepted in place of an id.
themeThe colour theme this member sees in the Nifty app. Writable only on your own member record — writing another member's returns 403 whatever your role.
storyPointsCapacityHow many story points this member is expected to carry in a sprint. Writable only on your own member record.
The linked attachedCustomField rows, present only when you pass ?expand=customFields.
Get Team Member
Retrieve a single Team Member by id.
Required scope: members:read
path Parameters
id^[0-9A-Za-z_!]+$ · requiredId of the Team Member.
query Parameters
expandComma-separated relations to inline (see Expanding objects above). Valid values are listed in the enum.
Get Team Member › Responses
OK
idTeam-member id (primary key)
userIdThe global user-account id behind this member. Not resolvable through this API — id is what every other resource references.
nameMember's display name
emailMember's email address.
avatarAvatar image URL.
initialsTwo-letter initials, shown when there is no avatar.
colorHex tint used for this member's avatar placeholder.
onlineWhether the member was connected at the moment this response was built. Point-in-time only; it is not pushed to you.
tzIanaIANA timezone, for example "America/Los_Angeles".
pendingTrue while the member has been invited but has not accepted yet. An active member has pending: false and removed: false.
removedTrue once the member has been removed from the team. Members are removed, not soft-deleted: there is no purgeAt and no restore window, though inviting the same email again reactivates the original record.
roleIdThe member's role, which decides what they may do. Changing it re-roles the member and can cascade permission changes across the workspace; it requires the editRole permission. A role name (for example manager) is accepted in place of an id.
themeThe colour theme this member sees in the Nifty app. Writable only on your own member record — writing another member's returns 403 whatever your role.
storyPointsCapacityHow many story points this member is expected to carry in a sprint. Writable only on your own member record.
The linked attachedCustomField rows, present only when you pass ?expand=customFields.
Delete Team Member
Deactivate this Team Member. It stops appearing in list results but the record is preserved and can be restored. This removes the person from the team and cascades: their task, list and status assignments are handed to the team owner, their chat and document memberships are dropped, their notifications are purged and their tokens are revoked. It requires removeFromTeam, and the team owner cannot be removed. Restoring the member restores the membership only — reassigned tasks, dropped chat and document memberships, and revoked tokens all stay as the removal left them.
Required scope: members:delete
path Parameters
id^[0-9A-Za-z_!]+$ · requiredId of the Team Member.
Headers
Idempotency-KeyOptional replay key (see Idempotent requests above).
Delete Team Member › Responses
No Content
Update Team Member
Partially update a Team Member. Only the fields you send are changed.
Required scope: members:write
path Parameters
id^[0-9A-Za-z_!]+$ · requiredId of the Team Member.
query Parameters
expandComma-separated relations to inline (see Expanding objects above). Valid values are listed in the enum.
Headers
Idempotency-KeyOptional replay key (see Idempotent requests above).
Update Team Member › Request Body
roleIdThe member's role, which decides what they may do. Changing it re-roles the member and can cascade permission changes across the workspace; it requires the editRole permission. A role name (for example manager) is accepted in place of an id.
themeThe colour theme this member sees in the Nifty app. Writable only on your own member record — writing another member's returns 403 whatever your role.
storyPointsCapacityHow many story points this member is expected to carry in a sprint. Writable only on your own member record.
Set custom-field values on this member. Each entry is { customFieldId, value } and value is always a string — send "" to clear one. Only on update: an invite rejects it with a 400. Read them back with ?expand=customFields.
Update Team Member › Responses
OK
idTeam-member id (primary key)
userIdThe global user-account id behind this member. Not resolvable through this API — id is what every other resource references.
nameMember's display name
emailMember's email address.
avatarAvatar image URL.
initialsTwo-letter initials, shown when there is no avatar.
colorHex tint used for this member's avatar placeholder.
onlineWhether the member was connected at the moment this response was built. Point-in-time only; it is not pushed to you.
tzIanaIANA timezone, for example "America/Los_Angeles".
pendingTrue while the member has been invited but has not accepted yet. An active member has pending: false and removed: false.
removedTrue once the member has been removed from the team. Members are removed, not soft-deleted: there is no purgeAt and no restore window, though inviting the same email again reactivates the original record.
roleIdThe member's role, which decides what they may do. Changing it re-roles the member and can cascade permission changes across the workspace; it requires the editRole permission. A role name (for example manager) is accepted in place of an id.
themeThe colour theme this member sees in the Nifty app. Writable only on your own member record — writing another member's returns 403 whatever your role.
storyPointsCapacityHow many story points this member is expected to carry in a sprint. Writable only on your own member record.
The linked attachedCustomField rows, present only when you pass ?expand=customFields.
Restore Team Member
Restore a Team Member that was deleted, returning it to list results. Restoring one that is already active succeeds and changes nothing.
Required scope: members:delete
path Parameters
id^[0-9A-Za-z_!]+$ · requiredId of the Team Member.
Headers
Idempotency-KeyOptional replay key (see Idempotent requests above).
Restore Team Member › Responses
OK
idTeam-member id (primary key)
userIdThe global user-account id behind this member. Not resolvable through this API — id is what every other resource references.
nameMember's display name
emailMember's email address.
avatarAvatar image URL.
initialsTwo-letter initials, shown when there is no avatar.
colorHex tint used for this member's avatar placeholder.
onlineWhether the member was connected at the moment this response was built. Point-in-time only; it is not pushed to you.
tzIanaIANA timezone, for example "America/Los_Angeles".
pendingTrue while the member has been invited but has not accepted yet. An active member has pending: false and removed: false.
removedTrue once the member has been removed from the team. Members are removed, not soft-deleted: there is no purgeAt and no restore window, though inviting the same email again reactivates the original record.
roleIdThe member's role, which decides what they may do. Changing it re-roles the member and can cascade permission changes across the workspace; it requires the editRole permission. A role name (for example manager) is accepted in place of an id.
themeThe colour theme this member sees in the Nifty app. Writable only on your own member record — writing another member's returns 403 whatever your role.
storyPointsCapacityHow many story points this member is expected to carry in a sprint. Writable only on your own member record.