Team Members API
Team members are the users who have access to your Synapse workspace. Each member has a role that determines their permissions within the workspace. You can invite new members by email, update roles, deactivate access, and manage pending invitations through this API.
For a user guide on managing team members in the dashboard, see Team Roles & Permissions.
Endpoints
| Method | Path | Description |
|---|---|---|
GET | /v1/workspace/members | List team members |
POST | /v1/workspace/members/invite | Invite a new member |
PUT | /v1/workspace/members/{member_id}/role | Update a member's role |
DELETE | /v1/workspace/members/{member_id} | Deactivate a member |
POST | /v1/workspace/members/{member_id}/activate | Re-activate a member |
GET | /v1/workspace/members/invitations | List pending invitations for current user |
POST | /v1/workspace/members/invitations/{invitation_id}/accept | Accept a pending invitation |
List Members
Returns all team members for the current workspace, including both active members and pending invitations by default.
Auth: JWT (dashboard). Requires members:read permission.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
include_inactive | boolean | true | Include inactive members (pending invitations, deactivated members) |
Response
Members with is_active: false and invite_accepted_at: null are pending invitations that have not yet been accepted.
Invite a Member
Sends an invitation to a new team member. The invited user appears as an inactive member until they accept. Plan limits on member count are enforced at invite time.
Auth: JWT (dashboard). Requires members:write permission.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address of the person to invite (must be a valid email) |
role | string | Yes | Role to assign: admin, developer, marketing, operations, or viewer |
name | string | No | Display name for the invited member (max 255 characters) |
You cannot invite someone with the owner role. Each workspace has exactly one owner, enforced at the database level.
Response (201 Created)
Error: Duplicate Invite (409 Conflict)
Error: Plan Limit Reached (403 Forbidden)
Update Member Role
Change the role of an existing team member. You cannot change your own role, and you cannot assign the owner role.
Auth: JWT (dashboard). Requires members:write permission.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
role | string | Yes | New role: admin, developer, marketing, operations, or viewer |
Response (200 OK)
Error: Invalid Operation (400 Bad Request)
Returned when attempting to change your own role or change the owner's role:
Deactivate a Member
Soft-deactivates a team member, revoking their access to the workspace. The member record is retained for audit purposes. You cannot deactivate yourself or the workspace owner.
Auth: JWT (dashboard). Requires members:write permission.
Response
Returns 204 No Content on success.
Error: Invalid Operation (400 Bad Request)
Re-activate a Member
Restores access for a previously deactivated member, returning them to their original role.
Auth: JWT (dashboard). Requires members:write permission.
Response (200 OK)
List Pending Invitations
Lists pending workspace invitations for the currently authenticated user across all workspaces. This is used by the dashboard to show the user which workspaces they have been invited to join.
Auth: JWT (dashboard). No specific permission required beyond authentication.
Response
If the user has no pending invitations, invitations is an empty array.
Accept an Invitation
Accepts a pending invitation, activating the membership and linking the current user's identity to the new workspace. After accepting, the frontend should switch the workspace context.
Auth: JWT (dashboard). The invitation must belong to the current user's email address.
Response (200 OK)
Error: Not Found (404)
Roles Reference
| Role | Description |
|---|---|
owner | Full access including billing and workspace deletion. One per workspace. |
admin | All CRM permissions plus user management. No billing access. |
developer | Flows, templates, segments, contacts, logs, and dev tools. |
marketing | Flows, templates, segments, and analytics. |
operations | Contacts (read-only), email logs, and analytics. |
viewer | Analytics read-only. |
Plan Limits
| Plan | Max Members |
|---|---|
| Free | 1 |
| Starter | 3 |
| Growth | 10 |
| Enterprise | Unlimited |
When the member limit is reached, invite requests return 403 with plan_limit_reached.