curl --request GET \
--url https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}', 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/{brand_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "68e0c4a1b9d2f7003a5e1b42",
"title": "Nordwind",
"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"
}
]
}
},
"status": "ready",
"generation_step": "components",
"failure_message": "description is required",
"preview": {
"title": "Nordwind",
"logo_url": "https://media.base44.com/images/public/nordwind-logo.png",
"colors": [
"#0B7A3B",
"#FAF7F2"
],
"fonts": [
"Fraunces",
"Inter"
]
}
}Get workspace brand
Returns a brand with its full kit and design system.
While a brand is being generated, kit and design_system are empty. Poll this endpoint every few seconds until status is ready or failed, and read generation_step and preview in the meantime.
This is limited to 300 requests per minute, shared with List workspace brands. 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 GET \
--url https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}', 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/{brand_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.base44.com/api/workspace/{workspace_id}/brands/{brand_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "68e0c4a1b9d2f7003a5e1b42",
"title": "Nordwind",
"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"
}
]
}
},
"status": "ready",
"generation_step": "components",
"failure_message": "description is required",
"preview": {
"title": "Nordwind",
"logo_url": "https://media.base44.com/images/public/nordwind-logo.png",
"colors": [
"#0B7A3B",
"#FAF7F2"
],
"fonts": [
"Fraunces",
"Inter"
]
}
}Authorizations
Personal access token, sent as Authorization: Bearer <token>.
Response
The brand.
ID of the brand.
"68e0c4a1b9d2f7003a5e1b42"
Title of the brand, from kit.title. Generating… while the brand is being generated.
"Nordwind"
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. Empty while the brand is being generated.
{
"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. It can be empty, such as while the brand is being generated.
{
"tokens": {
"colors": [
{
"label": "Primary",
"token": "primary",
"value": "#0B7A3B"
},
{
"label": "Background",
"token": "background",
"value": "#FAF7F2"
}
],
"fonts": [
{ "family": "Fraunces", "role": "heading" },
{ "family": "Inter", "role": "body" }
]
}
}
ready once the brand is complete, generating while Base44 is still generating it, or failed if generation stopped. A brand that is still generating after 45 minutes without progress reads as failed.
generating, ready, failed "ready"
Short progress label while status is generating, such as foundation or components. null otherwise.
"components"
Why generation failed, when it failed for a reason you can fix. null for any other brand, including one that failed for another reason.
"description is required"
What generation has found so far. Use it to show the brand before status is ready. A brand you created yourself has an empty preview.
Show child attributes
Show child attributes
Was this page helpful?