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. |
- 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. |
You can filter the list by participant email, owner email, title, etc.
Example
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
}
]
}
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. |