curl --request POST \
--url https://api.dock.us/{version}/workspaces/{id}/access \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspaceUsers": [
{
"email": "jane@acme.com",
"role": "owner"
},
{
"email": "sam@acme.com",
"role": "viewer"
}
],
"workspaceDomains": [
{
"domain": "acme.com",
"role": "collaborator"
}
],
"notifyPeople": false,
"message": "You have been added to the workspace"
}
'import requests
url = "https://api.dock.us/{version}/workspaces/{id}/access"
payload = {
"workspaceUsers": [
{
"email": "jane@acme.com",
"role": "owner"
},
{
"email": "sam@acme.com",
"role": "viewer"
}
],
"workspaceDomains": [
{
"domain": "acme.com",
"role": "collaborator"
}
],
"notifyPeople": False,
"message": "You have been added to the workspace"
}
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({
workspaceUsers: [
{email: 'jane@acme.com', role: 'owner'},
{email: 'sam@acme.com', role: 'viewer'}
],
workspaceDomains: [{domain: 'acme.com', role: 'collaborator'}],
notifyPeople: false,
message: 'You have been added to the workspace'
})
};
fetch('https://api.dock.us/{version}/workspaces/{id}/access', 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}/access",
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([
'workspaceUsers' => [
[
'email' => 'jane@acme.com',
'role' => 'owner'
],
[
'email' => 'sam@acme.com',
'role' => 'viewer'
]
],
'workspaceDomains' => [
[
'domain' => 'acme.com',
'role' => 'collaborator'
]
],
'notifyPeople' => false,
'message' => 'You have been added to the workspace'
]),
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}/access"
payload := strings.NewReader("{\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n },\n {\n \"email\": \"sam@acme.com\",\n \"role\": \"viewer\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ],\n \"notifyPeople\": false,\n \"message\": \"You have been added to the workspace\"\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}/access")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n },\n {\n \"email\": \"sam@acme.com\",\n \"role\": \"viewer\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ],\n \"notifyPeople\": false,\n \"message\": \"You have been added to the workspace\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dock.us/{version}/workspaces/{id}/access")
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 \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n },\n {\n \"email\": \"sam@acme.com\",\n \"role\": \"viewer\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ],\n \"notifyPeople\": false,\n \"message\": \"You have been added to the workspace\"\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"
}
]
}
}
}{
"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"
}
}Set workspace access
Set workspace access
curl --request POST \
--url https://api.dock.us/{version}/workspaces/{id}/access \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workspaceUsers": [
{
"email": "jane@acme.com",
"role": "owner"
},
{
"email": "sam@acme.com",
"role": "viewer"
}
],
"workspaceDomains": [
{
"domain": "acme.com",
"role": "collaborator"
}
],
"notifyPeople": false,
"message": "You have been added to the workspace"
}
'import requests
url = "https://api.dock.us/{version}/workspaces/{id}/access"
payload = {
"workspaceUsers": [
{
"email": "jane@acme.com",
"role": "owner"
},
{
"email": "sam@acme.com",
"role": "viewer"
}
],
"workspaceDomains": [
{
"domain": "acme.com",
"role": "collaborator"
}
],
"notifyPeople": False,
"message": "You have been added to the workspace"
}
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({
workspaceUsers: [
{email: 'jane@acme.com', role: 'owner'},
{email: 'sam@acme.com', role: 'viewer'}
],
workspaceDomains: [{domain: 'acme.com', role: 'collaborator'}],
notifyPeople: false,
message: 'You have been added to the workspace'
})
};
fetch('https://api.dock.us/{version}/workspaces/{id}/access', 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}/access",
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([
'workspaceUsers' => [
[
'email' => 'jane@acme.com',
'role' => 'owner'
],
[
'email' => 'sam@acme.com',
'role' => 'viewer'
]
],
'workspaceDomains' => [
[
'domain' => 'acme.com',
'role' => 'collaborator'
]
],
'notifyPeople' => false,
'message' => 'You have been added to the workspace'
]),
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}/access"
payload := strings.NewReader("{\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n },\n {\n \"email\": \"sam@acme.com\",\n \"role\": \"viewer\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ],\n \"notifyPeople\": false,\n \"message\": \"You have been added to the workspace\"\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}/access")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n },\n {\n \"email\": \"sam@acme.com\",\n \"role\": \"viewer\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ],\n \"notifyPeople\": false,\n \"message\": \"You have been added to the workspace\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dock.us/{version}/workspaces/{id}/access")
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 \"workspaceUsers\": [\n {\n \"email\": \"jane@acme.com\",\n \"role\": \"owner\"\n },\n {\n \"email\": \"sam@acme.com\",\n \"role\": \"viewer\"\n }\n ],\n \"workspaceDomains\": [\n {\n \"domain\": \"acme.com\",\n \"role\": \"collaborator\"\n }\n ],\n \"notifyPeople\": false,\n \"message\": \"You have been added to the workspace\"\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"
}
]
}
}
}{
"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
Users of the workspace. Supplying this array replaces the workspace's entire user list — include every user who should have access, as existing users omitted from the array are removed from the workspace.
Show child attributes
Show child attributes
[
{ "email": "jane@acme.com", "role": "owner" },
{ "email": "sam@acme.com", "role": "viewer" }
]
Domains of the workspace. Supplying this array replaces the workspace's entire domain list — include every domain that should have access, as existing domains omitted from the array are removed from the workspace.
Show child attributes
Show child attributes
[
{
"domain": "acme.com",
"role": "collaborator"
}
]
Notify people for the workspace
Message to notify people
"You have been added to the workspace"
Response
Set workspace access
Show child attributes
Show child attributes