Skip to main content

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.

The 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.
brand.json is the canonical source of brand identity data. The brand object defined here (logos, colors, tone, tagline) is the single brand definition used across AdCP. Tasks reference brands by domain and brand_id — the system resolves full identity from brand.json or the registry.

File location

Brands host the brand.json file at:
https://example.com/.well-known/brand.json
Following RFC 8615 well-known URI conventions.

Variants

The brand.json file supports four mutually exclusive variants:

1. Authoritative Location Redirect

Points to a hosted brand.json at another URL:
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "authoritative_location": "https://adcontextprotocol.org/brand/abc123/brand.json"
}
Use this when:
  • Brand.json is hosted centrally (e.g., by a service provider)
  • CDN distribution is needed
  • Managed brand services
Optional fields (shared with House Redirect — see Redirect ergonomics):
  • redirect_reason: structured signal for cache handling (acquisition, rebrand, regional, legacy, consolidation, other)
  • redirect_effective_at: ISO timestamp when the redirect became effective
  • note: free-text rationale

2. House Redirect

Points to the house domain that contains the full brand portfolio:
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "house": "nikeinc.com",
  "note": "Regional site - see house for brand portfolio"
}
Optional fields:
  • region: ISO 3166-1 alpha-2 country code (e.g., “CN”)
  • redirect_reason: structured signal for cache handling (see Redirect ergonomics)
  • redirect_effective_at: ISO timestamp when the redirect became effective
  • note: free-text rationale
Use this when:
  • Brand domain is owned by a larger house
  • Regional/localized domains point to main house
  • Legacy domains redirect to canonical

Redirect ergonomics

Both redirect variants accept optional redirect_reason and redirect_effective_at to help consumers handle redirect transitions without sitting on stale cached state. redirect_reason is an enum:
ValueMeaningCaching guidance
acquisitionThe owning entity was acquired (e.g., one holdco buys another)Shorten cache TTL until stable; many fields may move
divestitureThe owning entity spun out or sold offShorten cache TTL until stable; new ownership chain
rebrandThe brand or house renamed/repositionedShorten cache TTL until stable
consolidationSub-brands consolidated into the targetShorten cache TTL until stable
regionalRegional/localized domain points to main houseStable; standard caching
legacyOld domain that redirects to canonicalStable; standard caching
otherReason not captured by the aboveFree-text rationale belongs in note
redirect_effective_at (ISO 8601 timestamp) is the hard cache invariant: caches MUST treat any entry cached before this timestamp as stale and re-fetch through the redirect. The TTL-shortening guidance above is a SHOULD; this timestamp is a MUST and is the load-bearing fix for cache poisoning during M&A and other transitions. This is the brand.json analogue to the migration patterns in IAB Tech Lab’s ads.txt (OWNERDOMAIN) and sellers.json (seller_type), which historically relied on out-of-band coordination — there was no machine-readable transition signal. redirect_reason + redirect_effective_at close that gap for brand.json. Example — acquisition redirect:
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "house": "wpp.com",
  "redirect_reason": "acquisition",
  "redirect_effective_at": "2026-04-15T00:00:00Z",
  "note": "Acquired by WPP April 2026"
}

3. Brand Agent

Designates an MCP agent that provides brand information:
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "version": "1.0",
  "brand_agent": {
    "url": "https://agent.acme.com/mcp",
    "id": "acme_brand_agent"
  }
}
Optional fields:
  • contact: Contact information
When a brand has an agent, the agent is the authoritative source for brand identity data.

4. House Portfolio

Contains the full brand hierarchy with all brands and properties:
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "version": "1.0",
  "house": {
    "domain": "nikeinc.com",
    "name": "Nike, Inc.",
    "architecture": "hybrid"
  },
  "brands": [
    {
      "id": "nike",
      "names": [{"en": "Nike"}],
      "keller_type": "master",
      "properties": [
        {"type": "website", "identifier": "nike.com", "primary": true}
      ]
    }
  ]
}

House definition

The house object represents the corporate entity:
FieldTypeRequiredDescription
domainstringYesHouse’s primary domain
namestringYesDisplay name
namesarrayNoLocalized names
architectureenumNobranded_house, house_of_brands, or hybrid

Brand definition

