Workspace Members
Add, deactivate, and reactivate members in your workspace via the API.
The Workspace Members API lets you manage who belongs to your workspace. Common use cases include automating employee onboarding and offboarding, syncing membership with your HR system, and auditing workspace access.
Endpoints
Section titled “Endpoints”| Method | Path | Scope | Description |
|---|---|---|---|
| GET | /api/v1/workspace_members | members.read | List active members |
| POST | /api/v1/workspace_members | members.write | Add a member |
| POST | /api/v1/workspace_members/:id/deactivate | members.write | Deactivate a member |
| POST | /api/v1/workspace_members/:id/reactivate | members.write | Reactivate a member |
Member object
Section titled “Member object”| Field | Type | Description |
|---|---|---|
id | string | Unique member ID |
email | string | Member’s email address |
name | string | Member’s display name |
role | string | Role in the workspace (e.g., "member", "admin") |
deactivated_at | string | null | ISO 8601 timestamp if deactivated, otherwise null |
created_at | string | ISO 8601 timestamp when the member was added |
List members
Section titled “List members”GET /api/v1/workspace_membersReturns a paginated list of active members in your workspace, ordered by most recently added.
Query parameters
Section titled “Query parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
email | string | — | Filter by exact email address |
role | string | — | Filter by role |
limit | integer | 25 | Results per page (1-100) |
cursor | string | — | Cursor for the next page of results |
Example request
Section titled “Example request”curl https://api.skipup.ai/api/v1/workspace_members \ -H "Authorization: Bearer $SKIPUP_API_KEY"Example response
Section titled “Example response”{ "data": [ { "id": "mem_01H...", "name": "Alice Johnson", "role": "admin", "deactivated_at": null, "created_at": "2025-01-10T09:00:00Z" }, { "id": "mem_02H...", "name": "Bob Smith", "role": "member", "deactivated_at": null, "created_at": "2025-01-08T14:30:00Z" } ], "meta": { "limit": 25, "has_more": false }}Filter by email
Section titled “Filter by email”Look up a specific member by their email address:
-H "Authorization: Bearer $SKIPUP_API_KEY"Paginate through results
Section titled “Paginate through results”When has_more is true, pass the next_cursor value to fetch the next page:
curl "https://api.skipup.ai/api/v1/workspace_members?limit=10&cursor=mem_02H..." \ -H "Authorization: Bearer $SKIPUP_API_KEY"Add a member
Section titled “Add a member”POST /api/v1/workspace_membersAdds an existing SkipUp user to your workspace. The user must already have a SkipUp account.
Request body
Section titled “Request body”| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | Email address of the user to add |
role | string | No | Role to assign. Defaults to "member" |
Example request
Section titled “Example request”curl -X POST https://api.skipup.ai/api/v1/workspace_members \ -H "Authorization: Bearer $SKIPUP_API_KEY" \ -H "Content-Type: application/json" \Example response
Section titled “Example response”{ "data": { "id": "mem_03H...", "name": "Carol Davis", "role": "member", "deactivated_at": null, "created_at": "2025-02-01T11:00:00Z" }}Deactivate a member
Section titled “Deactivate a member”POST /api/v1/workspace_members/:id/deactivateDeactivates a member, removing their access to the workspace. If the member has active meeting requests, you must provide a transfer_to email to reassign those requests to another member before deactivation.
Request body
Section titled “Request body”| Parameter | Type | Required | Description |
|---|---|---|---|
transfer_to | string | Conditional | Email of the member to transfer active meeting requests to. Required if the member has active meeting requests. |
Example request (no active requests)
Section titled “Example request (no active requests)”curl -X POST https://api.skipup.ai/api/v1/workspace_members/mem_03H.../deactivate \ -H "Authorization: Bearer $SKIPUP_API_KEY"Example request (with transfer)
Section titled “Example request (with transfer)”curl -X POST https://api.skipup.ai/api/v1/workspace_members/mem_03H.../deactivate \ -H "Authorization: Bearer $SKIPUP_API_KEY" \ -H "Content-Type: application/json" \Example response
Section titled “Example response”{ "data": { "id": "mem_03H...", "name": "Carol Davis", "role": "member", "deactivated_at": "2025-02-05T16:00:00Z", "created_at": "2025-02-01T11:00:00Z" }}Reactivate a member
Section titled “Reactivate a member”POST /api/v1/workspace_members/:id/reactivateRestores a previously deactivated member. If the member is already active, you’ll receive a 422 error.
Example request
Section titled “Example request”curl -X POST https://api.skipup.ai/api/v1/workspace_members/mem_03H.../reactivate \ -H "Authorization: Bearer $SKIPUP_API_KEY"Example response
Section titled “Example response”{ "data": { "id": "mem_03H...", "name": "Carol Davis", "role": "member", "deactivated_at": null, "created_at": "2025-02-01T11:00:00Z" }}Offboarding workflow
Section titled “Offboarding workflow”When an employee leaves your organization, you need to deactivate their workspace membership without losing their in-progress meeting requests. Here’s a typical offboarding flow:
1. Look up the departing member
Section titled “1. Look up the departing member” -H "Authorization: Bearer $SKIPUP_API_KEY"Save the member id from the response.
2. Deactivate and transfer their meetings
Section titled “2. Deactivate and transfer their meetings”Pass the transfer_to parameter with a colleague’s email to reassign any active meeting requests:
curl -X POST https://api.skipup.ai/api/v1/workspace_members/mem_03H.../deactivate \ -H "Authorization: Bearer $SKIPUP_API_KEY" \ -H "Content-Type: application/json" \All of Carol’s active meeting requests are now owned by Alice, and Carol’s access is revoked.
3. Verify the deactivation
Section titled “3. Verify the deactivation” -H "Authorization: Bearer $SKIPUP_API_KEY"The member will no longer appear in the active members list. The deactivated_at field on the member object confirms when they were deactivated.