Create Workspace
curl --request POST \
--url https://api.vertracloud.app/v1/workspaces \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"tags": [
{}
]
}
'import requests
url = "https://api.vertracloud.app/v1/workspaces"
payload = {
"name": "<string>",
"description": "<string>",
"tags": [{}]
}
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({name: '<string>', description: '<string>', tags: [{}]})
};
fetch('https://api.vertracloud.app/v1/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.vertracloud.app/v1/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([
'name' => '<string>',
'description' => '<string>',
'tags' => [
[
]
]
]),
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.vertracloud.app/v1/workspaces"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\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.vertracloud.app/v1/workspaces")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vertracloud.app/v1/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 \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"response": {
"id": "org123",
"name": "myworkspace",
"description": "I have a description :)",
"tags": ["discord", "programming", "software", "technology"],
"owner_id": "993591427428790342",
"members": [
{
"user_id": "993591427428790342",
"role": "owner",
"joined_at": "2026-03-14T19:58:00Z"
}
],
"created_at": "2026-03-14T19:58:00Z",
"updated_at": "2026-03-14T19:58:00Z"
}
}
Workspaces
Create Workspace
Creates a new workspace.
POST
/
v1
/
workspaces
Create Workspace
curl --request POST \
--url https://api.vertracloud.app/v1/workspaces \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"tags": [
{}
]
}
'import requests
url = "https://api.vertracloud.app/v1/workspaces"
payload = {
"name": "<string>",
"description": "<string>",
"tags": [{}]
}
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({name: '<string>', description: '<string>', tags: [{}]})
};
fetch('https://api.vertracloud.app/v1/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.vertracloud.app/v1/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([
'name' => '<string>',
'description' => '<string>',
'tags' => [
[
]
]
]),
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.vertracloud.app/v1/workspaces"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\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.vertracloud.app/v1/workspaces")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.vertracloud.app/v1/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 \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n {}\n ]\n}"
response = http.request(request)
puts response.read_body{
"response": {
"id": "org123",
"name": "myworkspace",
"description": "I have a description :)",
"tags": ["discord", "programming", "software", "technology"],
"owner_id": "993591427428790342",
"members": [
{
"user_id": "993591427428790342",
"role": "owner",
"joined_at": "2026-03-14T19:58:00Z"
}
],
"created_at": "2026-03-14T19:58:00Z",
"updated_at": "2026-03-14T19:58:00Z"
}
}
The name of the workspace (case-insensitive, max 50 characters).
A description of the workspace. Defaults to “I have a description :)”.
An array of tags for the workspace. Defaults to [“discord”, “programming”, “software”, “technology”].
Response
The details of the created workspace.
Show Toggle object
Show Toggle object
The ID of the workspace.
The name of the workspace.
The description of the workspace.
The tags associated with the workspace.
The ID of the workspace owner.
The timestamp when the workspace was created.
The timestamp when the workspace was last updated.
{
"response": {
"id": "org123",
"name": "myworkspace",
"description": "I have a description :)",
"tags": ["discord", "programming", "software", "technology"],
"owner_id": "993591427428790342",
"members": [
{
"user_id": "993591427428790342",
"role": "owner",
"joined_at": "2026-03-14T19:58:00Z"
}
],
"created_at": "2026-03-14T19:58:00Z",
"updated_at": "2026-03-14T19:58:00Z"
}
}
Error Responses
The error code indicating the reason for failure. Possible values:
UNAUTHORIZED: The user is not authenticated.PLAN_RESTRICTED_FEATURE: The user’s plan does not allow creating workspaces.ORGANIZATION_NAME_ALREADY_EXISTS: An workspace with the provided name already exists.
A descriptive message providing additional details about the error.
{
"code": "UNAUTHORIZED"
}
{
"code": "PLAN_RESTRICTED_FEATURE"
}
{
"code": "ORGANIZATION_NAME_ALREADY_EXISTS"
}
⌘I