Each brand in the brands array:
FieldTypeRequiredDescription
idstringYesBrand identifier (lowercase alphanumeric with underscores)
namesarrayYesLocalized names (see below)
keller_typeenumNomaster, sub_brand, endorsed, independent
parent_brandstringNoParent brand’s id
propertiesarrayNoDigital properties associated with this brand
brand_agentobjectNoAgent providing brand identity data { url, id }
rights_agentobjectNoRights licensing agent { url, id, available_uses, right_types, countries }
logosarrayNoBrand logo assets
colorsobjectNoBrand color palette
fontsobjectNoBrand typography
toneobjectNoBrand voice and messaging guidelines (voice, attributes, dos, donts)
taglinestringNoBrand tagline or slogan
visual_guidelinesobjectNoStructured visual rules for generative creative systems

Names Array

Names are localized with language codes:
{
  "names": [
    {"en": "Nike"},
    {"en": "The Swoosh"},
    {"zh": "耐克"},
    {"ja": "ナイキ"}
  ]
}
Multiple entries per language are allowed (for aliases).

Keller Types

Brand architecture classifications from marketing theory:
TypeDescriptionExample
masterPrimary brand of houseNike for Nike, Inc.
sub_brandCarries parent brand nameNike SB
endorsedIndependent identity, endorsed by parentAir Jordan “by Nike”
independentOperates separately from houseConverse

Extended color roles

The colors object has five standard roles (primary, secondary, accent, background, text), but brands can and should provide additional roles for finer granularity. The schema accepts any additional color role via additionalProperties.
{
  "colors": {
    "primary": "#FF6600",
    "secondary": "#0066CC",
    "background": "#FFFFFF",
    "text": "#1A1A1A",
    "heading": "#FF6600",
    "body": "#333333",
    "label": "#666666",
    "border": "#E5E5E5",
    "divider": "#F0F0F0",
    "surface_1": "#F9F9F9",
    "surface_2": "#F0F0F0"
  }
}
RolePurpose
headingHeading text color (when different from body text)
bodyBody text color
labelLabel/caption text color
borderBorder/outline color
dividerDivider/separator color
surface_1Primary surface/card background
surface_2Secondary surface background
These extended roles help creative agents distinguish between text hierarchies and surface levels without guessing.

Visual guidelines

The visual_guidelines object provides structured rules that generative creative systems can use to produce on-brand assets consistently. These are brand constants — they don’t change campaign to campaign.
Visual guidelines complement the basic identity fields (colors, fonts, logos). Colors define what the brand palette is; visual guidelines define how to use it. Fonts define font families; visual guidelines define the type scale.

Photography

Controls how brand photography should look when selected or generated:
{
  "photography": {
    "realism": "natural",
    "lighting": "soft daylight",
    "color_temperature": "warm",
    "contrast": "medium",
    "depth_of_field": "medium",
    "subject": {
      "people": {
        "age_range": "25-45",
        "diversity": "mixed",
        "mood": ["confident", "relaxed"]
      },
      "product_focus": "in-use",
      "setting": "outdoor"
    },
    "framing": {
      "subject_position": "center-left",
      "crop_style": "waist-up",
      "perspective": "eye-level"
    }
  }
}
FieldTypeDescription
realismenumnatural, stylized, hyperreal, abstract
lightingstringLighting style description
color_temperatureenumwarm, neutral, cool
contrastenumlow, medium, high
depth_of_fieldenumshallow, medium, deep
subjectobjectSubject matter guidelines (people, product focus, setting)
framingobjectCamera framing rules (position, crop, perspective)
preferred_aspect_ratiosarrayPreferred aspect ratios (e.g., ["16:9", "4:5", "1:1"])
tagsarrayAdditional style descriptors

Graphic style

Defines the visual language for brand graphics and illustrations:
{
  "graphic_style": {
    "style_type": "flat_illustration",
    "stroke_style": "rounded",
    "stroke_weight": "2px",
    "corner_radius": "12px"
  }
}
Style types: flat_illustration, geometric, gradient_mesh, editorial_collage, hand_drawn, minimal_line_art, 3d_render, isometric, photographic_composite.
FieldTypeDescription
style_typeenumflat_illustration, geometric, gradient_mesh, editorial_collage, hand_drawn, minimal_line_art, 3d_render, isometric, photographic_composite
stroke_styleenumrounded, square, mixed, none
stroke_weightstringStroke weight (e.g., 2px)
corner_radiusstringCorner radius for graphic/illustration elements (e.g., 12px). For UI components, see border_radius.
tagsarrayAdditional style descriptors

