> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update workspace white label

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

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.

<Note>Call this as an owner or admin of the workspace, with a personal access token or a workspace API key for that workspace, or from a signed-in session. A workspace API key acts as the workspace's owner. A read-only token or key is refused.</Note>

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`.



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json patch /api/workspace/{workspace_id}/white-label
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - PersonalAccessTokenAuth: []
paths:
  /api/workspace/{workspace_id}/white-label:
    patch:
      summary: Update workspace white label
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        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.


        <Note>Call this as an owner or admin of the workspace, with a personal
        access token or a workspace API key for that workspace, or from a
        signed-in session. A workspace API key acts as the workspace's owner. A
        read-only token or key is refused.</Note>


        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`.
      operationId: >-
        update_workspace_white_label_api_workspace__workspace_id__white_label_patch
      parameters:
        - name: workspace_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              ID of the workspace. With a personal access token or a workspace
              API key, use its workspace. Get it from `organization_id` in [Get
              app](/api-reference/get-app).
            title: Workspace Id
          description: >-
            ID of the workspace. With a personal access token or a workspace API
            key, use its workspace. Get it from `organization_id` in [Get
            app](/api-reference/get-app).
          example: 67e0b12c4d8a3f005b21c9e4
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WorkspaceWhiteLabelPatch'
      responses:
        '200':
          description: The workspace's white-label settings after the change.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceWhiteLabel'
              example:
                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
        '400':
          description: >-
            A name has no letter or number (`invalid_brand_name`,
            `invalid_agent_name`), a name is `Base44` (`reserved_brand_name`),
            white label is being turned on with no brand name
            (`brand_name_required`), or a credential was sent in the URL
            (`credentials_in_query`).
          content:
            application/json:
              examples:
                brand_name_required:
                  summary: brand_name_required
                  value:
                    error:
                      code: brand_name_required
                      message: A brand name is required to enable white-labeling
                      details: {}
                reserved_brand_name:
                  summary: reserved_brand_name
                  value:
                    error:
                      code: reserved_brand_name
                      message: '''Base44'' is the default brand — choose your own name'
                      details: {}
              schema:
                $ref: '#/components/schemas/StandardErrorEnvelope'
        '401':
          description: Missing or invalid credentials (`unauthenticated`).
          content:
            application/json:
              examples:
                unauthenticated:
                  summary: unauthenticated
                  value:
                    error:
                      code: unauthenticated
                      message: Authentication required
                      details: {}
              schema:
                $ref: '#/components/schemas/StandardErrorEnvelope'
        '403':
          description: >-
            You aren't an owner or admin of the workspace, or your token is for
            a different workspace, is read-only, or is limited to selected apps
            (`forbidden`), or your workspace API key is for a different
            workspace (`workspace_api_key_wrong_workspace`). The plan doesn't
            include the brand fields (`white_label_plan_required`) or
            `agent_prompt` (`agent_prompt_plan_required`).
          content:
            application/json:
              examples:
                forbidden:
                  summary: forbidden
                  value:
                    error:
                      code: forbidden
                      message: Only workspace admins can change white-label settings
                      details: {}
                agent_prompt_plan_required:
                  summary: agent_prompt_plan_required
                  value:
                    error:
                      code: agent_prompt_plan_required
                      message: A custom agent prompt requires an Enterprise plan
                      details: {}
              schema:
                $ref: '#/components/schemas/StandardErrorEnvelope'
        '404':
          description: >-
            Workspace not found, or white label is being turned on in a
            workspace that isn't enrolled in Base44 for platforms (`not_found`).
          content:
            application/json:
              examples:
                not_found:
                  summary: not_found
                  value:
                    error:
                      code: not_found
                      message: Workspace not found
                      details: {}
              schema:
                $ref: '#/components/schemas/StandardErrorEnvelope'
        '409':
          description: >-
            A signed-in session must first unlock the workspace with SSO
            (`sso_required_for_workspace`) or sign-in
            (`auth_required_for_workspace`). Personal access tokens never get
            this.
          content:
            application/json:
              examples:
                sso_required_for_workspace:
                  summary: sso_required_for_workspace
                  value:
                    error:
                      code: sso_required_for_workspace
                      message: sso_required_for_workspace
                      details:
                        workspace_id: 67e0b12c4d8a3f005b21c9e4
              schema:
                $ref: '#/components/schemas/StandardErrorEnvelope'
        '422':
          description: >-
            The body is malformed or `agent_prompt` is too long
            (`invalid_request`). `error.details.errors` lists each problem.
          content:
            application/json:
              examples:
                invalid_request:
                  summary: invalid_request
                  value:
                    error:
                      code: invalid_request
                      message: Invalid request
                      details:
                        errors:
                          - loc:
                              - body
                              - agent_prompt
                            type: string_too_long
              schema:
                $ref: '#/components/schemas/StandardErrorEnvelope'
        '429':
          description: Rate limit exceeded (`rate_limited`).
          content:
            application/json:
              examples:
                rate_limited:
                  summary: rate_limited
                  value:
                    error:
                      code: rate_limited
                      message: Rate limit exceeded.
                      details: {}
              schema:
                $ref: '#/components/schemas/StandardErrorEnvelope'
        '503':
          description: >-
            Database temporarily unavailable (`database_unavailable`): the data
            cluster did not answer in time. Retry after the `Retry-After`
            seconds.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardErrorEnvelope'
              examples:
                database_unavailable:
                  summary: database_unavailable
                  value:
                    error:
                      code: database_unavailable
                      message: Database temporarily unavailable, please retry
                      details: {}
      security:
        - PersonalAccessTokenAuth:
            - full_access
        - WorkspaceApiKeyAuth:
            - full_access
        - WorkspaceApiKeyBearerAuth:
            - full_access
components:
  schemas:
    WorkspaceWhiteLabelPatch:
      properties:
        enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enabled
          description: >-
            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.
          example: true
        brand_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand Name
          description: >-
            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`.
          example: Northlight Studio
        agent_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Name
          description: >-
            What the agent calls itself, with the same rules as `brand_name`.
            Send `""` to clear it.
          example: Scout
        agent_prompt:
          anyOf:
            - type: string
              maxLength: 60000
            - type: 'null'
          title: Agent Prompt
          description: >-
            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.
          example: >-
            You are Scout, the app builder for Northlight Studio. Build every
            app with our component library.
        use_default_design_system:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Use Default Design System
          description: Add the workspace's default design system to the agent prompt.
          example: true
      type: object
      title: WorkspaceWhiteLabelPatch
      description: >-
        Only the fields you send change. Omit a field, or send `null`, to leave
        it as it is.
    WorkspaceWhiteLabel:
      properties:
        enabled:
          type: boolean
          title: Enabled
          description: >-
            Whether the builder runs under the workspace's brand instead of
            Base44's.
          example: true
        brand_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Brand Name
          description: Name of the workspace's platform. `null` until one is saved.
          example: Northlight Studio
        agent_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Name
          description: >-
            What the agent calls itself. `null` means it answers to
            `brand_name`.
          example: Scout
        agent_prompt:
          anyOf:
            - type: string
            - type: 'null'
          title: Agent Prompt
          description: >-
            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.
          example: >-
            You are Scout, the app builder for Northlight Studio. Build every
            app with our component library.
        use_default_design_system:
          type: boolean
          title: Use Default Design System
          description: >-
            Whether the workspace's default design system is added to the agent
            prompt.
          example: true
        controls_visible:
          type: boolean
          title: Controls Visible
          description: >-
            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`.
          example: true
        can_edit_brand:
          type: boolean
          title: Can Edit Brand
          description: >-
            Whether the plan allows `brand_name`, `agent_name` and
            `use_default_design_system` (Builder and up).
          example: true
        can_edit_prompt:
          type: boolean
          title: Can Edit Prompt
          description: Whether the plan allows `agent_prompt` (custom Enterprise).
          example: true
      type: object
      required:
        - enabled
        - brand_name
        - agent_name
        - agent_prompt
        - use_default_design_system
        - controls_visible
        - can_edit_brand
        - can_edit_prompt
      title: WorkspaceWhiteLabel
    StandardErrorEnvelope:
      properties:
        error:
          $ref: '#/components/schemas/StandardError'
          description: What went wrong.
      type: object
      required:
        - error
      title: StandardErrorEnvelope
      description: The error body returned in the standard envelope.
    StandardError:
      properties:
        code:
          type: string
          title: Code
          description: >-
            Stable machine-readable cause of the failure. Match on this, not on
            `message`.
          example: not_found
        message:
          type: string
          title: Message
          description: Human-readable explanation. It isn't a stable contract.
          example: App not found
        details:
          additionalProperties: true
          type: object
          title: Details
          description: >-
            Structured context for the failure, or an empty object when there's
            none.
          example: {}
      type: object
      required:
        - code
        - message
      title: StandardError
  securitySchemes:
    PersonalAccessTokenAuth:
      type: http
      scheme: bearer
      description: >-
        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`.
    WorkspaceApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: >-
        Workspace API key, sent as `api_key: <key>`. Each operation that accepts
        one lists what the key needs: a permission, `read_only` or
        `full_access`, like a personal access token, or a scope. A key without
        the scope gets 403 `workspace_api_key_scope_required`.
    WorkspaceApiKeyBearerAuth:
      type: http
      scheme: bearer
      description: >-
        Workspace API key, sent as `Authorization: Bearer <key>`. Accepted
        wherever `api_key` is, with the same permission.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.