> ## 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.3.0-beta.0/brand/get-brand-identity-request.json)
* **Response**: [`get-brand-identity-response.json`](https://adcontextprotocol.org/schemas/3.3.0-beta.0/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`](/dist/docs/3.3.0-beta.0/accounts/tasks/sync_accounts)) get deeper data on top of the public baseline.

Account linking is a one-time setup: a buyer agent calls [`sync_accounts`](/dist/docs/3.3.0-beta.0/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, collections |
| **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",
    "rights_offering_id": "loti_dj_voice_2026",
    "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`, `collections` (experimental)

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`, optional `rights_offering_id`). The offering ID is advisory provenance from [`get_rights`](/dist/docs/3.3.0-beta.0/brand-protocol/tasks/get_rights), not a buyer-specific grant; resolve it through [`acquire_rights`](/dist/docs/3.3.0-beta.0/brand-protocol/tasks/acquire_rights) before synthesis. |
| `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`) |
| `collections` | object\[] | No | Experimental (`brand.collection_links`). The person's or brand's channels, mirroring brand.json brand-level `collections`: `publisher_domain`, `collection_id` and `name` (required), plus optional `role` and `seller_agent_url`. `publisher_domain` plus `collection_id` form the selector a product uses. `seller_agent_url` is a routing hint, not authorization evidence; only the publisher's `adagents.json` says which agent may sell the collection. Public. |
| `available_fields` | string\[] | No | Sections available but not returned due to authorization level. Tells the caller what linking their account would unlock. |

### People behind collections

A collection's `talent[].brand_ref` points at a person's brand identity. The collection carries the channel facts; the person's details come from their brand or rights agent through this task. The person's picture is in `logos`, which is always public. brand.json's `avatar` is not exposed here: it is a synthesis configuration (`provider`, `avatar_id`, `settings`), not a profile picture. `collections` (experimental, `brand.collection_links`) links back from the person to their channels, so a buyer can go from person to channel to product selector. A collection's `brand_ref` is the publisher's claim; buyers SHOULD treat it as confirmed only when the person's `collections` lists the same `{publisher_domain, collection_id}` back. Displaying the person's picture from `logos` is not a likeness license; likeness use in ads goes through [`get_rights`](/dist/docs/3.3.0-beta.0/brand-protocol/tasks/get_rights) and [`acquire_rights`](/dist/docs/3.3.0-beta.0/brand-protocol/tasks/acquire_rights). Brand agents that return `collections` list `brand.collection_links` in `experimental_features`:

```json theme={null}
{
  "brand_id": "jordan_vega",
  "house": { "domain": "jordanvega.example.com", "name": "Jordan Vega Media" },
  "names": [{ "en": "Jordan Vega" }],
  "logos": [{ "url": "https://cdn.jordanvega.example.com/headshot.jpg", "variant": "primary" }],
  "collections": [
    {
      "publisher_domain": "acmestreaming.example.com",
      "collection_id": "pinnacle_challenge",
      "name": "The Pinnacle Challenge",
      "role": "host",
      "seller_agent_url": "https://sales.acmestreaming.example.com/adcp"
    }
  ]
}
```

## 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](/dist/docs/3.3.0-beta.0/brand-protocol/tasks/get_rights)**
>
> Search for licensable rights with pricing.

> **[acquire\_rights](/dist/docs/3.3.0-beta.0/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.