Shapes

Brand shapes used as part of visual identity:
{
  "shapes": {
    "primary_shape": "circle",
    "secondary_shapes": ["rounded_rectangle", "diagonal_wave"],
    "usage": {
      "max_per_layout": 2,
      "overlap_allowed": true
    }
  }
}
FieldTypeDescription
primary_shapestringPrimary brand shape (e.g., circle, rounded_rectangle, hexagon)
secondary_shapesarraySecondary shapes in the brand vocabulary
usage.max_per_layoutintegerMaximum distinct shapes per layout
usage.overlap_allowedbooleanWhether shapes may overlap

Iconography

Icon style system and usage rules:
{
  "iconography": {
    "style": "outline",
    "stroke_weight": "2px",
    "corner_style": "rounded",
    "usage": {
      "max_per_frame": 3,
      "size_ratio": "1:8"
    }
  }
}
FieldTypeDescription
styleenumoutline, filled, duotone, flat, glyph, hand_drawn
stroke_weightstringIcon stroke weight (e.g., 2px)
corner_styleenumrounded, square, mixed
usage.max_per_frameintegerMaximum icons per creative frame
usage.size_ratiostringIcon-to-layout size ratio (e.g., 1:8)

Composition

Layout rules for overlays, textures, and backgrounds:
{
  "composition": {
    "overlays": {
      "gradient_style": "linear",
      "gradient_direction": "45deg",
      "opacity": "70%"
    },
    "texture": {
      "style": "subtle_grain",
      "intensity": "low"
    },
    "backgrounds": {
      "types_allowed": ["solid_color", "gradient", "image"]
    }
  }
}
Texture styles: none, subtle_grain, noise, paper, fabric, concrete. Intensity: low, medium, high. Background types: solid_color, gradient, blurred_photo, image, video, pattern, transparent.

Border radius

Named border radius presets for UI components and layout elements. Border radius is one of the most visible brand differentiators — generous radii feel warm and approachable, while small or zero radii feel precise and editorial.
{
  "border_radius": {
    "none": "0",
    "default": "12px",
    "small": "4px",
    "large": "20px",
    "pill": "999px"
  }
}
FieldTypeDescription
nonestringExplicitly sharp corners (0)
defaultstringDefault border radius for UI components (e.g., 8px, 12px)
smallstringSmall radius for compact elements (e.g., 4px)
largestringLarge radius for cards and containers (e.g., 16px, 24px)
pillstringFully rounded / pill shape (e.g., 999px)
Additional named presets can be added beyond the five standard levels.
graphic_style.corner_radius defines a default radius for graphic/illustration elements. border_radius defines a named scale for UI components and layout — buttons, cards, inputs, modals.

Elevation

Named shadow levels that define how elements appear to lift off the surface. Brands use elevation as identity — some prefer dramatic multi-layer shadows, others use a single diffuse shadow.
{
  "elevation": {
    "none": "none",
    "subtle": "0 1px 3px rgba(0,0,0,0.08)",
    "card": "0 4px 8px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.06)",
    "modal": "0 20px 25px -5px rgba(0,0,0,0.1), 0 8px 10px -6px rgba(0,0,0,0.06)"
  }
}
Values use CSS box-shadow syntax. Generative systems can apply these directly.
FieldTypeDescription
nonestringNo shadow (none)
subtlestringSlight lift for interactive elements
cardstringCard-level elevation
modalstringModal/overlay elevation
Additional named levels (e.g., dropdown, tooltip) can be added.

Spacing

Spacing system for consistent layout rhythm. A base unit plus a named scale enables creative agents to produce correctly-spaced layouts without guessing.
{
  "spacing": {
    "unit": "8px",
    "scale": {
      "xs": "4px",
      "sm": "8px",
      "md": "16px",
      "lg": "24px",
      "xl": "32px",
      "2xl": "48px"
    }
  }
}
FieldTypeDescription
unitstringBase grid unit this scale was designed from (e.g., 8px). Informational — agents should use the named scale values directly.
scaleobjectNamed spacing scale (xs through 2xl)
The scale object supports standard sizes (xs, sm, md, lg, xl, 2xl) and can include additional named values (e.g., 3xl, section).

