curl --request PATCH \
--url https://app.base44.com/api/workspace/{workspace_id}/white-label \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"enabled": true,
"brand_name": "Northlight Studio",
"agent_name": "Scout",
"agent_prompt": "You are Scout, the app builder for Northlight Studio. Build every app with our component library.",
"use_default_design_system": true
}
'import requests
url = "https://app.base44.com/api/workspace/{workspace_id}/white-label"
payload = {
"enabled": True,
"brand_name": "Northlight Studio",
"agent_name": "Scout",
"agent_prompt": "You are Scout, the app builder for Northlight Studio. Build every app with our component library.",
"use_default_design_system": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
enabled: true,
brand_name: 'Northlight Studio',
agent_name: 'Scout',
agent_prompt: 'You are Scout, the app builder for Northlight Studio. Build every app with our component library.',
use_default_design_system: true
})
};
fetch('https://app.base44.com/api/workspace/{workspace_id}/white-label', 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://app.base44.com/api/workspace/{workspace_id}/white-label",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'enabled' => true,
'brand_name' => 'Northlight Studio',
'agent_name' => 'Scout',
'agent_prompt' => 'You are Scout, the app builder for Northlight Studio. Build every app with our component library.',
'use_default_design_system' => true
]),
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://app.base44.com/api/workspace/{workspace_id}/white-label"
payload := strings.NewReader("{\n \"enabled\": true,\n \"brand_name\": \"Northlight Studio\",\n \"agent_name\": \"Scout\",\n \"agent_prompt\": \"You are Scout, the app builder for Northlight Studio. Build every app with our component library.\",\n \"use_default_design_system\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.base44.com/api/workspace/{workspace_id}/white-label")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"enabled\": true,\n \"brand_name\": \"Northlight Studio\",\n \"agent_name\": \"Scout\",\n \"agent_prompt\": \"You are Scout, the app builder for Northlight Studio. Build every app with our component library.\",\n \"use_default_design_system\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/workspace/{workspace_id}/white-label")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"enabled\": true,\n \"brand_name\": \"Northlight Studio\",\n \"agent_name\": \"Scout\",\n \"agent_prompt\": \"You are Scout, the app builder for Northlight Studio. Build every app with our component library.\",\n \"use_default_design_system\": true\n}"
response = http.request(request)
puts response.read_body{
"enabled": true,
"brand_name": "Northlight Studio",
"agent_name": "Scout",
"agent_prompt": "You are Scout, the app builder for Northlight Studio. Build every app with our component library.",
"use_default_design_system": true,
"controls_visible": true,
"can_edit_brand": true,
"can_edit_prompt": true
}Update workspace white label
Changes a workspace’s white-label settings and returns them. Only the fields you send change.
The agent prompt replaces Base44’s builder prompt for every app built in the workspace from the next message on. brand_name and agent_name are what the workspace calls its platform and agent; what users see in chat comes from the agent prompt.
The brand name, agent name and use_default_design_system need the Builder plan or higher, and agent_prompt needs a custom Enterprise plan. Read can_edit_brand and can_edit_prompt to see what the workspace’s plan allows. Turning white label off and clearing agent_prompt are allowed on every plan.
A personal access token limited to selected apps is refused.
This is limited to 30 requests per minute. A signed-in session has its own limit, every personal access token for the workspace shares one, and each workspace API key has its own. Every response reports the budget in X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset.
curl --request PATCH \
--url https://app.base44.com/api/workspace/{workspace_id}/white-label \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"enabled": true,
"brand_name": "Northlight Studio",
"agent_name": "Scout",
"agent_prompt": "You are Scout, the app builder for Northlight Studio. Build every app with our component library.",
"use_default_design_system": true
}
'import requests
url = "https://app.base44.com/api/workspace/{workspace_id}/white-label"
payload = {
"enabled": True,
"brand_name": "Northlight Studio",
"agent_name": "Scout",
"agent_prompt": "You are Scout, the app builder for Northlight Studio. Build every app with our component library.",
"use_default_design_system": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
enabled: true,
brand_name: 'Northlight Studio',
agent_name: 'Scout',
agent_prompt: 'You are Scout, the app builder for Northlight Studio. Build every app with our component library.',
use_default_design_system: true
})
};
fetch('https://app.base44.com/api/workspace/{workspace_id}/white-label', 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://app.base44.com/api/workspace/{workspace_id}/white-label",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'enabled' => true,
'brand_name' => 'Northlight Studio',
'agent_name' => 'Scout',
'agent_prompt' => 'You are Scout, the app builder for Northlight Studio. Build every app with our component library.',
'use_default_design_system' => true
]),
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://app.base44.com/api/workspace/{workspace_id}/white-label"
payload := strings.NewReader("{\n \"enabled\": true,\n \"brand_name\": \"Northlight Studio\",\n \"agent_name\": \"Scout\",\n \"agent_prompt\": \"You are Scout, the app builder for Northlight Studio. Build every app with our component library.\",\n \"use_default_design_system\": true\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://app.base44.com/api/workspace/{workspace_id}/white-label")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"enabled\": true,\n \"brand_name\": \"Northlight Studio\",\n \"agent_name\": \"Scout\",\n \"agent_prompt\": \"You are Scout, the app builder for Northlight Studio. Build every app with our component library.\",\n \"use_default_design_system\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/workspace/{workspace_id}/white-label")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"enabled\": true,\n \"brand_name\": \"Northlight Studio\",\n \"agent_name\": \"Scout\",\n \"agent_prompt\": \"You are Scout, the app builder for Northlight Studio. Build every app with our component library.\",\n \"use_default_design_system\": true\n}"
response = http.request(request)
puts response.read_body{
"enabled": true,
"brand_name": "Northlight Studio",
"agent_name": "Scout",
"agent_prompt": "You are Scout, the app builder for Northlight Studio. Build every app with our component library.",
"use_default_design_system": true,
"controls_visible": true,
"can_edit_brand": true,
"can_edit_prompt": true
}Authorizations
Personal access token, sent as Authorization: Bearer <token>. Each operation lists the permission it needs: read_only or full_access. A full-access token can call every operation. A read-only token can call only the operations that list read_only; anything else returns 403 read_only_credential_route_not_allowed.
Path Parameters
Body
Only the fields you send change. Omit a field, or send null, to leave it as it is.
Turn white label on or off. Turning it on needs a brand name, saved already or sent in the same request. Turning it off is allowed on every plan.
true
Name of the workspace's platform. Control characters are removed and it's cut to 48 characters. It needs a letter or a number, and it can't be Base44.
"Northlight Studio"
What the agent calls itself, with the same rules as brand_name. Send "" to clear it.
"Scout"
The system prompt every app in the workspace is built under, up to 60,000 characters. Control characters are removed. Send "" to go back to Base44's built-in prompt, which is allowed on every plan.
60000"You are Scout, the app builder for Northlight Studio. Build every app with our component library."
Add the workspace's default design system to the agent prompt.
true
Response
The workspace's white-label settings after the change.
Whether the builder runs under the workspace's brand instead of Base44's.
true
Name of the workspace's platform. null until one is saved.
"Northlight Studio"
What the agent calls itself. null means it answers to brand_name.
"Scout"
The system prompt every app in the workspace is built under, as stored after sanitizing. null means the workspace's apps use Base44's built-in prompt.
"You are Scout, the app builder for Northlight Studio. Build every app with our component library."
Whether the workspace's default design system is added to the agent prompt.
true
Whether white label is available to this workspace: it's enrolled in Base44 for platforms, or white label is already on. When it's false, enabled can't be set to true.
true
Whether the plan allows brand_name, agent_name and use_default_design_system (Builder and up).
true
Whether the plan allows agent_prompt (custom Enterprise).
true
Was this page helpful?