curl --request POST \
--url https://app.base44.com/api/workspace/{workspace_id}/brands \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"kit": {
"description": "A family furniture workshop that builds solid oak tables and chairs to order.",
"logo": {
"altText": "Nordwind logo",
"url": "https://media.base44.com/images/public/nordwind-logo.png"
},
"tagLine": "Furniture built to last",
"title": "Nordwind",
"toneOfVoice": [
"Warm",
"Plain-spoken"
],
"values": [
"Craft",
"Honesty",
"Durability"
]
},
"design_system": {
"tokens": {
"colors": [
{
"label": "Primary",
"token": "primary",
"value": "#0B7A3B"
},
{
"label": "Background",
"token": "background",
"value": "#FAF7F2"
}
],
"fonts": [
{
"family": "Fraunces",
"role": "heading"
},
{
"family": "Inter",
"role": "body"
}
]
}
}
}
'import requests
url = "https://app.base44.com/api/workspace/{workspace_id}/brands"
payload = {
"kit": {
"description": "A family furniture workshop that builds solid oak tables and chairs to order.",
"logo": {
"altText": "Nordwind logo",
"url": "https://media.base44.com/images/public/nordwind-logo.png"
},
"tagLine": "Furniture built to last",
"title": "Nordwind",
"toneOfVoice": ["Warm", "Plain-spoken"],
"values": ["Craft", "Honesty", "Durability"]
},
"design_system": { "tokens": {
"colors": [
{
"label": "Primary",
"token": "primary",
"value": "#0B7A3B"
},
{
"label": "Background",
"token": "background",
"value": "#FAF7F2"
}
],
"fonts": [
{
"family": "Fraunces",
"role": "heading"
},
{
"family": "Inter",
"role": "body"
}
]
} }
}
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({
kit: {
description: 'A family furniture workshop that builds solid oak tables and chairs to order.',
logo: {
altText: 'Nordwind logo',
url: 'https://media.base44.com/images/public/nordwind-logo.png'
},
tagLine: 'Furniture built to last',
title: 'Nordwind',
toneOfVoice: ['Warm', 'Plain-spoken'],
values: ['Craft', 'Honesty', 'Durability']
},
design_system: {
tokens: {
colors: [
{label: 'Primary', token: 'primary', value: '#0B7A3B'},
{label: 'Background', token: 'background', value: '#FAF7F2'}
],
fonts: [{family: 'Fraunces', role: 'heading'}, {family: 'Inter', role: 'body'}]
}
}
})
};
fetch('https://app.base44.com/api/workspace/{workspace_id}/brands', 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}/brands",
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([
'kit' => [
'description' => 'A family furniture workshop that builds solid oak tables and chairs to order.',
'logo' => [
'altText' => 'Nordwind logo',
'url' => 'https://media.base44.com/images/public/nordwind-logo.png'
],
'tagLine' => 'Furniture built to last',
'title' => 'Nordwind',
'toneOfVoice' => [
'Warm',
'Plain-spoken'
],
'values' => [
'Craft',
'Honesty',
'Durability'
]
],
'design_system' => [
'tokens' => [
'colors' => [
[
'label' => 'Primary',
'token' => 'primary',
'value' => '#0B7A3B'
],
[
'label' => 'Background',
'token' => 'background',
'value' => '#FAF7F2'
]
],
'fonts' => [
[
'family' => 'Fraunces',
'role' => 'heading'
],
[
'family' => 'Inter',
'role' => 'body'
]
]
]
]
]),
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}/brands"
payload := strings.NewReader("{\n \"kit\": {\n \"description\": \"A family furniture workshop that builds solid oak tables and chairs to order.\",\n \"logo\": {\n \"altText\": \"Nordwind logo\",\n \"url\": \"https://media.base44.com/images/public/nordwind-logo.png\"\n },\n \"tagLine\": \"Furniture built to last\",\n \"title\": \"Nordwind\",\n \"toneOfVoice\": [\n \"Warm\",\n \"Plain-spoken\"\n ],\n \"values\": [\n \"Craft\",\n \"Honesty\",\n \"Durability\"\n ]\n },\n \"design_system\": {\n \"tokens\": {\n \"colors\": [\n {\n \"label\": \"Primary\",\n \"token\": \"primary\",\n \"value\": \"#0B7A3B\"\n },\n {\n \"label\": \"Background\",\n \"token\": \"background\",\n \"value\": \"#FAF7F2\"\n }\n ],\n \"fonts\": [\n {\n \"family\": \"Fraunces\",\n \"role\": \"heading\"\n },\n {\n \"family\": \"Inter\",\n \"role\": \"body\"\n }\n ]\n }\n }\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://app.base44.com/api/workspace/{workspace_id}/brands")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"kit\": {\n \"description\": \"A family furniture workshop that builds solid oak tables and chairs to order.\",\n \"logo\": {\n \"altText\": \"Nordwind logo\",\n \"url\": \"https://media.base44.com/images/public/nordwind-logo.png\"\n },\n \"tagLine\": \"Furniture built to last\",\n \"title\": \"Nordwind\",\n \"toneOfVoice\": [\n \"Warm\",\n \"Plain-spoken\"\n ],\n \"values\": [\n \"Craft\",\n \"Honesty\",\n \"Durability\"\n ]\n },\n \"design_system\": {\n \"tokens\": {\n \"colors\": [\n {\n \"label\": \"Primary\",\n \"token\": \"primary\",\n \"value\": \"#0B7A3B\"\n },\n {\n \"label\": \"Background\",\n \"token\": \"background\",\n \"value\": \"#FAF7F2\"\n }\n ],\n \"fonts\": [\n {\n \"family\": \"Fraunces\",\n \"role\": \"heading\"\n },\n {\n \"family\": \"Inter\",\n \"role\": \"body\"\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/workspace/{workspace_id}/brands")
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 \"kit\": {\n \"description\": \"A family furniture workshop that builds solid oak tables and chairs to order.\",\n \"logo\": {\n \"altText\": \"Nordwind logo\",\n \"url\": \"https://media.base44.com/images/public/nordwind-logo.png\"\n },\n \"tagLine\": \"Furniture built to last\",\n \"title\": \"Nordwind\",\n \"toneOfVoice\": [\n \"Warm\",\n \"Plain-spoken\"\n ],\n \"values\": [\n \"Craft\",\n \"Honesty\",\n \"Durability\"\n ]\n },\n \"design_system\": {\n \"tokens\": {\n \"colors\": [\n {\n \"label\": \"Primary\",\n \"token\": \"primary\",\n \"value\": \"#0B7A3B\"\n },\n {\n \"label\": \"Background\",\n \"token\": \"background\",\n \"value\": \"#FAF7F2\"\n }\n ],\n \"fonts\": [\n {\n \"family\": \"Fraunces\",\n \"role\": \"heading\"\n },\n {\n \"family\": \"Inter\",\n \"role\": \"body\"\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Brand 'Nordwind' added",
"id": "68e0c4a1b9d2f7003a5e1b42"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create workspace brand
Adds a brand you already have to a workspace, from its kit and, optionally, its design system. The brand is ready right away. To have Base44 build a brand from a description instead, use Generate workspace brand.
kit.title becomes the brand’s title, and it can’t exactly match another brand’s title in the workspace. kit and design_system are stored as you send them, up to 1 MB together. If the workspace has no default brand, this brand becomes the default.
Retrying a create that succeeded returns a 409, because the title is then taken, or the plan-limit 403 when the new brand filled the workspace’s limit.
Brands need the Builder plan or higher. An Enterprise workspace can have any number of brands, and any other workspace on Builder or a higher plan can have 1. A brand whose status is failed doesn’t count. Over the limit this returns a 403 whose detail.reason is design_system_limit_reached and whose detail.limit is the workspace’s limit.
This is limited to 60 requests per minute, shared with the other endpoints that change brands, except generating one. A signed-in session has its own limit, and every personal access token for the workspace shares one. Some workspaces have a different limit.
curl --request POST \
--url https://app.base44.com/api/workspace/{workspace_id}/brands \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"kit": {
"description": "A family furniture workshop that builds solid oak tables and chairs to order.",
"logo": {
"altText": "Nordwind logo",
"url": "https://media.base44.com/images/public/nordwind-logo.png"
},
"tagLine": "Furniture built to last",
"title": "Nordwind",
"toneOfVoice": [
"Warm",
"Plain-spoken"
],
"values": [
"Craft",
"Honesty",
"Durability"
]
},
"design_system": {
"tokens": {
"colors": [
{
"label": "Primary",
"token": "primary",
"value": "#0B7A3B"
},
{
"label": "Background",
"token": "background",
"value": "#FAF7F2"
}
],
"fonts": [
{
"family": "Fraunces",
"role": "heading"
},
{
"family": "Inter",
"role": "body"
}
]
}
}
}
'import requests
url = "https://app.base44.com/api/workspace/{workspace_id}/brands"
payload = {
"kit": {
"description": "A family furniture workshop that builds solid oak tables and chairs to order.",
"logo": {
"altText": "Nordwind logo",
"url": "https://media.base44.com/images/public/nordwind-logo.png"
},
"tagLine": "Furniture built to last",
"title": "Nordwind",
"toneOfVoice": ["Warm", "Plain-spoken"],
"values": ["Craft", "Honesty", "Durability"]
},
"design_system": { "tokens": {
"colors": [
{
"label": "Primary",
"token": "primary",
"value": "#0B7A3B"
},
{
"label": "Background",
"token": "background",
"value": "#FAF7F2"
}
],
"fonts": [
{
"family": "Fraunces",
"role": "heading"
},
{
"family": "Inter",
"role": "body"
}
]
} }
}
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({
kit: {
description: 'A family furniture workshop that builds solid oak tables and chairs to order.',
logo: {
altText: 'Nordwind logo',
url: 'https://media.base44.com/images/public/nordwind-logo.png'
},
tagLine: 'Furniture built to last',
title: 'Nordwind',
toneOfVoice: ['Warm', 'Plain-spoken'],
values: ['Craft', 'Honesty', 'Durability']
},
design_system: {
tokens: {
colors: [
{label: 'Primary', token: 'primary', value: '#0B7A3B'},
{label: 'Background', token: 'background', value: '#FAF7F2'}
],
fonts: [{family: 'Fraunces', role: 'heading'}, {family: 'Inter', role: 'body'}]
}
}
})
};
fetch('https://app.base44.com/api/workspace/{workspace_id}/brands', 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}/brands",
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([
'kit' => [
'description' => 'A family furniture workshop that builds solid oak tables and chairs to order.',
'logo' => [
'altText' => 'Nordwind logo',
'url' => 'https://media.base44.com/images/public/nordwind-logo.png'
],
'tagLine' => 'Furniture built to last',
'title' => 'Nordwind',
'toneOfVoice' => [
'Warm',
'Plain-spoken'
],
'values' => [
'Craft',
'Honesty',
'Durability'
]
],
'design_system' => [
'tokens' => [
'colors' => [
[
'label' => 'Primary',
'token' => 'primary',
'value' => '#0B7A3B'
],
[
'label' => 'Background',
'token' => 'background',
'value' => '#FAF7F2'
]
],
'fonts' => [
[
'family' => 'Fraunces',
'role' => 'heading'
],
[
'family' => 'Inter',
'role' => 'body'
]
]
]
]
]),
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}/brands"
payload := strings.NewReader("{\n \"kit\": {\n \"description\": \"A family furniture workshop that builds solid oak tables and chairs to order.\",\n \"logo\": {\n \"altText\": \"Nordwind logo\",\n \"url\": \"https://media.base44.com/images/public/nordwind-logo.png\"\n },\n \"tagLine\": \"Furniture built to last\",\n \"title\": \"Nordwind\",\n \"toneOfVoice\": [\n \"Warm\",\n \"Plain-spoken\"\n ],\n \"values\": [\n \"Craft\",\n \"Honesty\",\n \"Durability\"\n ]\n },\n \"design_system\": {\n \"tokens\": {\n \"colors\": [\n {\n \"label\": \"Primary\",\n \"token\": \"primary\",\n \"value\": \"#0B7A3B\"\n },\n {\n \"label\": \"Background\",\n \"token\": \"background\",\n \"value\": \"#FAF7F2\"\n }\n ],\n \"fonts\": [\n {\n \"family\": \"Fraunces\",\n \"role\": \"heading\"\n },\n {\n \"family\": \"Inter\",\n \"role\": \"body\"\n }\n ]\n }\n }\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://app.base44.com/api/workspace/{workspace_id}/brands")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"kit\": {\n \"description\": \"A family furniture workshop that builds solid oak tables and chairs to order.\",\n \"logo\": {\n \"altText\": \"Nordwind logo\",\n \"url\": \"https://media.base44.com/images/public/nordwind-logo.png\"\n },\n \"tagLine\": \"Furniture built to last\",\n \"title\": \"Nordwind\",\n \"toneOfVoice\": [\n \"Warm\",\n \"Plain-spoken\"\n ],\n \"values\": [\n \"Craft\",\n \"Honesty\",\n \"Durability\"\n ]\n },\n \"design_system\": {\n \"tokens\": {\n \"colors\": [\n {\n \"label\": \"Primary\",\n \"token\": \"primary\",\n \"value\": \"#0B7A3B\"\n },\n {\n \"label\": \"Background\",\n \"token\": \"background\",\n \"value\": \"#FAF7F2\"\n }\n ],\n \"fonts\": [\n {\n \"family\": \"Fraunces\",\n \"role\": \"heading\"\n },\n {\n \"family\": \"Inter\",\n \"role\": \"body\"\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/workspace/{workspace_id}/brands")
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 \"kit\": {\n \"description\": \"A family furniture workshop that builds solid oak tables and chairs to order.\",\n \"logo\": {\n \"altText\": \"Nordwind logo\",\n \"url\": \"https://media.base44.com/images/public/nordwind-logo.png\"\n },\n \"tagLine\": \"Furniture built to last\",\n \"title\": \"Nordwind\",\n \"toneOfVoice\": [\n \"Warm\",\n \"Plain-spoken\"\n ],\n \"values\": [\n \"Craft\",\n \"Honesty\",\n \"Durability\"\n ]\n },\n \"design_system\": {\n \"tokens\": {\n \"colors\": [\n {\n \"label\": \"Primary\",\n \"token\": \"primary\",\n \"value\": \"#0B7A3B\"\n },\n {\n \"label\": \"Background\",\n \"token\": \"background\",\n \"value\": \"#FAF7F2\"\n }\n ],\n \"fonts\": [\n {\n \"family\": \"Fraunces\",\n \"role\": \"heading\"\n },\n {\n \"family\": \"Inter\",\n \"role\": \"body\"\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Brand 'Nordwind' added",
"id": "68e0c4a1b9d2f7003a5e1b42"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Path Parameters
Body
The brand's identity. It needs a non-empty title, which becomes the brand's title, and a description. Brands Base44 generates also carry tagLine, values, toneOfVoice, designGuidelines, componentStyle, and a logo with its url. Nothing else in it is checked.
{
"description": "A family furniture workshop that builds solid oak tables and chairs to order.",
"logo": {
"altText": "Nordwind logo",
"url": "https://media.base44.com/images/public/nordwind-logo.png"
},
"tagLine": "Furniture built to last",
"title": "Nordwind",
"toneOfVoice": ["Warm", "Plain-spoken"],
"values": ["Craft", "Honesty", "Durability"]
}
The brand's design system: its tokens, such as colors and fonts, and its component sections. It's stored as you send it. When you include tokens, send it as an object. Defaults to an empty object.
{
"tokens": {
"colors": [
{
"label": "Primary",
"token": "primary",
"value": "#0B7A3B"
},
{
"label": "Background",
"token": "background",
"value": "#FAF7F2"
}
],
"fonts": [
{ "family": "Fraunces", "role": "heading" },
{ "family": "Inter", "role": "body" }
]
}
}
Was this page helpful?