Graphic elements

Reusable decorative or structural visual elements that are part of the brand identity — torn paper edges, watermarks, dividers, background patterns:
{
  "graphic_elements": [
    {
      "name": "Paper Tear",
      "type": "frame",
      "description": "Torn paper edge used as section dividers and photo frames. Use primarily vertical orientation.",
      "orientation": "vertical",
      "colors": ["#a75230", "#f6f1f1", "#fba007"],
      "max_per_layout": 2
    },
    {
      "name": "Location Sketch Watermark",
      "type": "watermark",
      "description": "Light hand-drawn building sketch behind content, visible through the logo area",
      "colors": ["#a75230"]
    }
  ]
}
FieldTypeRequiredDescription
namestringYesElement name
typeenumNoborder, divider, frame, watermark, pattern, texture_overlay, decorative
descriptionstringNoHow the element is used in layouts
orientationenumNohorizontal, vertical, any
colorsarrayNoColors this element may appear in
max_per_layoutintegerNoMaximum instances per layout

Motion

Motion and animation rules for video, animated display, and interactive formats:
{
  "motion": {
    "transition_style": "dissolve",
    "animation_speed": "moderate",
    "easing": "ease-in-out",
    "text_entrance": "fade",
    "pacing": "lingering",
    "kinetic_typography": false
  }
}
FieldTypeDescription
transition_styleenumcut, dissolve, slide, wipe, zoom, fade
animation_speedenumslow, moderate, fast
easingstringDefault easing function (e.g., ease-in-out, spring, linear)
text_entranceenumfade, typewriter, slide_up, slide_left, scale, none
pacingenumlingering, moderate, fast_cuts
kinetic_typographybooleanWhether animated/kinetic typography is allowed
tagsarrayAdditional motion style descriptors

Logo placement

Logo placement and clear space rules for automated creative production:
{
  "logo_placement": {
    "preferred_position": "bottom-left",
    "min_clear_space": "0.5x",
    "min_height": "40px",
    "background_contrast": "any"
  }
}
FieldTypeDescription
preferred_positionenumtop-left, top-center, top-right, bottom-left, bottom-center, bottom-right, center
min_clear_spacestringMinimum clear space as a multiple of logo height (e.g., 0.5x, 1x) or fixed value (e.g., 16px)
min_heightstringMinimum logo height for legibility (e.g., 40px)
background_contrastenumlight_only, dark_only, any

Colorways

Named color pairings that define how colors work together. Allows a creative brief to reference “use my primary colorway” without specifying every color:
{
  "colorways": [
    {
      "name": "primary",
      "foreground": "#FFFFFF",
      "background": "#FF6600",
      "accent": "#0066CC",
      "cta_foreground": "#FFFFFF",
      "cta_background": "#0066CC"
    },
    {
      "name": "inverted",
      "foreground": "#FF6600",
      "background": "#FFFFFF",
      "accent": "#0066CC",
      "border": "#FF6600"
    }
  ]
}
FieldTypeRequiredDescription
namestringYesColorway name (e.g., "primary", "inverted", "dark")
foregroundhex colorYesText/foreground color
backgroundhex colorYesBackground color
accenthex colorNoAccent color
cta_foregroundhex colorNoCall-to-action text color
cta_backgroundhex colorNoCall-to-action button color
borderhex colorNoBorder color
channelsarrayNoChannels where this colorway applies (e.g., ["online"], ["print", "pos"]). Omit for universal colorways.

Type scale

