# Brand

URL: /business/nouns/brand · Id: `noun:brand`

> A Brand is a name, a voice, a logo, and a style under which a Startup makes Offers.

A Brand is a name, a voice, a logo, and a style under which a [Startup](/business/nouns/startup) makes [Offers](/business/nouns/offer).

## Properties
| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | The name customers see. |
| `voice` | `text` | No | How the Brand writes and speaks. |
| `logo` | `url` | No | The logo image. |

## Object
```json
{
  "$id": "https://api.sb/shiftnote.app/brands/brand_1",
  "$type": "Brand",
  "name": "ShiftNote",
  "voice": "Reassuring and direct.",
  "logo": "https://shiftnote.app"
}
```

## Relationships
- <a id="rel-brands"></a>A Brand **brands** many [Offers](/business/nouns/offer): each [Offer](/business/nouns/offer) carries exactly one Brand, whose name, voice and logo the buyer sees. `brands`, inverse [`brandedBy`](/business/nouns/offer#rel-branded-by).
- <a id="rel-styles"></a>A Brand **styles** many [Sites](/business/nouns/site): a [Site](/business/nouns/site) renders one Brand’s name, voice and [Theme](/business/nouns/theme). `styles`, inverse [`styledBy`](/business/nouns/site#rel-styled-by).
- <a id="rel-themed-by"></a>A Brand **is themed by** one [Theme](/business/nouns/theme): a [Theme](/business/nouns/theme) sets a Brand’s color, type, spacing and motion. `themedBy`, inverse [`themes`](/business/nouns/theme#rel-themes).

## Verbs
| Verb | Description | Subject | Event | Class |
| --- | --- | --- | --- | --- |
| [Brand.clear](/business/nouns/brand/clear) | Clear checks a proposed Brand name against trademark registers, Domain availability and the Startup’s handles on outside platforms in one call. | [Legal Lead](/agents/legal/legal-lead) | [`Brand.cleared`](/business/events/Brand.cleared) | Two-way: `try`, `send`, `do` |
| <a id="create"></a>[Brand.create](/business/nouns/brand/create) | Creates a Brand. Inherited from [Noun](/business/nouns/noun). | None. | `Brand.created` | Two-way: `try`, `send`, `do` |
| <a id="get"></a>[Brand.get](/business/nouns/brand/get) | Returns one Brand by id. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="list"></a>[Brand.list](/business/nouns/brand/list) | Returns Brands, newest first, one page at a time. Inherited from [Noun](/business/nouns/noun). | None. | None. | Read: `try`, `do` |
| <a id="update"></a>[Brand.update](/business/nouns/brand/update) | Changes the given properties of a Brand. Inherited from [Noun](/business/nouns/noun). | None. | `Brand.updated` | Two-way: `try`, `send`, `do` |
| <a id="delete"></a>[Brand.delete](/business/nouns/brand/delete) | Deletes a Brand; its history is kept. Inherited from [Noun](/business/nouns/noun). | None. | `Brand.deleted` | One-way: `send`, `do` |

## Permissions
Which Access level may call each Verb. One-way Verbs wait their delay window.

| Operation | `owner` | `admin` | `member` | `viewer` |
| --- | --- | --- | --- | --- |
| `Brand.create` | Yes | Yes | Yes | No |
| `Brand.get` | Yes | Yes | Yes | Yes |
| `Brand.list` | Yes | Yes | Yes | Yes |
| `Brand.update` | Yes | Yes | Yes | No |
| `Brand.delete` | Yes | Yes | Yes | No |
| `Brand.clear` | Yes | Yes | Yes | No |

## Call it

**Ask**

```text
Clear my brand.
```

**API**

```bash
curl -X POST https://api.sb/petpantry.shop/brands/brand_1/clear \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY"
```

```json
{
  "api": "https://api.sb/petpantry.shop",
  "verdict": "clear",
  "findings": {},
  "brand": {
    "$id": "https://api.sb/petpantry.shop/brands/brand_1",
    "$type": "Brand",
    "name": "PetPantry"
  },
  "action": {
    "$id": "https://api.sb/petpantry.shop/actions/action_1",
    "operation": "Brand.clear",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/petpantry.shop/actions/action_1"
  }
}
```

**SDK**

```ts
import { $ } from 'startup-builder'

const { verdict, findings, brand } = await $.Brand.clear({ brand: 'brand_1' })
```

**CLI**

```bash
npx startup-builder do Brand.clear --json '{"brand":"brand_1"}'
```

**MCP**

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Brand.clear({ brand: 'brand_1' })"
  }
}
```

## Example
One Brand can cover two Startups with different [Customers](/business/nouns/customer). One Startup can sell an Offer under a second Brand for a new audience.