# Members

Manage workspace members - invite, update roles, and remove members

## Get All Workspace Members

 - [GET /members](https://api-docs.webwork-tracker.com/api/members/getmembers.md): Retrieve all team members in your workspace. Members are automatically filtered based on your role and permissions. You can apply additional filters to narrow down results. Rate and financial information is only visible if you have permission to view rates. Security: Only members of the specified workspace can access its member list.

## Invite New Member

 - [POST /members](https://api-docs.webwork-tracker.com/api/members/invitemember.md): Invite a new member to your workspace. This endpoint is only accessible to Owners and Executive Managers. By default an invitation email and an in-app notification are sent to the invited member. Set notify to false to add the member silently — no email and no notification are sent, and you distribute the returned invitation_link yourself.

## Get Single Member

 - [GET /members/{memberId}](https://api-docs.webwork-tracker.com/api/members/getmember.md): Retrieve detailed information about a specific member in your workspace. Rate and financial information is only visible if you have permission to view rates.

## Update Member

 - [PUT /members/{memberId}](https://api-docs.webwork-tracker.com/api/members/updatemember.md): Update member information. This endpoint is only accessible to Owners and Executive Managers. You can update profile information, role, rate settings, and other member attributes. Security: You must be a member of the workspace AND have Owner/Executive Manager role. You can only update members within workspaces you have access to.

## Delete (Archive) Member

 - [DELETE /members/{memberId}](https://api-docs.webwork-tracker.com/api/members/deletemember.md): Delete (archive) a member from your workspace. This is a soft delete - the member can be restored later. This endpoint is only accessible to Owners and Executive Managers.

## Restore Archived Member

 - [POST /members/{memberId}/restore](https://api-docs.webwork-tracker.com/api/members/restoremember.md): Restore a previously deleted (archived) member to your workspace. This endpoint is only accessible to Owners and Executive Managers.

## Activate Invited Member

 - [POST /members/{memberId}/activate](https://api-docs.webwork-tracker.com/api/members/activatemember.md): Activate an invited member on their behalf — the API equivalent of the member opening the invitation email and accepting it. Instead of waiting for the member to click the link and choose a password, you set the password in this request and the member's account becomes active immediately.

How it works

1. Invite the member with POST /members — this creates a pending (inactive) account and a pending invitation.
2. Call this endpoint with the user_id returned by the invite and the password to set.
3. The member's account and workspace membership are activated, the password is set, the pending invitation is consumed (the emailed link stops working), and the member.activated webhook event is fired — exactly as if the member had accepted the invitation themselves.
4. The member can immediately sign in to WebWork with their email and the password you set.

Availability — request access first

This endpoint is disabled by default for every workspace. If you want to use it, you need to request it from WebWork support (support@webwork-tracker.com) and a WebWork admin must enable API member activation for your workspace; until it is enabled, requests return 403 with feature_required: "api_member_activation". In addition, the workspace must be on the Plus plan or higher (otherwise 403 with plan_required: "plus"), and the caller must be an Owner or Executive Manager of the workspace.

Activation rules

- The member must be a pending invited account that has never been activated. Members who already have an active WebWork account must accept the invitation via the email link themselves — requests for them return 409 (this prevents overwriting the password of an existing account).
- A pending, non-expired invitation must exist for the member (invitations expire 30 days after they are sent; expired ones return 410 — re-invite the member to get a fresh invitation).
- The member's email domain must match the workspace's company email domain — e.g. if the workspace owner signed up with @acme.com, only @acme.com members can be activated this way. Free email providers such as gmail.com never qualify as a company domain (422).
- The password must contain at least 1 uppercase letter, 1 lowercase letter and 1 number, with length between the workspace's minimum password length (default 8) and 36 characters (422).