Typography scale defining sizes and weights for different text roles:
{
  "type_scale": {
    "base_width": "1080px",
    "heading": {
      "font": "primary",
      "size": "48px",
      "weight": "700",
      "line_height": "1.1"
    },
    "subheading": {
      "font": "primary",
      "size": "24px",
      "weight": "600",
      "line_height": "1.3"
    },
    "body": {
      "font": "secondary",
      "size": "16px",
      "weight": "400",
      "line_height": "1.5"
    },
    "caption": {
      "font": "secondary",
      "size": "12px",
      "weight": "400",
      "line_height": "1.4"
    },
    "cta": {
      "font": "primary",
      "size": "18px",
      "weight": "700",
      "text_transform": "uppercase",
      "letter_spacing": "0.05em"
    }
  }
}
The font field references font roles defined in the brand’s fonts object ("primary", "secondary"), or can specify a font family name directly. When sizes are in pixels, use base_width to indicate the reference canvas these sizes were designed for. Generative systems should scale proportionally for other canvas sizes — a 48px heading designed for 1080px width would scale to 14px on a 320px mobile leaderboard.

Asset libraries

References to managed asset libraries (icon sets, illustration systems, image collections). URLs are for human access — a brand portal, press kit, or DAM landing page that a person can open in a browser.
{
  "asset_libraries": [
    {
      "name": "Brand Illustrations v2",
      "type": "illustration_system",
      "url": "https://brand.example.com/illustrations",
      "description": "Flat illustration system with defined color guide",
      "color_guide": {
        "roles": ["base", "shadow_1", "shadow_2", "highlight_1", "highlight_2", "stroke"],
        "palettes": [
          {
            "name": "orange",
            "colors": {
              "base": "#FF6600",
              "shadow_1": "#CC5200",
              "shadow_2": "#993D00",
              "highlight_1": "#FF8533",
              "highlight_2": "#FFB380",
              "stroke": "#662900"
            }
          }
        ]
      }
    }
  ]
}
FieldTypeRequiredDescription
namestringYesDisplay name of the asset library
typeenumRecommendedicon_set, illustration_system, image_library, video_library, template_library
urlstring (URI)YesURL to the asset library (for human access)
descriptionstringNoDescription of library contents and usage
color_guideobjectNoColor roles and palettes used in the library
The color_guide provides generative systems with the color palettes used in the library — useful for producing on-brand illustrations or icons without accessing the library itself.

Restrictions

Visual prohibitions and guardrails — the visual equivalent of tone.donts. These tell generative systems what to avoid:
{
  "restrictions": [
    "Never place text over the product",
    "Do not use black backgrounds",
    "No stock photography of people on phones",
    "No split-screen layouts"
  ]
}

Property definition

Properties are digital touchpoints associated with brands:
FieldTypeRequiredDescription
typeenumYesProperty type (see below)
identifierstringYesDomain or app ID
storeenumNoApp store (apple, google, etc.)
regionstringNoISO country code or global
primarybooleanNoIs this the primary property?
relationshipenumNoHow this brand relates to the property: owned (default), direct, delegated, ad_network. Matches delegation_type in adagents.json for bilateral verification. See ad networks.

Property types

Matches AdCP property-type enum:
  • website
  • mobile_app
  • ctv_app
  • desktop_app
  • dooh
  • podcast
  • radio
  • streaming_audio

Property relationships

Properties default to owned — the brand operates the property directly. For networks and SSPs that sell inventory they don’t own, the relationship field declares the commercial arrangement:
ValueMeaningExample
ownedBrand owns and operates this property (default)Your own website
directBrand is the direct sales path, even if a third party runs the techPublisher’s in-house ad team using a vendor’s platform
delegatedBrand manages monetization — in charge of ad salesMediavine managing a food blog
ad_networkBrand sells as part of a network/exchange — a path, not the pathPubMatic as an SSP
This is the AdCP equivalent of sellers.json — the operator’s public declaration of which publishers they work with. The publisher confirms by setting the matching delegation_type on the agent’s authorization in their adagents.json. See ad networks for the bilateral verification pattern.

Resolution algorithm

To resolve a domain to a canonical brand:
  1. Fetch https://{domain}/.well-known/brand.json
  2. 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
  3. For house portfolio, find the brand whose properties contain the query domain
  4. Return canonical brand information
Maximum redirect depth: 3 hops.

Complete examples

Small Business

