Skip to main content

Work Members

Work Members lets you invite collaborators to work on a work together. Each member is assigned a role that controls what they can do — from full management down to read-only access.

Roles

RoleDescriptionAssignable?
OwnerFull access — reserved for the work creatorNo (implicit)
ManagerCan invite/remove members, edit content, trigger generationYes
EditorCan edit content and items, cannot manage membersYes
ViewerRead-only accessYes

The work creator is always the Owner and does not appear in the members list. Ownership cannot be transferred.

Permission Matrix

ActionOwnerManagerEditorViewer
View work, items, and taxonomyYesYesYesYes
View member listYesYesYesYes
Edit content (items, taxonomy, settings)YesYesYes
Trigger AI generationYesYesYes
Manage schedules and advanced promptsYesYesYes
Invite and remove membersYesYes
Update member rolesYesYes
Delete the workYes
Leave the workYesYesYes

How Invitation Works

  1. A Manager or Owner calls the invite endpoint with the collaborator's email and desired role.
  2. The platform looks up the email — the user must already have an Ever Works account.
  3. A membership record is created immediately (no pending/accept flow).
  4. The invitee receives an email notification with the work name, their role, and a link to the work.
info

Invitations are direct — the invited user becomes a member as soon as the API call succeeds. There is no invitation token or acceptance step.

API

All endpoints require JWT authentication. Base path: /api/works/:workId/members

List Members

MethodEndpointDescription
GET/api/works/:id/membersList all members and the owner
curl http://localhost:3100/api/works/<work-id>/members \
-H "Authorization: Bearer <token>"

Response:

{
"status": "success",
"members": [
{
"id": "<membership-uuid>",
"userId": "<user-uuid>",
"username": "alice",
"email": "[email protected]",
"role": "editor",
"invitedBy": { "id": "<user-uuid>", "username": "bob" },
"createdAt": "2026-02-15T10:00:00.000Z"
}
],
"owner": {
"id": "<user-uuid>",
"username": "bob",
"email": "[email protected]"
}
}

The owner field always shows the work creator. The members array contains only explicit membership records (the owner is not included).

Invite a Member

MethodEndpointDescription
POST/api/works/:id/membersInvite a user by email

Required role: Manager or Owner

curl -X POST http://localhost:3100/api/works/<work-id>/members \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"role": "editor"
}'

Request body:

FieldTypeRequiredDescription
emailstringYesEmail of the user to invite (must have an existing account)
rolestringYesmanager, editor, or viewer

Errors:

StatusReason
400Role is owner or invalid
400Email belongs to the work creator
400User is already a member
404No registered user found for that email

Get Member

MethodEndpointDescription
GET/api/works/:id/members/:memberIdGet a single member's details

Update Member Role

MethodEndpointDescription
PUT/api/works/:id/members/:memberIdChange a member's role

Required role: Manager or Owner

curl -X PUT http://localhost:3100/api/works/<work-id>/members/<member-id> \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "role": "manager" }'

Remove a Member

MethodEndpointDescription
DELETE/api/works/:id/members/:memberIdRemove a member from the work

Required role: Manager or Owner

curl -X DELETE http://localhost:3100/api/works/<work-id>/members/<member-id> \
-H "Authorization: Bearer <token>"

Leave a Work

MethodEndpointDescription
POST/api/works/:id/members/leaveLeave a work you are a member of
curl -X POST http://localhost:3100/api/works/<work-id>/members/leave \
-H "Authorization: Bearer <token>"
warning

The work creator (Owner) cannot leave their own work. Only invited members can use this endpoint.

  • Works API — Full endpoint reference including member management
  • Authentication — User accounts and JWT authentication