Create workspace
Creates a new workspace. The creator is automatically added as an owner.
curl --request POST \
--url https://api.example.com/workspaces \
--header 'Content-Type: application/json' \
--data '
{
"displayName": "<string>",
"description": "<string>",
"handle": "<string>",
"settings": {
"maxUploadBytes": 1,
"raster": "auto",
"retention": {
"auditLogs": {
"mode": "ephemeral"
},
"intermediates": {
"mode": "ephemeral"
},
"originalDocuments": {
"mode": "ephemeral"
},
"redactedDocuments": {
"mode": "ephemeral"
}
}
}
}
'import requests
url = "https://api.example.com/workspaces"
payload = {
"displayName": "<string>",
"description": "<string>",
"handle": "<string>",
"settings": {
"maxUploadBytes": 1,
"raster": "auto",
"retention": {
"auditLogs": { "mode": "ephemeral" },
"intermediates": { "mode": "ephemeral" },
"originalDocuments": { "mode": "ephemeral" },
"redactedDocuments": { "mode": "ephemeral" }
}
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
displayName: '<string>',
description: '<string>',
handle: '<string>',
settings: {
maxUploadBytes: 1,
raster: 'auto',
retention: {
auditLogs: {mode: 'ephemeral'},
intermediates: {mode: 'ephemeral'},
originalDocuments: {mode: 'ephemeral'},
redactedDocuments: {mode: 'ephemeral'}
}
}
})
};
fetch('https://api.example.com/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.example.com/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([
'displayName' => '<string>',
'description' => '<string>',
'handle' => '<string>',
'settings' => [
'maxUploadBytes' => 1,
'raster' => 'auto',
'retention' => [
'auditLogs' => [
'mode' => 'ephemeral'
],
'intermediates' => [
'mode' => 'ephemeral'
],
'originalDocuments' => [
'mode' => 'ephemeral'
],
'redactedDocuments' => [
'mode' => 'ephemeral'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"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.example.com/workspaces"
payload := strings.NewReader("{\n \"displayName\": \"<string>\",\n \"description\": \"<string>\",\n \"handle\": \"<string>\",\n \"settings\": {\n \"maxUploadBytes\": 1,\n \"raster\": \"auto\",\n \"retention\": {\n \"auditLogs\": {\n \"mode\": \"ephemeral\"\n },\n \"intermediates\": {\n \"mode\": \"ephemeral\"\n },\n \"originalDocuments\": {\n \"mode\": \"ephemeral\"\n },\n \"redactedDocuments\": {\n \"mode\": \"ephemeral\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/workspaces")
.header("Content-Type", "application/json")
.body("{\n \"displayName\": \"<string>\",\n \"description\": \"<string>\",\n \"handle\": \"<string>\",\n \"settings\": {\n \"maxUploadBytes\": 1,\n \"raster\": \"auto\",\n \"retention\": {\n \"auditLogs\": {\n \"mode\": \"ephemeral\"\n },\n \"intermediates\": {\n \"mode\": \"ephemeral\"\n },\n \"originalDocuments\": {\n \"mode\": \"ephemeral\"\n },\n \"redactedDocuments\": {\n \"mode\": \"ephemeral\"\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/workspaces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"displayName\": \"<string>\",\n \"description\": \"<string>\",\n \"handle\": \"<string>\",\n \"settings\": {\n \"maxUploadBytes\": 1,\n \"raster\": \"auto\",\n \"retention\": {\n \"auditLogs\": {\n \"mode\": \"ephemeral\"\n },\n \"intermediates\": {\n \"mode\": \"ephemeral\"\n },\n \"originalDocuments\": {\n \"mode\": \"ephemeral\"\n },\n \"redactedDocuments\": {\n \"mode\": \"ephemeral\"\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"username": "<string>",
"avatarUrl": "<string>",
"displayName": "<string>"
},
"displayName": "<string>",
"handle": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memberRole": "owner",
"settings": {
"maxUploadBytes": 1,
"raster": "auto",
"retention": {
"auditLogs": {
"mode": "ephemeral"
},
"intermediates": {
"mode": "ephemeral"
},
"originalDocuments": {
"mode": "ephemeral"
},
"redactedDocuments": {
"mode": "ephemeral"
}
}
},
"updatedAt": "2023-11-07T05:31:56Z",
"avatarUrl": "<string>",
"description": "<string>"
}{
"message": "<string>",
"name": "<string>"
}{
"message": "<string>",
"name": "<string>"
}<string><string>Body
Request payload for creating a new workspace.
Creates a new workspace with the specified configuration. The creator is automatically added as an owner of the workspace.
Request payload for creating a new workspace.
Creates a new workspace with the specified configuration. The creator is automatically added as an owner of the workspace.
Display name of the workspace (2-32 characters).
2 - 32Optional description of the workspace (max 500 characters).
500Optional handle. Derived from the display name when omitted.
3 - 32^[a-z0-9]+(?:-[a-z0-9]+)*$Workspace settings (approval requirement, data-retention rules). Defaults to requiring approval and keeping everything when omitted.
Show child attributes
Show child attributes
Response
Workspace response.
Workspace response.
Timestamp when the workspace was created.
Account that created this workspace.
Show child attributes
Show child attributes
Display name of the workspace.
URL-safe workspace handle. Display-only.
3 - 32^[a-z0-9]+(?:-[a-z0-9]+)*$Unique identifier of the workspace.
Role of the member in the workspace.
"owner"Workspace settings (raster policy, data-retention rules, upload cap).
maxUploadBytes is resolved to the effective per-file limit — the smaller
of the workspace's own cap and the server-wide hard limit — so a client
always reads a concrete number to enforce.
Show child attributes
Show child attributes
Timestamp when the workspace was last updated.
Serve path of the workspace's avatar (logo), when set.
Description of the workspace.
curl --request POST \
--url https://api.example.com/workspaces \
--header 'Content-Type: application/json' \
--data '
{
"displayName": "<string>",
"description": "<string>",
"handle": "<string>",
"settings": {
"maxUploadBytes": 1,
"raster": "auto",
"retention": {
"auditLogs": {
"mode": "ephemeral"
},
"intermediates": {
"mode": "ephemeral"
},
"originalDocuments": {
"mode": "ephemeral"
},
"redactedDocuments": {
"mode": "ephemeral"
}
}
}
}
'import requests
url = "https://api.example.com/workspaces"
payload = {
"displayName": "<string>",
"description": "<string>",
"handle": "<string>",
"settings": {
"maxUploadBytes": 1,
"raster": "auto",
"retention": {
"auditLogs": { "mode": "ephemeral" },
"intermediates": { "mode": "ephemeral" },
"originalDocuments": { "mode": "ephemeral" },
"redactedDocuments": { "mode": "ephemeral" }
}
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
displayName: '<string>',
description: '<string>',
handle: '<string>',
settings: {
maxUploadBytes: 1,
raster: 'auto',
retention: {
auditLogs: {mode: 'ephemeral'},
intermediates: {mode: 'ephemeral'},
originalDocuments: {mode: 'ephemeral'},
redactedDocuments: {mode: 'ephemeral'}
}
}
})
};
fetch('https://api.example.com/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.example.com/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([
'displayName' => '<string>',
'description' => '<string>',
'handle' => '<string>',
'settings' => [
'maxUploadBytes' => 1,
'raster' => 'auto',
'retention' => [
'auditLogs' => [
'mode' => 'ephemeral'
],
'intermediates' => [
'mode' => 'ephemeral'
],
'originalDocuments' => [
'mode' => 'ephemeral'
],
'redactedDocuments' => [
'mode' => 'ephemeral'
]
]
]
]),
CURLOPT_HTTPHEADER => [
"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.example.com/workspaces"
payload := strings.NewReader("{\n \"displayName\": \"<string>\",\n \"description\": \"<string>\",\n \"handle\": \"<string>\",\n \"settings\": {\n \"maxUploadBytes\": 1,\n \"raster\": \"auto\",\n \"retention\": {\n \"auditLogs\": {\n \"mode\": \"ephemeral\"\n },\n \"intermediates\": {\n \"mode\": \"ephemeral\"\n },\n \"originalDocuments\": {\n \"mode\": \"ephemeral\"\n },\n \"redactedDocuments\": {\n \"mode\": \"ephemeral\"\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/workspaces")
.header("Content-Type", "application/json")
.body("{\n \"displayName\": \"<string>\",\n \"description\": \"<string>\",\n \"handle\": \"<string>\",\n \"settings\": {\n \"maxUploadBytes\": 1,\n \"raster\": \"auto\",\n \"retention\": {\n \"auditLogs\": {\n \"mode\": \"ephemeral\"\n },\n \"intermediates\": {\n \"mode\": \"ephemeral\"\n },\n \"originalDocuments\": {\n \"mode\": \"ephemeral\"\n },\n \"redactedDocuments\": {\n \"mode\": \"ephemeral\"\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/workspaces")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"displayName\": \"<string>\",\n \"description\": \"<string>\",\n \"handle\": \"<string>\",\n \"settings\": {\n \"maxUploadBytes\": 1,\n \"raster\": \"auto\",\n \"retention\": {\n \"auditLogs\": {\n \"mode\": \"ephemeral\"\n },\n \"intermediates\": {\n \"mode\": \"ephemeral\"\n },\n \"originalDocuments\": {\n \"mode\": \"ephemeral\"\n },\n \"redactedDocuments\": {\n \"mode\": \"ephemeral\"\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"createdBy": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"username": "<string>",
"avatarUrl": "<string>",
"displayName": "<string>"
},
"displayName": "<string>",
"handle": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"memberRole": "owner",
"settings": {
"maxUploadBytes": 1,
"raster": "auto",
"retention": {
"auditLogs": {
"mode": "ephemeral"
},
"intermediates": {
"mode": "ephemeral"
},
"originalDocuments": {
"mode": "ephemeral"
},
"redactedDocuments": {
"mode": "ephemeral"
}
}
},
"updatedAt": "2023-11-07T05:31:56Z",
"avatarUrl": "<string>",
"description": "<string>"
}{
"message": "<string>",
"name": "<string>"
}{
"message": "<string>",
"name": "<string>"
}<string><string>