{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "version": "1.0",
  "house": {
    "domain": "bobsburgers.com",
    "name": "Bob's Burgers LLC"
  },
  "brands": [
    {
      "id": "bobs_burgers",
      "names": [{"en": "Bob's Burgers"}],
      "keller_type": "master",
      "properties": [
        {"type": "website", "identifier": "bobsburgers.com", "primary": true}
      ],
      "logos": [
        { "url": "https://bobsburgers.com/logo.svg", "tags": ["icon"] }
      ],
      "colors": { "primary": "#FF6B35" }
    }
  ]
}

Enterprise with Agent

{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "version": "1.0",
  "brand_agent": {
    "url": "https://brand-agent.enterprise.com/mcp",
    "id": "enterprise_brand_agent"
  },
  "contact": {
    "name": "Enterprise Brand Team",
    "email": "brand@enterprise.com"
  }
}

Multi-Brand Portfolio

{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "version": "1.0",
  "house": {
    "domain": "nikeinc.com",
    "name": "Nike, Inc.",
    "architecture": "hybrid"
  },
  "brands": [
    {
      "id": "nike",
      "names": [{"en": "Nike"}, {"zh": "耐克"}, {"ja": "ナイキ"}],
      "keller_type": "master",
      "properties": [
        {"type": "website", "identifier": "nike.com", "primary": true},
        {"type": "website", "identifier": "nike.cn", "region": "CN"},
        {"type": "mobile_app", "store": "apple", "identifier": "com.nike.omega"}
      ]
    },
    {
      "id": "air_jordan",
      "names": [{"en": "Air Jordan"}, {"en": "Jordan"}, {"en": "Jumpman"}],
      "keller_type": "endorsed",
      "parent_brand": "nike",
      "properties": [
        {"type": "website", "identifier": "jordan.com", "primary": true},
        {"type": "website", "identifier": "jumpman23.com"},
        {"type": "mobile_app", "store": "apple", "identifier": "com.nike.snkrs"}
      ]
    },
    {
      "id": "converse",
      "names": [{"en": "Converse"}],
      "keller_type": "independent",
      "properties": [
        {"type": "website", "identifier": "converse.com", "primary": true}
      ]
    }
  ],
  "contact": {
    "name": "Nike Brand Team",
    "email": "brand@nike.com"
  }
}

Talent Agency with Rights

A talent agency managing athlete brands with licensable rights:
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "version": "1.0",
  "house": {
    "domain": "lotientertainment.com",
    "name": "Loti Entertainment",
    "architecture": "house_of_brands"
  },
  "brands": [
    {
      "id": "daan_janssen",
      "names": [{"en": "Daan Janssen"}],
      "description": "Dutch Olympic speed skater, 2x gold medalist",
      "industries": ["sports"],
      "logos": [
        {
          "url": "https://cdn.lotientertainment.com/janssen/headshot.jpg",
          "variant": "primary"
        }
      ],
      "brand_agent": {
        "url": "https://rights.lotientertainment.com/mcp",
        "id": "loti_entertainment"
      },
      "rights_agent": {
        "url": "https://rights.lotientertainment.com/mcp",
        "id": "loti_entertainment",
        "available_uses": ["likeness", "voice", "endorsement"],
        "right_types": ["talent"],
        "countries": ["NL", "BE", "DE"]
      }
    }
  ]
}
The rights_agent field tells crawlers what’s licensable without any MCP calls — available uses, rights type, and countries. Buyer agents can search the registry for “Dutch athletes available for voice licensing” and find matches from the indexed brand.json data.

Regional Domain Redirect

On nike.cn/.well-known/brand.json:
{
  "$schema": "https://adcontextprotocol.org/schemas/v3/brand.json",
  "house": "nikeinc.com",
  "region": "CN"
}

Caching

Recommended cache TTLs:
  • Canonical files: 24 hours
  • Redirect files: 24 hours
  • Failed lookups: 1 hour

Best practices

  1. Start simple: Begin with minimal brand.json and add complexity as needed
  2. Use redirects for subsidiaries: Point brand domains to house domain
  3. List all properties: Include regional domains, apps, and legacy domains
  4. Keep names current: Include localized names and common aliases
  5. Visual guidelines are optional: Add them when you need generative systems to produce on-brand assets consistently. Start with colorways and restrictions — they have the highest immediate impact.
  6. Keep portfolios lean: For house portfolios with many brands, include visual guidelines only on brands that need them. Full visual guidelines on every brand in a large portfolio increases file size significantly.