curl --request POST \
--url https://api.dock.us/{version}/workspaces/{id}/connected-workspaces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspaceId": "PkT2mVq81xLc",
"templateId": "TmPl4t3Id001",
"name": "Acme Onboarding",
"hubspotDealId": "1234567890",
"salesforceOpportunityId": "0065g00000XyZabAAF",
"startDate": "2026-10-06",
"targetEndDate": "2026-12-15",
"actualEndDate": "2026-12-01",
"workspaceUsers": [
{
"email": "jane@acme.com",
"role": "owner"
}
],
"workspaceDomains": [
{
"domain": "acme.com",
"role": "collaborator"
}
]
}
'import requests
url = "https://api.dock.us/{version}/workspaces/{id}/connected-workspaces"
payload = {
"workspaceId": "PkT2mVq81xLc",
"templateId": "TmPl4t3Id001",
"name": "Acme Onboarding",
"hubspotDealId": "1234567890",
"salesforceOpportunityId": "0065g00000XyZabAAF",
"startDate": "2026-10-06",
"targetEndDate": "2026-12-15",
"actualEndDate": "2026-12-01",
"workspaceUsers": [
{
"email": "jane@acme.com",
"role": "owner"
}
],
"workspaceDomains": [
{
"domain": "acme.com",
"role": "collaborator"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: 'PkT2mVq81xLc',
templateId: 'TmPl4t3Id001',
name: 'Acme Onboarding',
hubspotDealId: '1234567890',
salesforceOpportunityId: '0065g00000XyZabAAF',
startDate: '2026-10-06',
targetEndDate: '2026-12-15',
actualEndDate: '2026-12-01',
workspaceUsers: [{email: 'jane@acme.com', role: 'owner'}],
workspaceDomains: [{domain: 'acme.com', role: 'collaborator'}]
})
};
fetch('https://api.dock.us/{version}/workspaces/{id}/connected-workspaces', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dock.us/{version}/workspaces/{id}/connected-workspaces",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspaceId' => 'PkT2mVq81xLc',
'templateId' => 'TmPl4t3Id001',
'name' => 'Acme Onboarding',
'hubspotDealId' => '1234567890',
'salesforceOpportunityId' => '0065g00000XyZabAAF',
'startDate' => '2026-10-06',
'targetEndDate' => '2026-12-15',
'actualEndDate' => '2026-12-01',
'workspaceUsers' => [
[
'email' => 'jane@acme.com',
'role' => 'owner'
]
],
'workspaceDomains' => [
[
'domain' => 'acme.com',
'role' => 'collaborator'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dock.us/{version}/workspaces/{id}/connected-workspaces"
payload := strings.NewReader("{\n \"workspaceId\": \"PkT2mVq81xLc\",\n \"templateId\": \"TmPl4t3Id001\",\n \"name\": \"Acme Onboarding\",\n \"hubspotDealId\": \"1234567890\",\n \"salesforceOpportunityId\": \"0065g00000XyZabAAF\",\n \"startDate\": \"2026-10-06\",\n \"targetEndDate\": \"2026-12-15\",\n \"actualEndDate\": \"2026-12-01\",\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dock.us/{version}/workspaces/{id}/connected-workspaces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"PkT2mVq81xLc\",\n \"templateId\": \"TmPl4t3Id001\",\n \"name\": \"Acme Onboarding\",\n \"hubspotDealId\": \"1234567890\",\n \"salesforceOpportunityId\": \"0065g00000XyZabAAF\",\n \"startDate\": \"2026-10-06\",\n \"targetEndDate\": \"2026-12-15\",\n \"actualEndDate\": \"2026-12-01\",\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dock.us/{version}/workspaces/{id}/connected-workspaces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"PkT2mVq81xLc\",\n \"templateId\": \"TmPl4t3Id001\",\n \"name\": \"Acme Onboarding\",\n \"hubspotDealId\": \"1234567890\",\n \"salesforceOpportunityId\": \"0065g00000XyZabAAF\",\n \"startDate\": \"2026-10-06\",\n \"targetEndDate\": \"2026-12-15\",\n \"actualEndDate\": \"2026-12-01\",\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"workspace": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"workspaceUsers": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "workspace-user",
"url": "https://api.dock.us/v1/workspace-users/RiHO4e0Ju3DS",
"role": "owner",
"user": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "user",
"url": "https://api.dock.us/v1/users/RiHO4e0Ju3DS",
"firstName": "John",
"lastName": "Doe",
"avatar": "https://dock.us/avatar.png",
"email": "john.doe@example.com",
"name": "John Doe"
}
}
],
"workspaceDomains": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "workspace-domain",
"url": "https://api.dock.us/v1/workspace-domains/RiHO4e0Ju3DS",
"role": "owner",
"domain": "dock.us"
}
],
"account": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "account",
"url": "https://api.dock.us/v1/accounts/RiHO4e0Ju3DS",
"name": "Dock",
"website": "https://dock.us",
"ownerId": "RiHO4e0Ju3DS",
"logo": "https://dock.us/logo.png",
"salesforceAccountId": "0015f00000Bg59dAAB",
"hubspotCompanyId": "8662045446"
},
"object": "workspace",
"url": "https://api.dock.us/v1/workspaces/RiHO4e0Ju3DS",
"name": "Customer Onboarding",
"workspaceUrl": "https://acme.dock.us/customer-onboarding-vRQgIvscHAiO",
"templateId": "RiHO4e0Ju3DS",
"startDate": "2024-01-01",
"targetEndDate": "2024-01-01",
"actualEndDate": "2024-01-01",
"projectAge": 100,
"taskProgress": "50",
"lastContactView": "2024-01-01T00:00:00Z",
"totalViews": 100,
"totalActions": 100,
"totalTimeSpent": 100,
"contactsCount": 100,
"deal": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"hubspotDealId": "1234567890",
"object": "deal",
"url": "https://api.dock.us/v1/deals/RiHO4e0Ju3DS",
"createdDate": "2024-01-01T00:00:00Z",
"closeDate": "2024-01-01T00:00:00Z",
"name": "Deal 1",
"amount": "100000",
"type": "New Business",
"stage": "Proposal Sent"
},
"customFields": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "custom-field",
"url": "https://api.dock.us/v1/custom-fields/RiHO4e0Ju3DS",
"variableName": "account.name",
"type": "singleCheckbox",
"options": [
{
"index": 1,
"label": "Yes",
"value": "true"
}
],
"value": "Yes"
}
]
}
}
}{
"data": {
"workspace": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"workspaceUsers": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "workspace-user",
"url": "https://api.dock.us/v1/workspace-users/RiHO4e0Ju3DS",
"role": "owner",
"user": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "user",
"url": "https://api.dock.us/v1/users/RiHO4e0Ju3DS",
"firstName": "John",
"lastName": "Doe",
"avatar": "https://dock.us/avatar.png",
"email": "john.doe@example.com",
"name": "John Doe"
}
}
],
"workspaceDomains": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "workspace-domain",
"url": "https://api.dock.us/v1/workspace-domains/RiHO4e0Ju3DS",
"role": "owner",
"domain": "dock.us"
}
],
"account": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "account",
"url": "https://api.dock.us/v1/accounts/RiHO4e0Ju3DS",
"name": "Dock",
"website": "https://dock.us",
"ownerId": "RiHO4e0Ju3DS",
"logo": "https://dock.us/logo.png",
"salesforceAccountId": "0015f00000Bg59dAAB",
"hubspotCompanyId": "8662045446"
},
"object": "workspace",
"url": "https://api.dock.us/v1/workspaces/RiHO4e0Ju3DS",
"name": "Customer Onboarding",
"workspaceUrl": "https://acme.dock.us/customer-onboarding-vRQgIvscHAiO",
"templateId": "RiHO4e0Ju3DS",
"startDate": "2024-01-01",
"targetEndDate": "2024-01-01",
"actualEndDate": "2024-01-01",
"projectAge": 100,
"taskProgress": "50",
"lastContactView": "2024-01-01T00:00:00Z",
"totalViews": 100,
"totalActions": 100,
"totalTimeSpent": 100,
"contactsCount": 100,
"deal": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"hubspotDealId": "1234567890",
"object": "deal",
"url": "https://api.dock.us/v1/deals/RiHO4e0Ju3DS",
"createdDate": "2024-01-01T00:00:00Z",
"closeDate": "2024-01-01T00:00:00Z",
"name": "Deal 1",
"amount": "100000",
"type": "New Business",
"stage": "Proposal Sent"
},
"customFields": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "custom-field",
"url": "https://api.dock.us/v1/custom-fields/RiHO4e0Ju3DS",
"variableName": "account.name",
"type": "singleCheckbox",
"options": [
{
"index": 1,
"label": "Yes",
"value": "true"
}
],
"value": "Yes"
}
]
}
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request could not be understood or was missing required parameters"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Access denied. You are not authorized to access this resource"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Access to this resource is restricted"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested resource could not be found"
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please try again later"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "The server has encountered a situation it does not know how to handle"
}
}Connect a workspace
Connect a workspace to another workspace, so they share one link, one sidebar and one set of access settings, the same as Add workspace in Dock. {id} is any workspace in the group to connect to; a workspace that isn’t connected to anything yet becomes the group’s homepage.
Provide exactly one of:
workspaceIdto connect an existing workspace. It must belong to the same account and must not already be connected to other workspaces (disconnect it in Dock first). It takes over the group’s access settings, and if it is not published yet it is published with the homepage’s users and domains, replacing its own. Connecting a workspace that is already in the group returns200and changes nothing.templateIdto create a new workspace from a template inside the group. It belongs to the group’s account and is published with the group’s access settings. UnlessworkspaceUsersorworkspaceDomainsare provided, everyone with access to a workspace in the group gets the same access to the new one. Templates that require a deal needhubspotDealIdorsalesforceOpportunityId. This uses one workspace API credit, and companies on the free plan are limited to 10 workspaces total (active and archived combined).
The company must be verified to publish workspaces; otherwise this endpoint returns 403 FORBIDDEN.
curl --request POST \
--url https://api.dock.us/{version}/workspaces/{id}/connected-workspaces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspaceId": "PkT2mVq81xLc",
"templateId": "TmPl4t3Id001",
"name": "Acme Onboarding",
"hubspotDealId": "1234567890",
"salesforceOpportunityId": "0065g00000XyZabAAF",
"startDate": "2026-10-06",
"targetEndDate": "2026-12-15",
"actualEndDate": "2026-12-01",
"workspaceUsers": [
{
"email": "jane@acme.com",
"role": "owner"
}
],
"workspaceDomains": [
{
"domain": "acme.com",
"role": "collaborator"
}
]
}
'import requests
url = "https://api.dock.us/{version}/workspaces/{id}/connected-workspaces"
payload = {
"workspaceId": "PkT2mVq81xLc",
"templateId": "TmPl4t3Id001",
"name": "Acme Onboarding",
"hubspotDealId": "1234567890",
"salesforceOpportunityId": "0065g00000XyZabAAF",
"startDate": "2026-10-06",
"targetEndDate": "2026-12-15",
"actualEndDate": "2026-12-01",
"workspaceUsers": [
{
"email": "jane@acme.com",
"role": "owner"
}
],
"workspaceDomains": [
{
"domain": "acme.com",
"role": "collaborator"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workspaceId: 'PkT2mVq81xLc',
templateId: 'TmPl4t3Id001',
name: 'Acme Onboarding',
hubspotDealId: '1234567890',
salesforceOpportunityId: '0065g00000XyZabAAF',
startDate: '2026-10-06',
targetEndDate: '2026-12-15',
actualEndDate: '2026-12-01',
workspaceUsers: [{email: 'jane@acme.com', role: 'owner'}],
workspaceDomains: [{domain: 'acme.com', role: 'collaborator'}]
})
};
fetch('https://api.dock.us/{version}/workspaces/{id}/connected-workspaces', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dock.us/{version}/workspaces/{id}/connected-workspaces",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workspaceId' => 'PkT2mVq81xLc',
'templateId' => 'TmPl4t3Id001',
'name' => 'Acme Onboarding',
'hubspotDealId' => '1234567890',
'salesforceOpportunityId' => '0065g00000XyZabAAF',
'startDate' => '2026-10-06',
'targetEndDate' => '2026-12-15',
'actualEndDate' => '2026-12-01',
'workspaceUsers' => [
[
'email' => 'jane@acme.com',
'role' => 'owner'
]
],
'workspaceDomains' => [
[
'domain' => 'acme.com',
'role' => 'collaborator'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dock.us/{version}/workspaces/{id}/connected-workspaces"
payload := strings.NewReader("{\n \"workspaceId\": \"PkT2mVq81xLc\",\n \"templateId\": \"TmPl4t3Id001\",\n \"name\": \"Acme Onboarding\",\n \"hubspotDealId\": \"1234567890\",\n \"salesforceOpportunityId\": \"0065g00000XyZabAAF\",\n \"startDate\": \"2026-10-06\",\n \"targetEndDate\": \"2026-12-15\",\n \"actualEndDate\": \"2026-12-01\",\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dock.us/{version}/workspaces/{id}/connected-workspaces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceId\": \"PkT2mVq81xLc\",\n \"templateId\": \"TmPl4t3Id001\",\n \"name\": \"Acme Onboarding\",\n \"hubspotDealId\": \"1234567890\",\n \"salesforceOpportunityId\": \"0065g00000XyZabAAF\",\n \"startDate\": \"2026-10-06\",\n \"targetEndDate\": \"2026-12-15\",\n \"actualEndDate\": \"2026-12-01\",\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dock.us/{version}/workspaces/{id}/connected-workspaces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workspaceId\": \"PkT2mVq81xLc\",\n \"templateId\": \"TmPl4t3Id001\",\n \"name\": \"Acme Onboarding\",\n \"hubspotDealId\": \"1234567890\",\n \"salesforceOpportunityId\": \"0065g00000XyZabAAF\",\n \"startDate\": \"2026-10-06\",\n \"targetEndDate\": \"2026-12-15\",\n \"actualEndDate\": \"2026-12-01\",\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"data": {
"workspace": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"workspaceUsers": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "workspace-user",
"url": "https://api.dock.us/v1/workspace-users/RiHO4e0Ju3DS",
"role": "owner",
"user": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "user",
"url": "https://api.dock.us/v1/users/RiHO4e0Ju3DS",
"firstName": "John",
"lastName": "Doe",
"avatar": "https://dock.us/avatar.png",
"email": "john.doe@example.com",
"name": "John Doe"
}
}
],
"workspaceDomains": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "workspace-domain",
"url": "https://api.dock.us/v1/workspace-domains/RiHO4e0Ju3DS",
"role": "owner",
"domain": "dock.us"
}
],
"account": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "account",
"url": "https://api.dock.us/v1/accounts/RiHO4e0Ju3DS",
"name": "Dock",
"website": "https://dock.us",
"ownerId": "RiHO4e0Ju3DS",
"logo": "https://dock.us/logo.png",
"salesforceAccountId": "0015f00000Bg59dAAB",
"hubspotCompanyId": "8662045446"
},
"object": "workspace",
"url": "https://api.dock.us/v1/workspaces/RiHO4e0Ju3DS",
"name": "Customer Onboarding",
"workspaceUrl": "https://acme.dock.us/customer-onboarding-vRQgIvscHAiO",
"templateId": "RiHO4e0Ju3DS",
"startDate": "2024-01-01",
"targetEndDate": "2024-01-01",
"actualEndDate": "2024-01-01",
"projectAge": 100,
"taskProgress": "50",
"lastContactView": "2024-01-01T00:00:00Z",
"totalViews": 100,
"totalActions": 100,
"totalTimeSpent": 100,
"contactsCount": 100,
"deal": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"hubspotDealId": "1234567890",
"object": "deal",
"url": "https://api.dock.us/v1/deals/RiHO4e0Ju3DS",
"createdDate": "2024-01-01T00:00:00Z",
"closeDate": "2024-01-01T00:00:00Z",
"name": "Deal 1",
"amount": "100000",
"type": "New Business",
"stage": "Proposal Sent"
},
"customFields": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "custom-field",
"url": "https://api.dock.us/v1/custom-fields/RiHO4e0Ju3DS",
"variableName": "account.name",
"type": "singleCheckbox",
"options": [
{
"index": 1,
"label": "Yes",
"value": "true"
}
],
"value": "Yes"
}
]
}
}
}{
"data": {
"workspace": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"workspaceUsers": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "workspace-user",
"url": "https://api.dock.us/v1/workspace-users/RiHO4e0Ju3DS",
"role": "owner",
"user": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "user",
"url": "https://api.dock.us/v1/users/RiHO4e0Ju3DS",
"firstName": "John",
"lastName": "Doe",
"avatar": "https://dock.us/avatar.png",
"email": "john.doe@example.com",
"name": "John Doe"
}
}
],
"workspaceDomains": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "workspace-domain",
"url": "https://api.dock.us/v1/workspace-domains/RiHO4e0Ju3DS",
"role": "owner",
"domain": "dock.us"
}
],
"account": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "account",
"url": "https://api.dock.us/v1/accounts/RiHO4e0Ju3DS",
"name": "Dock",
"website": "https://dock.us",
"ownerId": "RiHO4e0Ju3DS",
"logo": "https://dock.us/logo.png",
"salesforceAccountId": "0015f00000Bg59dAAB",
"hubspotCompanyId": "8662045446"
},
"object": "workspace",
"url": "https://api.dock.us/v1/workspaces/RiHO4e0Ju3DS",
"name": "Customer Onboarding",
"workspaceUrl": "https://acme.dock.us/customer-onboarding-vRQgIvscHAiO",
"templateId": "RiHO4e0Ju3DS",
"startDate": "2024-01-01",
"targetEndDate": "2024-01-01",
"actualEndDate": "2024-01-01",
"projectAge": 100,
"taskProgress": "50",
"lastContactView": "2024-01-01T00:00:00Z",
"totalViews": 100,
"totalActions": 100,
"totalTimeSpent": 100,
"contactsCount": 100,
"deal": {
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"hubspotDealId": "1234567890",
"object": "deal",
"url": "https://api.dock.us/v1/deals/RiHO4e0Ju3DS",
"createdDate": "2024-01-01T00:00:00Z",
"closeDate": "2024-01-01T00:00:00Z",
"name": "Deal 1",
"amount": "100000",
"type": "New Business",
"stage": "Proposal Sent"
},
"customFields": [
{
"id": "RiHO4e0Ju3DS",
"updatedAt": "2021-01-01T00:00:00.000Z",
"createdAt": "2021-01-01T00:00:00.000Z",
"object": "custom-field",
"url": "https://api.dock.us/v1/custom-fields/RiHO4e0Ju3DS",
"variableName": "account.name",
"type": "singleCheckbox",
"options": [
{
"index": 1,
"label": "Yes",
"value": "true"
}
],
"value": "Yes"
}
]
}
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "The request could not be understood or was missing required parameters"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Access denied. You are not authorized to access this resource"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Access to this resource is restricted"
}
}{
"error": {
"code": "NOT_FOUND",
"message": "The requested resource could not be found"
}
}{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please try again later"
}
}{
"error": {
"code": "INTERNAL_SERVER_ERROR",
"message": "The server has encountered a situation it does not know how to handle"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Unique identifier
"RiHO4e0Ju3DS"
Query Parameters
Select the workspace properties that should be returned
accountId, name, workspaceUrl, templateId, startDate, targetEndDate, actualEndDate, projectAge, taskProgress, lastContactView, totalViews, totalActions, totalTimeSpent, contactsCount, account.name, account.website, account.ownerId, account.logo, account.salesforceAccountId, account.hubspotCompanyId, account.createdAt, account.updatedAt, customFields.name, customFields.type, customFields.variableName, customFields.value, workspaceDomains.domain, workspaceDomains.role, workspaceDomains.createdAt, workspaceDomains.updatedAt, workspaceUsers.role, workspaceUsers.createdAt, workspaceUsers.updatedAt, workspaceUsers.user.firstName, workspaceUsers.user.lastName, workspaceUsers.user.avatar, workspaceUsers.user.email, workspaceUsers.user.name, workspaceUsers.user.createdAt, workspaceUsers.user.updatedAt, deal.name, deal.amount, deal.closeDate, deal.createdDate, deal.type, deal.stage, deal.hubspotDealId, deal.salesforceOpportunityId Body
- Option 1
- Option 2
ID of an existing workspace to connect
"PkT2mVq81xLc"
ID of the template to create the connected workspace from
"TmPl4t3Id001"
Name of the new workspace. Defaults to the template's workspace title. Only with templateId
"Acme Onboarding"
ID of the HubSpot deal to link the new workspace to. The deal must belong to the group account's HubSpot company. Only with templateId
"1234567890"
ID of the Salesforce opportunity to link the new workspace to. The opportunity must belong to the group account's Salesforce account. Only with templateId
"0065g00000XyZabAAF"
The start date of the new workspace in YYYY-MM-DD format. Only with templateId
"2026-10-06"
The target end date of the new workspace in YYYY-MM-DD format. Only with templateId
"2026-12-15"
The actual end date of the new workspace in YYYY-MM-DD format. Only with templateId
"2026-12-01"
Users of the new workspace, instead of the group's. At least one user or domain must have the owner role. Only with templateId
Show child attributes
Show child attributes
[
{ "email": "jane@acme.com", "role": "owner" }
]
Domains of the new workspace, instead of the group's. Only with templateId
Show child attributes
Show child attributes
[
{
"domain": "acme.com",
"role": "collaborator"
}
]
Response
The workspace was already connected; nothing changed
Show child attributes
Show child attributes