---
title: "List workspace brands"
method: GET
path: "/api/workspace/{workspace_id}/brands"
---

# List workspace brands

`GET /api/workspace/{workspace_id}/brands`

## Request

- Base URL: `https://app.base44.com`
- URL: `https://app.base44.com/api/workspace/{workspace_id}/brands`
- Auth: HTTP bearer

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Returns every brand in a workspace, with the details a brand card shows. The list isn't paginated. Get a brand's full kit and design system with [Get workspace brand](/api-reference/get-workspace-brand).

`is_default` marks the workspace's default brand. The default brand is the one Base44 selects for you when you start a new app.

This is limited to 300 requests per minute, shared with [Get workspace brand](/api-reference/get-workspace-brand). A signed-in session has its own limit, and every personal access token for the workspace shares one. Some workspaces have a different limit.

<Note>Call this as any member of the workspace, with a personal access token for that workspace sent as a Bearer token, or from a signed-in session. A read-only token is accepted, but workspace API keys aren't.</Note>

## Path parameters

- `workspace_id` string, required: ID of the workspace. With a personal access token, use the token's workspace. Get it from `organization_id` in [Get app](/api-reference/get-app).

## Response `200`

The workspace's brands.

- WorkspaceBrandList
  - `items` WorkspaceBrandCard[], required: Every brand in the workspace.
    - `id` string, required: ID of the brand.
    - `title` string, required: Title of the brand, from `kit.title`. `Generating…` while the brand is being generated.
    - `logo_url` string, nullable, required: URL of the brand's logo, from `kit.logo.url`. `null`, or an empty string, when the brand has none.
    - `is_default` boolean, required: Whether this is the workspace's default brand.
    - `tagline` string, nullable, required: The brand's `kit.tagLine`, or its `kit.description` when it has no tagline. `null` when it has neither.
    - `colors` string[], required: Up to 5 colors from the design system's color tokens, in token order.
    - `fonts` string[], required: Up to 2 font families from the design system, the heading font first.
    - `status` 'generating' | 'ready' | 'failed', required: `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`.
    - `failure_message` string, nullable, required: Why generation failed, when it failed for a reason you can fix. `null` for any other brand, including one that failed for another reason.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: You aren't a member of the workspace, your token is for a different workspace, or your credential can't be used on this endpoint.
- `409`: Your workspace requires an unlocked SSO session.
- `429`: Rate limit exceeded.

## Changes

> 58 revisions in range; 1 not diffed.

- **2026-10-13** `b92cc2f13639`: 2 info
  - the security scope `read_only` was added to the endpoint's security scheme `PersonalAccessTokenAuth`
  - the security scope `full_access` was removed from the endpoint's security scheme `PersonalAccessTokenAuth`
- **2026-10-12** `5e139db2e643`: 1 info
  - the endpoint scheme security `PersonalAccessTokenAuth` was added to the API
- **2026-10-09** `fc604cdcc3a2`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/adexad/apis/base44-app-management-api/changes/api/workspace/:workspace_id/brands/get.md)

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adexad/apis/base44-app-management-api/revisions/fa29e915c226?raw)
