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

# The brand kit object

> How your notetaker looks and speaks: name, avatar, chat messages and email branding.

A brand kit is two groups: `bot`, how the notetaker appears in the call, and `email`, how the summary email looks. Each choice is a `type` and an object named after it. A workspace owns the kit, and any number of workspaces use it: a workspace picks its kit with `branding.brand_kit_id` in its [settings](/api-reference/settings/object). See [Set up a customer](/meetingkit/setup#branding).

## Attributes

<ResponseField name="id" type="string" required>
  Brand kit ID, beginning with `brk_`.
</ResponseField>

<ResponseField name="object" type="string" required>
  Always `brand_kit`.
</ResponseField>

<ResponseField name="workspace_id" type="string | null">
  The workspace that owns the kit, a `wks_` id. `null` when the key does not belong to it.
</ResponseField>

<ResponseField name="workspace_ids" type="string[]" required>
  The workspaces that use this kit, among those the key belongs to. Empty for a kit no workspace
  uses.
</ResponseField>

<ResponseField name="bot" type="object" required>
  How the notetaker appears in the call.

  <Expandable title="properties">
    <ResponseField name="name" type="string">
      The notetaker's name in the call. Defaults to one derived from the name of the workspace that
      owns the kit.
    </ResponseField>

    <ResponseField name="tile" type="object">
      The picture on the notetaker's video tile. Only the object named after `type` is present; the
      options of the other types stay stored.

      <Expandable title="properties">
        <ResponseField name="type" type="string">
          Which tile the notetaker shows.

          * `default`: MeetingKit's logo.
          * `color`: a background color with no logo.
          * `logo`: your logo on a background color.
          * `image`: your own 16:9 picture.
        </ResponseField>

        <ResponseField name="color" type="object">
          Present when `type` is `color`.

          <Expandable title="properties">
            <ResponseField name="background_color" type="string">
              The tile's background, as a HEX color. The `color` and `logo` tiles share it.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="logo" type="object">
          Present when `type` is `logo`.

          <Expandable title="properties">
            <ResponseField name="file" type="object | null">
              The logo, or `null` when the kit has none.

              <Expandable title="properties">
                <ResponseField name="id" type="string | null">
                  The `file_` id the image was set with. `null` for an image uploaded in the dashboard.
                </ResponseField>

                <ResponseField name="url" type="string">
                  A signed URL of the kit's copy of the image, valid for one year. Every read returns
                  a fresh one.
                </ResponseField>
              </Expandable>
            </ResponseField>

            <ResponseField name="background_color" type="string">
              The tile's background, as a HEX color. The `color` and `logo` tiles share it.
            </ResponseField>

            <ResponseField name="scale" type="integer">
              How large the logo is on the tile, as a percentage from 10 to 100.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="image" type="object">
          Present when `type` is `image`.

          <Expandable title="properties">
            <ResponseField name="file" type="object | null">
              The 16:9 picture that fills the tile, or `null` when the kit has none.

              <Expandable title="properties">
                <ResponseField name="id" type="string | null">
                  The `file_` id the image was set with. `null` for an image uploaded in the dashboard.
                </ResponseField>

                <ResponseField name="url" type="string">
                  A signed URL of the kit's copy of the image, valid for one year. Every read returns
                  a fresh one.
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="chat" type="object">
      What the notetaker posts in the call's chat.

      <Expandable title="properties">
        <ResponseField name="enabled" type="boolean">
          Whether the notetaker posts chat messages at all.
        </ResponseField>

        <ResponseField name="recording_message" type="string">
          Posted when the notetaker joins and starts recording. Supports `{{ user }}`. Falls back to
          the standard greeting when not customized, so it is never null.
        </ResponseField>

        <ResponseField name="paused_message" type="string">
          Posted while recording is paused. Supports `{{ user }}`. Falls back to the standard
          announcement when not customized, so it is never null.
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="email" type="object" required>
  How the summary email looks. Only the object named after `type` is present; the branded options
  stay stored while `type` is `default`.

  <Expandable title="properties">
    <ResponseField name="type" type="string">
      Which summary email is sent.

      * `default`: MeetingKit's email.
      * `branded`: your logo, color, website and button, sent as "\<bot name>" from
        [summaries@meetingkit.com](mailto:summaries@meetingkit.com).
    </ResponseField>

    <ResponseField name="branded" type="object">
      Present when `type` is `branded`.

      <Expandable title="properties">
        <ResponseField name="logo" type="object | null">
          The logo at the top of the email. The tile's logo until the kit has an email logo of its
          own; `null` when it has neither. The email shows it trimmed of its padding, sized by its
          shape and, when it is light on transparency, on a chip in `color`; `url` is the file as uploaded.

          <Expandable title="properties">
            <ResponseField name="id" type="string | null">
              The `file_` id the image was set with. `null` for an image uploaded in the dashboard.
            </ResponseField>

            <ResponseField name="url" type="string">
              A signed URL of the kit's copy of the image, valid for one year. Every read returns a
              fresh one.
            </ResponseField>
          </Expandable>
        </ResponseField>

        <ResponseField name="color" type="string | null">
          The HEX color of the email's header and button.
        </ResponseField>

        <ResponseField name="website" type="string | null">
          Where the email's "Learn more" link goes.
        </ResponseField>

        <ResponseField name="description" type="string | null">
          The line about your product in the email's footer.
        </ResponseField>

        <ResponseField name="cta" type="object">
          The button under the meeting's name. Only the object named after `type` is present.

          <Expandable title="properties">
            <ResponseField name="type" type="string">
              What the button does.

              * `open_meeting`: opens the meeting in MeetingKit, for recipients who can open it
                there.
              * `none`: no button.
              * `link`: opens your own URL.
            </ResponseField>

            <ResponseField name="link" type="object">
              Present when `type` is `link`.

              <Expandable title="properties">
                <ResponseField name="label" type="string">
                  The button's text.
                </ResponseField>

                <ResponseField name="url" type="string">
                  Where the button goes. `{{meeting_id}}` is replaced by the meeting's `mtg_` id.
                </ResponseField>
              </Expandable>
            </ResponseField>
          </Expandable>
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="preview_url" type="string">
  A page that shows this kit as saved: the notetaker's tile in the call, its chat messages and the
  summary email. Anyone with the link can open it, without signing in, until `preview_expires_at`.
  Every response carries a fresh link.
</ResponseField>

<ResponseField name="preview_expires_at" type="string">
  When `preview_url` stops working, ten minutes after the response, in ISO 8601. Read the brand kit
  again for a fresh link.
</ResponseField>

<ResponseField name="metadata" type="object">
  Your key-value pairs on this brand kit: a flat map of strings. See
  [metadata](/meetingkit/setup#a-workspace-per-customer).
</ResponseField>

<ResponseField name="created_at" type="string">
  When the brand kit was created, in ISO 8601.
</ResponseField>

<ResponseExample>
  ```json The brand kit object theme={null}
  {
    "id": "brk_01k6c3v7w2q9d8m4n5p6r7s8tx",
    "object": "brand_kit",
    "workspace_id": "wks_01k6a2r9s8x7c2dvq3m5n6p4ab",
    "workspace_ids": [
      "wks_01k6a2r9s8x7c2dvq3m5n6p4ab",
      "wks_01k6a3t4v5w6x7y8z9a0b1c2de"
    ],
    "bot": {
      "name": "Acme Assistant",
      "tile": {
        "type": "logo",
        "logo": {
          "file": {
            "id": "file_01k6d8q4z7m2n5p8r1s3t6v9wx",
            "url": "https://assets.meetingkit.com/logos/acme.png?Expires=1822298280&Signature=…"
          },
          "background_color": "#0B1F3A",
          "scale": 70
        }
      },
      "chat": {
        "enabled": true,
        "recording_message": "Hi, I'm Acme Assistant, taking notes for {{user}}.",
        "paused_message": "Recording is paused."
      }
    },
    "email": {
      "type": "branded",
      "branded": {
        "logo": {
          "id": "file_01k6d8q4z7m2n5p8r1s3t6v9wx",
          "url": "https://assets.meetingkit.com/logos/acme.png?Expires=1822298280&Signature=…"
        },
        "color": "#0052FF",
        "website": "https://acme.com",
        "description": "Acme AI Meeting Companion",
        "cta": {
          "type": "link",
          "link": {
            "label": "Open in Acme",
            "url": "https://acme.com/m/{{meeting_id}}"
          }
        }
      }
    },
    "preview_url": "https://api.meetingkit.com/app/shared/brand-kits/brk_01k6c3v7w2q9d8m4n5p6r7s8tx/preview?token=WyJicmtfMDFrNmMzdjd3MnE5ZDhtNG41cDZyN3M4dHgiLDE3OTA0MTM4MDBd--50d858e0985ecc7f60418aaf0cc5ab587f42c2570a884095a9e8ccacd0f6545c",
    "preview_expires_at": "2026-09-26T09:10:00Z",
    "metadata": {},
    "created_at": "2026-09-30T10:00:00Z"
  }
  ```
</ResponseExample>
