Manage Shared Spaces
Working with Shared Spaces via API lets customers and partners automate Shared Space creation, integrate with existing tools, and build manage existing Shared Spaces. They help embed Shared Spaces into sales processes, driving adoption, improving buyer engagement, and enhancing deal outcomes while streamlining workflows and saving time.
Key Benefits
-
Drive Consistency: Embed the use of Shared Spaces in your organization for consistent buyer experiences.
-
Save Time: Automate the creation of Shared Spaces and key updates directly from your CRM or other tools.
-
Boost Collaboration: Seamlessly integrate Shared Spaces with your existing workflows (e.g., deal stage changes or quote generation).
-
Drive Innovation: Build tailored applications and workflows that fit your specific business needs.
By embedding Shared Spaces into sales processes, they can help to drive adoption, improve buyer engagement, and enhance deal outcomes. With automation, sellers can focus on building stronger relationships and closing deals faster, while delivering consistent, high-quality buyer experiences. Here are a few examples of what’s possible:
| Automate Creation | Standardize Workflows | Integrate with Other Systems | Manage Access | Build Custom Workflows |
|---|---|---|---|---|
| Automatically create a Shared Space, for example when a deal advances in your CRM. | Use templates to ensure consistentency and to adapt for different scenarios. | Create a Shared Space or trigger automatic updates from other systems (CRM, CPQ, etc.). | Modify ownership and user access when information changes in your CRM. | Create Shared Spaces for specific scenarios or ad hoc collaboration. |
Auto-creation Notifications
Whenever the automatic creation of a new Shared Space is triggered, the designated owner receives a notification about it.
This notification includes the following information:
-
Subject - A new Shared Space has been created for you.
-
Body - You have a new automatically created Shared Space, [Shared Space Name]. As the assigned owner, you have full control to personalize and manage this Shared Space. This automation was configured by your Showpad administrator.
-
View Shared Space - A direct link to the new Shared Space.
This notification can not be modified or customized.
- Plan: Ultimate | Advanced or Expert
- Permissions: Administrator access to Showpad's Admin App
- Config: Shared Spaces enabled
Base Endpoint
The base endpoint for Shared Space management calls is:
https://{{subdomain}}.api.showpad.com/v4
Every API v4 request needs to be prefixed with the base endpoint.
Requests made using an API token associated with a user who is not a participant in the Shared Space (always the case when creating a Shared Space), activities in the Shared Space activity timeline will appear as one of the following:
-
An automation created the Shared Space
-
An automation transferred ownership to Sales User
Create and Update
Request Body
Your Create Shared Space and Update Shared Space requests should include the following information:
| Fields | Data Type | Description |
|---|---|---|
publicUri | string | Create a customized URL with the name you prefer.This name should be unique.
Once the Shared Space is created, this URI:
|
userId | string | The identifier of the user that will be the new Shared Space's owner. Once the Shared Space has been created:
|
title | string | A customer-facing name for the new Shared Space. Note: This field is optional if using a template that has a title. |
isExternalDownloadAllowed | boolean | Allows Shared Space participants to download content. Possible values:
|
isExternalInviteAllowed | boolean | Allows participants to invite others to the Shared Space. Possible values:
|
isExternalUploadAllowed | boolean | Allows participants to upload their own documents to the Shared Space. Possible values:
Note: The Collaborate+ add-on is required for this. |
description | string | Descriptive text to describe the Shared Space. |
id (Sharing Theme) | string | The identifier of a Sharing Theme. You can use a List of Sharing Themes request to find one. Note: If not set, the Global Theme will be used |
id (Shared Space Template) | string | The identifier of a Shared Space Template. You can use a List of Shared Space Templates request to find one. Note: This feature requires activation. Please contact your Customer Success Manager if you're interested in using it. |
Create Shared Space
You can create a new Shared Spaces with the following request:
| Method | Endpoint | Description |
|---|---|---|
POST | /shared-spaces | Creates a new Shared Space. |
Example 1
Create a Shared Space
curl -X POST \
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces \
--header 'Authorization: Bearer MyApiToken' \
--header 'Content-Type: application/json' \
--data '{
"publicUri": "my-shared-space",
"title": "Sales and Marketing teams",
"owner": {
"userId": "9c5f3aa0784df25db1db821354e337e9"
},
}'
Response
{
"publicUri": "my-shared-space",
"owner": {
"userId": "9c5f3aa0784df25db1db821354e337e9"
},
"title": "Sales and Marketing teams",
"isExternalUploadAllowed": false,
"isExternalInviteAllowed": true,
"isExternalDownloadAllowed": true,
"description": null,
"theme": {
"id": "9c5f3aa0784df25db1db821354e337e9"
},
"sharedSpaceTemplate": null
}
Example 2
Create a Shared Space from a template
curl -X POST \
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces \
--header 'Authorization: Bearer MyApiToken' \
--header 'Content-Type: application/json' \
--data '{
"publicUri": "marketing-space",
"description": "Custom description from request",
"sharedSpaceTemplate": {
"id": "976491ea-d7cb-42ca-a576-eff0ccd1957d"
}
"owner": {
"userId": "b5f5e881324f61479002be5cda41b1ca"
},
}'
Response
{
"id": "95e63d4a4d049cb63fea74de4bcb2c90",
"title": "Marketing & Revenue Collaboration",
"publicUri": "marketing-space",
"publicUrl": "https://{{subdomain}}.showpad.com/s/marketing-space",
"status": "ACTIVE",
"isExternalUploadAllowed": false,
"isExternalInviteAllowed": true,
"isExternalDownloadAllowed": true,
"createdAt": "2025-01-09T11:38:06.000Z",
"lastActivityAt": "2025-01-09T11:38:05.649Z",
"archivedAt": null,
"description": "Custom description from request",
"owner": {
"userId": "b5f5e881324f61479002be5cda41b1ca"
},
"theme": {
"id": "51be10f001cd0303a4e308a22e051ecb5385615a564eeef116fec329acb33276"
}
}
Example 3
Create a Shared Space with specified owner and theme
curl -X POST \
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces \
--header 'Authorization: Bearer MyApiToken' \
--header 'Content-Type: application/json' \
--data '{
"title": "Example SharedSpace",
"owner": {
"userId": "b5f5e881324f61479002be5cda41b1ca"
},
"theme": {
"id": "51be10f001cd0303a4e308a22e051ecb5385615a564eeef116fec329acb33276"
}
}
Response
The publicUri was not specified in the request, so it was autogenerated.
{
"id": "2132ee1e1f0495ffa445041b52cc062e",
"title": "Example SharedSpace",
"publicUri": "01jh5e2nwf994wvg5h1rvrtf12",
"publicUrl": "https://{{subdomain}}.showpad.com/s/01jh5e2nwf994wvg5h1rvrtf12",
"status": "ACTIVE",
"isExternalUploadAllowed": false,
"isExternalInviteAllowed": true,
"isExternalDownloadAllowed": true,
"createdAt": "2025-01-09T11:44:30.000Z",
"lastActivityAt": "2025-01-09T11:44:29.264Z",
"archivedAt": null,
"description": "",
"owner": {
"userId": "b5f5e881324f61479002be5cda41b1ca"
},
"theme": {
"id": "51be10f001cd0303a4e308a22e051ecb5385615a564eeef116fec329acb33276"
}
}
Update Shared Space
| Method | Endpoint | Description |
|---|---|---|
PATCH | /shared-spaces/{shareId} | Updates a specific Shared Space (specified by {shareId}). |
Example
curl -X PATCH \
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces/95e63d4a4d049cb63fea74de4bcb2c90 \
--header 'Authorization: Bearer MyApiToken' \
--header 'Content-Type: application/json' \
--data '{
"title": "ARCHIVED Marketing & Revenue Collaboration",
"status": "ARCHIVED",
"isExternalUploadAllowed": false,
"isExternalInviteAllowed": false,
"isExternalDownloadAllowed": false,
"description": "ARCHIVED",
"theme": {
"id": "51be10f001cd0303a4e308a22e051ecbcb1a5b0ba9ae9e5bb38167ed0c5b3a09"
}
}
Response
{
"id": "95e63d4a4d049cb63fea74de4bcb2c90",
"title": "ARCHIVED Marketing & Revenue Collaboration",
"publicUri": "marketing-space",
"publicUrl": "https://{{subdomain}}.showpad.com/s/marketing-space",
"status": "ARCHIVED",
"isExternalUploadAllowed": false,
"isExternalInviteAllowed": false,
"isExternalDownloadAllowed": false,
"createdAt": "2025-01-09T11:38:06.000Z",
"lastActivityAt": "2025-01-09T11:38:07.000Z",
"archivedAt": "2025-01-09T11:51:24.271Z",
"description": "ARCHIVED",
"owner": {
"userId": "b5f5e881324f61479002be5cda41b1ca"
},
"theme": {
"id": "51be10f001cd0303a4e308a22e051ecbcb1a5b0ba9ae9e5bb38167ed0c5b3a09"
}
}
Retrieve Shared Spaces
Single Shared Space
| Method | Endpoint | Description |
|---|---|---|
GET | /shared-spaces/{shareId} | Returns a single Shared Space (specified by {shareId}). |
Example
curl -X GET \
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces/b5f5e881324f61479002be5cda41b1ca \
-H 'Authorization: Bearer MyApiToken' \
-H 'Content-Type: application/json'
Response
{
"id": "95e63d4a4d049cb63fea74de4bcb2c90",
"title": "Marketing & Revenue Collaboration",
"publicUri": "marketing-space",
"publicUrl": "https://{{subdomain}}.showpad.com/s/marketing-space",
"status": "ACTIVE",
"isExternalUploadAllowed": false,
"isExternalInviteAllowed": true,
"isExternalDownloadAllowed": true,
"createdAt": "2025-01-09T11:38:06.000Z",
"lastActivityAt": "2025-01-09T11:38:07.000Z",
"archivedAt": null,
"description": "Custom description from request",
"owner": {
"userId": "b5f5e881324f61479002be5cda41b1ca"
},
"theme": {
"id": "51be10f001cd0303a4e308a22e051ecb5385615a564eeef116fec329acb33276"
}
}
List of Shared Spaces
You can retreive a list of all the Shared Spaces a user participates in or owns with the following request:
| Method | Endpoint | Description |
|---|---|---|
GET | /shared-spaces | Returns a list of all Shared Spaces. The scope of the returned list is determined by the user's role. |
Authorization and Scopes
This endpoint uses role-based access control. The list of Shared Spaces returned will differ based on the role assigned to the API key's owner:
| Role | Access Rule |
|---|---|
| Administrator | Returns all Shared Spaces. |
| Manager | Returns all Shared Spaces that you own or are a member of, plus all Shared Spaces belonging to users who report to you. |
| User | Returns only the Shared Spaces that you are a member of. |
You can filter the list by participant email, owner email, title, etc.
Example 1 - Administrator
Retrieve a combined list of all Shared Spaces.
curl -X GET \
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces \
-H 'Authorization: Bearer MyApiToken' \
-H 'Content-Type: application/json' \
Response
200: Request is successful
{
"count": 2,
"items": [
{
"id": "2132ee1e1f0495ffa445041b52cc062e",
"title": "Example SharedSpace",
"publicUri": "01jh5e2nwf994wvg5h1rvrtf12",
"publicUrl": "https://{{subdomain}}.showpad.com/s/01jh5e2nwf994wvg5h1rvrtf12",
"status": "ACTIVE",
"isExternalUploadAllowed": false,
"isExternalInviteAllowed": true,
"isExternalDownloadAllowed": true,
"createdAt": "2025-01-09T11:44:30.000Z",
"lastActivityAt": "2025-01-09T11:44:30.000Z",
"archivedAt": null
},
{
"id": "95e63d4a4d049cb63fea74de4bcb2c90",
"title": "Marketing & Revenue Collaboration",
"publicUri": "marketing-space",
"publicUrl": "https://{{subdomain}}.showpad.com/s/marketing-space",
"status": "ACTIVE",
"isExternalUploadAllowed": false,
"isExternalInviteAllowed": true,
"isExternalDownloadAllowed": true,
"createdAt": "2025-01-09T11:38:06.000Z",
"lastActivityAt": "2025-01-09T11:38:07.000Z",
"archivedAt": null
}
]
}
Example 2 - Manager
Retrieve a combined list of all Shared Spaces accessible to you, including those owned by or shared with your direct reports.
curl -X GET 'https://{{subdomain}}.api.showpad.com/v4/shared-spaces' \
-H 'Authorization: Bearer YourManagerApiToken'
For more granular control, you can use the new managerId=mine parameter. This filters the list to show only the Shared
Spaces you have access to because of your team, excluding those where you are already a direct participant or owner.
# Show only Shared Spaces accessible via your direct reports
curl -X GET 'https://{{subdomain}}.api.showpad.com/v4/shared-spaces?managerId=mine' \
-H 'Authorization: Bearer YourManagerApiToken'
You can further refine these manager view results using the teamRole filter to specify your team's role in the Shared
Space.
# Show Spaces where your direct reports are OWNERS
curl -X GET 'https://{{subdomain}}.api.showpad.com/v4/shared-spaces?managerId=mine&teamRole=OWNER' \
-H 'Authorization: Bearer YourManagerApiToken'
# Show Spaces where your direct reports are PARTICIPANTS
curl -X GET 'https://{{subdomain}}.api.showpad.com/v4/shared-spaces?managerId=mine&teamRole=PARTICIPANT' \
-H 'Authorization: Bearer YourManagerApiToken'
Delete Shared Space
| Method | Endpoint | Description |
|---|---|---|
DELETE | /shared-spaces/{sharedSpaceId} | Permanently removes a single Shared Space (specified by {sharedSpaceId}). |
Example
DELETE https://{{subdomain}}.api.showpad.com/v4/shared-spaces/2132ee1e1f0495ffa445041b52cc062e
Response
204;
Transfer Shared Space Ownership
In scenarios such as a user being deactivated or changes within the account team, it becomes necessary to transfer ownership of Shared Spaces. There are two ways to transfer ownership of a Shared Space:
- via the Showpad Web App - Only the current owner can transfer the ownership.
- via API - The current owner or an admin can transfer the ownership. The new owner of the Shared Space will receive a notification of the transfer of ownership.
| Method | Endpoint | Description |
|---|---|---|
POST | /shared-spaces/{shared space ID}/transfer-ownership | Transfers the ownership of a Shared Space from one user to another. The Shared Space's new owner's ID is specified in the request body. |
In order to transfer the ownership of a Shared Spaces, you must first have:
- The identifier of the Shared Space
- The identifier of the Shared Space's new owner
Now that you've retrieved both of the necessary IDs, you can make a request to this endpoint:
Example
curl -X POST \
'https://{{subdomain}}.api.showpad.com/v4/shared-spaces/{{shared space ID}}/transfer-ownership' \
-H 'accept: application/problem+json' \
-H 'Content-Type: application/json' \
-data '{
"userId": "{{owner ID}}"
}'
Response
204: Ownership was successfully transferred`
Troubleshooting
| Code | Description |
|---|---|
403 Forbidden | Requester has no admin right and is not owner of requested shared-space. |
400 Bad Request | New owner is not found. |
400 Bad Request | New owner is deactivated user. |
400 Bad Request | New owner has no content license. |
404 Not found | Shared space not found. |