brand.json file provides a standardized way for brands to claim their identity and establish discoverable brand information. It supports four mutually exclusive variants to accommodate different use cases.
File Location
Brands host thebrand.json file at:
Variants
The brand.json file supports four mutually exclusive variants:1. Authoritative Location Redirect
Points to a hosted brand.json at another URL:- Brand.json is hosted centrally (e.g., by a service provider)
- CDN distribution is needed
- Managed brand services
2. House Redirect
Points to the house domain that contains the full brand portfolio:region: ISO 3166-1 alpha-2 country code (e.g., “CN”)note: Explanation text
- Brand domain is owned by a larger house
- Regional/localized domains point to main house
- Legacy domains redirect to canonical
3. Brand Agent
Designates an MCP agent that provides brand information:contact: Contact information
get_brand_manifest({ house, brand_id }) to return brand manifest data.
4. House Portfolio
Contains the full brand hierarchy with all brands and properties:House Definition
The house object represents the corporate entity:| Field | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | House’s primary domain |
name | string | Yes | Display name |
names | array | No | Localized names |
architecture | enum | No | branded_house, house_of_brands, or hybrid |
Brand Definition
Each brand in thebrands array:
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Brand identifier (lowercase alphanumeric with underscores) |
names | array | Yes | Localized names (see below) |
keller_type | enum | No | master, sub_brand, endorsed, independent |
parent_brand | string | No | Parent brand’s id |
properties | array | No | Digital properties owned by brand |
brand_agent | object | No | Agent providing brand manifest data { url, id } |
logos | array | No | Brand logo assets (inline manifest data) |
colors | object | No | Brand color palette (inline manifest data) |
fonts | object | No | Brand typography (inline manifest data) |
tone | string | No | Brand voice and messaging tone |
tagline | string | No | Brand tagline or slogan |
Names Array
Names are localized with language codes:Keller Types
Brand architecture classifications from marketing theory:| Type | Description | Example |
|---|---|---|
master | Primary brand of house | Nike for Nike, Inc. |
sub_brand | Carries parent brand name | Nike SB |
endorsed | Independent identity, endorsed by parent | Air Jordan “by Nike” |
independent | Operates separately from house | Converse |
Property Definition
Properties are digital touchpoints owned by brands:| Field | Type | Required | Description |
|---|---|---|---|
type | enum | Yes | Property type (see below) |
identifier | string | Yes | Domain or app ID |
store | enum | No | App store (apple, google, etc.) |
region | string | No | ISO country code or global |
primary | boolean | No | Is this the primary property? |
Property Types
Matches AdCP property-type enum:websitemobile_appctv_appdesktop_appdoohpodcastradiostreaming_audio
Resolution Algorithm
To resolve a domain to a canonical brand:- Fetch
https://{domain}/.well-known/brand.json - Check variant:
- authoritative_location: Fetch from that URL, continue from step 2
- house (string): Fetch from house domain, continue from step 2
- brand_agent: Return agent URL (agent provides brand info)
- house (object) + brands: Search for domain in properties
- For house portfolio, find the brand whose properties contain the query domain
- Return canonical brand information
Complete Examples
Small Business
Enterprise with Agent
Multi-Brand Portfolio
Regional Domain Redirect
Onnike.cn/.well-known/brand.json:
Caching
Recommended cache TTLs:- Canonical files: 24 hours
- Redirect files: 24 hours
- Failed lookups: 1 hour
Best Practices
- Start simple: Begin with minimal brand.json and add complexity as needed
- Use redirects for subsidiaries: Point brand domains to house domain
- List all properties: Include regional domains, apps, and legacy domains
- Keep names current: Include localized names and common aliases
- Use brand agents for dynamic data: If brand info changes frequently, use an agent