cURL
curl --request POST \
--url https://api.botpress.cloud/v1/admin/workspaces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"billingVersion": "v4"
}
'import requests
url = "https://api.botpress.cloud/v1/admin/workspaces"
payload = {
"name": "<string>",
"billingVersion": "v4"
}
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({name: '<string>', billingVersion: 'v4'})
};
fetch('https://api.botpress.cloud/v1/admin/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.botpress.cloud/v1/admin/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>',
'billingVersion' => 'v4'
]),
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.botpress.cloud/v1/admin/workspaces"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"billingVersion\": \"v4\"\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.botpress.cloud/v1/admin/workspaces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"billingVersion\": \"v4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.botpress.cloud/v1/admin/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 \"name\": \"<string>\",\n \"billingVersion\": \"v4\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"ownerId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"botCount": 123,
"billingVersion": "v1",
"plan": "community",
"blocked": true,
"spendingLimit": 123,
"activeTrialId": "<string>",
"about": "",
"profilePicture": "",
"contactEmail": "",
"website": "",
"socialAccounts": [],
"isPublic": true,
"handle": "<string>"
}{
"id": "<string>",
"name": "<string>",
"ownerId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"botCount": 123,
"billingVersion": "v1",
"plan": "community",
"blocked": true,
"spendingLimit": 123,
"activeTrialId": "<string>",
"about": "",
"profilePicture": "",
"contactEmail": "",
"website": "",
"socialAccounts": [],
"isPublic": true,
"handle": "<string>"
}Create workspace
POST
/
v1
/
admin
/
workspaces
cURL
curl --request POST \
--url https://api.botpress.cloud/v1/admin/workspaces \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"billingVersion": "v4"
}
'import requests
url = "https://api.botpress.cloud/v1/admin/workspaces"
payload = {
"name": "<string>",
"billingVersion": "v4"
}
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({name: '<string>', billingVersion: 'v4'})
};
fetch('https://api.botpress.cloud/v1/admin/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.botpress.cloud/v1/admin/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>',
'billingVersion' => 'v4'
]),
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.botpress.cloud/v1/admin/workspaces"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"billingVersion\": \"v4\"\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.botpress.cloud/v1/admin/workspaces")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"billingVersion\": \"v4\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.botpress.cloud/v1/admin/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 \"name\": \"<string>\",\n \"billingVersion\": \"v4\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"ownerId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"botCount": 123,
"billingVersion": "v1",
"plan": "community",
"blocked": true,
"spendingLimit": 123,
"activeTrialId": "<string>",
"about": "",
"profilePicture": "",
"contactEmail": "",
"website": "",
"socialAccounts": [],
"isPublic": true,
"handle": "<string>"
}{
"id": "<string>",
"name": "<string>",
"ownerId": "<string>",
"createdAt": "<string>",
"updatedAt": "<string>",
"botCount": 123,
"billingVersion": "v1",
"plan": "community",
"blocked": true,
"spendingLimit": 123,
"activeTrialId": "<string>",
"about": "",
"profilePicture": "",
"contactEmail": "",
"website": "",
"socialAccounts": [],
"isPublic": true,
"handle": "<string>"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Whether the client supports bots with multiple instances of the same integration. Set to "true" to receive integration instances keyed by their alias instead of their id. This header will be removed in the future, and the API will always return multiple instances keyed by alias.
Body
application/json
Workspace metadata
Response
Success
Available options:
v1, v2, v3, v4 Available options:
community, team, enterprise, plus, managed Last modified on July 3, 2026
Was this page helpful?
⌘I