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

# get_brand_identity

> get_brand_identity is the AdCP task for retrieving brand data from a brand agent. Returns logos, colors, fonts, visual guidelines, tone, and voice synthesis config with public and authorized access tiers.

Retrieve brand identity data from a brand agent. Core identity (house, names, description, logos) is always public — any agent can discover who a brand is without authentication. Linked accounts get deeper data: high-res assets, voice synthesis configs, tone guidelines, and rights availability.

## Schema

* **Request**: [`get-brand-identity-request.json`](https://adcontextprotocol.org/schemas/3.1.24/brand/get-brand-identity-request.json)
* **Response**: [`get-brand-identity-response.json`](https://adcontextprotocol.org/schemas/3.1.24/brand/get-brand-identity-response.json)

## Response time

Typically under 2 seconds for identity data. Authorized responses with large asset collections may take longer.

## Public by default

Brand identity is public data. Any agent can call `get_brand_identity` without a linked account and receive the brand's core identity: house, names, description, industries, and basic logos. This is the same data available in `brand.json` — `get_brand_identity` provides it via MCP for agents that prefer a structured call over fetching and parsing the file.

The registry enforces this: every brand indexed from `brand.json` is publicly discoverable. You can always find out what house a brand belongs to, what it's called, and what it does.

Authorized callers (linked via [`sync_accounts`](https://docs.adcontextprotocol.org/dist/docs/3.1.24/accounts/overview)) get deeper data on top of the public baseline.

Account linking is a one-time setup: a buyer agent calls [`sync_accounts`](https://docs.adcontextprotocol.org/dist/docs/3.1.24/accounts/tasks/sync_accounts) on the brand agent, providing its brand reference. After that, the buyer's `get_brand_identity` requests are recognized as authorized.

| Level | What you get |
| - | - |
| **Public** (no linked account) | House, names, description, industries, keller\_type, basic logos, tagline |
| **Authorized** (linked via `sync_accounts`) | Everything above, plus: high-res assets, voice synthesis, tone guidelines, content restrictions, rights availability |

If a request includes `fields` that require authorization the caller does not have, those fields are silently omitted. The response includes `available_fields` listing what sections exist but were not returned, so the caller knows what they would gain by linking their account.

## Quick start

```json Request (public) theme={null}
{
  "brand_id": "daan_janssen"
}
```

```json Response (public) theme={null}
{
  "brand_id": "daan_janssen",
  "house": { "domain": "lotientertainment.com", "name": "Loti Entertainment" },
  "names": [{"en": "Daan Janssen"}],
  "description": "Dutch Olympic speed skater, 2x gold medalist",
  "industries": ["sports_fitness"],
  "keller_type": "independent",
  "logos": [
    { "url": "https://cdn.lotientertainment.com/janssen/headshot.jpg", "variant": "primary" }
  ],
  "tagline": [{"en-US": "Speed is a choice"}, {"nl-NL": "Snelheid is een keuze"}],
  "available_fields": ["tone", "voice_synthesis", "assets", "rights"]
}
```

```json Request (authorized, specific fields) theme={null}
{
  "brand_id": "daan_janssen",
  "fields": ["logos", "tone", "voice_synthesis"],
  "use_case": "endorsement"
}
```

```json Response (authorized) theme={null}
{
  "brand_id": "daan_janssen",
  "house": { "domain": "lotientertainment.com", "name": "Loti Entertainment" },
  "names": [{"en": "Daan Janssen"}],
  "logos": [
    { "url": "https://cdn.lotientertainment.com/janssen/headshot.jpg", "variant": "primary" },
    { "url": "https://assets.lotientertainment.com/janssen/hero_01_highres.jpg", "variant": "full-lockup", "width": 3000, "height": 2000 }
  ],
  "voice_synthesis": {
    "provider": "elevenlabs",
    "voice_id": "janssen_v2",
    "settings": { "stability": 0.7 }
  },
  "tone": {
    "voice": "enthusiastic, warm, competitive",
    "attributes": ["athletic", "Dutch pride", "approachable"],
    "dos": ["Reference athletic achievements", "Use Dutch cultural touchpoints"],
    "donts": ["No injury references", "No competitor comparisons"]
  }
}
```

```json Request (creative production) theme={null}
{
  "brand_id": "daan_janssen",
  "fields": ["colors", "fonts", "visual_guidelines"],
  "use_case": "creative_production"
}
```

```json Response (authorized) theme={null}
{
  "brand_id": "daan_janssen",
  "house": { "domain": "lotientertainment.com", "name": "Loti Entertainment" },
  "names": [{"en": "Daan Janssen"}],
  "colors": {
    "primary": "#FF6600",
    "secondary": "#1A1A2E",
    "accent": "#FBA007"
  },
  "fonts": {
    "primary": {
      "family": "Montserrat",
      "files": [
        { "url": "https://cdn.example.com/fonts/montserrat-vf.woff2", "weight_range": [100, 900], "style": "normal" }
      ],
      "opentype_features": ["tnum"],
      "fallbacks": ["Helvetica Neue", "Arial", "sans-serif"]
    },
    "secondary": "Open Sans"
  },
  "visual_guidelines": {
    "photography": {
      "realism": "photorealistic",
      "lighting": "bright, natural",
      "framing": ["medium shot", "action shot"]
    },
    "restrictions": [
      "Never place text over the athlete",
      "No competitor brand logos in frame"
    ]
  }
}
```

```json Response (error) theme={null}
{
  "errors": [
    { "code": "brand_not_found", "message": "No brand with id 'unknown_brand' in this agent's roster" }
  ]
}
```

## Parameters

### Request

| Field | Type | Required | Description |
| - | - | - | - |
| `brand_id` | string | Yes | Brand identifier from the agent's brand.json brands array |
| `fields` | string\[] | No | Optional sections to include (e.g., `logos`, `colors`, `fonts`, `visual_guidelines`, `tone`). Omit for all authorized sections. Core fields (`brand_id`, `house`, `names`) are always returned and do not need to be requested. |
| `use_case` | string | No | Intended use case (e.g., "endorsement", "voice\_synthesis", "likeness"). Agent tailors content within the returned sections — a "likeness" use case returns action photos, a "voice\_synthesis" use case returns voice configs. Does not override `fields`. |

Valid `fields` values: `description`, `industries`, `keller_type`, `logos`, `colors`, `fonts`, `visual_guidelines`, `tone`, `tagline`, `voice_synthesis`, `assets`, `rights`

Recommended `use_case` values:

| Value | Agent behavior |
| - | - |
| `endorsement` | Prioritize action photos, endorsement tone, brand story |
| `voice_synthesis` | Return voice synthesis config, pronunciation guides |
| `likeness` | High-res photos, appearance guidelines |
| `creative_production` | Full visual identity: colors, fonts, visual\_guidelines, logos |
| `media_planning` | Basic identity and rights availability summary |

`use_case` is advisory — it tailors content within returned sections but does not override `fields`.

### Response

The response mirrors the brand.json brand definition, extended with dynamic data the agent controls:

| Field | Type | Required | Description |
| - | - | - | - |
| `brand_id` | string | Yes | Brand identifier |
| `house` | object | Yes | House (corporate entity): `domain` and `name` |
| `names` | object\[] | Yes | Localized names |
| `description` | string | No | Brand description |
| `industries` | string\[] | No | Industries or categories |
| `keller_type` | string | No | Brand architecture type: `master`, `sub_brand`, `endorsed`, `independent` |
| `logos` | object\[] | No | Brand logos (matches brand.json logo shape: `url`, `variant`, `orientation`, `background`, `tags`) |
| `colors` | object | No | Brand color palette with structured roles (`primary`, `secondary`, `accent`, `background`, `text`) |
| `fonts` | object | No | Brand typography. Keys are role names (`primary`, `secondary`). Values are a CSS font-family string or an object with `family`, `files` (array of `{url, weight, weight_range, style}`), `opentype_features`, and `fallbacks` |
| `visual_guidelines` | object | No | Photography, graphic style, colorways, type scale, motion rules, restrictions |
| `tone` | object | No | Brand voice and messaging guidelines. Sub-fields: `voice` (personality adjectives), `attributes` (prompt guidance traits), `dos` (approved approaches), `donts` (prohibited topics) |
| `tagline` | string | No | Brand tagline or slogan |
| `voice_synthesis` | object | No | TTS voice synthesis configuration (`provider`, `voice_id`, `settings`) |
| `assets` | object\[] | No | Available brand assets — matches brand.json asset shape (`asset_id`, `asset_type`, `url`, `tags`) |
| `rights` | object | No | Rights availability summary (for pricing, use `get_rights`) |
| `available_fields` | string\[] | No | Sections available but not returned due to authorization level. Tells the caller what linking their account would unlock. |

## Use cases

* **DAM**: Returns high-res assets, current campaign guidelines, seasonal creative toolkits
* **Enterprise brand agent**: Returns approved copy, brand voice guidelines, current taglines
* **Rights management agent**: Returns talent identity — tone, voice synthesis, photos, rights availability

## Next steps

> **[get\_rights](https://docs.adcontextprotocol.org/dist/docs/3.1.24/brand-protocol/tasks/get_rights)**
>
> Search for licensable rights with pricing.

> **[acquire\_rights](https://docs.adcontextprotocol.org/dist/docs/3.1.24/brand-protocol/tasks/acquire_rights)**
>
> Acquire rights with contractual clearance.


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