brand.json, at
https://{domain}/.well-known/brand.json: its names, logos, colors, fonts and
voice, for ad tech and agents. It is the open format Artbucket follows to
publish a brand for machines, and it reads it back to start a brand.
- BrandHub serves each public brand as a Brand Canonical Document, at
/{org}/{brand}/brand.json, from its latest release (@{n}for another). A private or never-released brand has none. - A verified domain answers
/.well-known/brand.jsonwith an Authoritative Location Redirect to that document (below). - A new brand can be made from any domain’s brand.json (the import).
The export
The document is drawn from the release’s rules, by key. Only the default context is read, but for logos, whose context versions are logos of their own. Where a field lists several keys, the first the brand has wins.Identity
Colors
Type
Logos
Every image of everylogo.* rule, context versions included, is one
logos[] entry; rules named like a do or a don’t (logo.never,
logo.always) are not logos.
Voice, spacing and imagery
ext.artbucket
What AdCP has no field for stays one link away, underext.artbucket:
rules is every rule, losslessly (rules.json);
guidelines the portal BrandHub links as the brand’s guidelines, else its
BrandHub page.
What the export leaves out
- Colors: print values (
cmyk,pantone,ral,rgb), tints, gradients (the solid is kept), groups and weights, each color’s label and usage, alpha, and every context version. - Type: a bare type scale (AdCP’s scale is by role),
spec.license,spec.sourceandspec.download, and the weight and style of each file. - Logos: visual do’s (
logo.always): AdCP has none. - Everything else: every rule outside the keys above, the brand’s pages
and theme, and
brand.audience. They are inrules.json.
Make it complete
A brand that holds these rules fills every field the export writes. The complete example holds them all.
Then release the brand and make it public on BrandHub: the document is the
release’s, so a change shows once it is released.
An example
The export of the complete example’s release 4, with its organization’s verified domainacme.com:
Your domain
To have agents that read your domain find the brand, host one file athttps://{domain}/.well-known/brand.json, an Authoritative Location
Redirect. The brand’s Sharing tab gives it:
/.well-known/brand.json
itself, from the organization’s public, released brands (on a portal’s
domain, those the portal shows):
- the one whose domain the host proves, else the only one, else the default one, as an Authoritative Location Redirect to it on BrandHub;
- with several and none of those, a House Portfolio of them all, inline:
{ "$schema", "version": "1", "house": { "domain", "name" }, "brands": [...] }.
404.
The public Brand Agent Score
reads a domain’s /.well-known/brand.json (or the brand.json its
llms.txt links) for its rules. An Authoritative Location Redirect there is
followed once, over https, so the one-line file above is enough for the score
to read the brand on BrandHub.
The import
New brand, From a domain in the app, orPOST /api/v1/brands with
domain (or the document itself as brandJson), makes a brand from a
brand.json: making one has the steps. It is the export run
backwards, so a document Artbucket wrote comes back as it was, as far as the
document says it.
- Localized fields (AdCP 3.2’s
tagline,tone.*, an asset’snameanddescription) are read in English, else in the document’sdefault_language, else as their plain value; never whichever translation comes first. A localized list is taken whole. - Documents of other shapes: an Authoritative Location Redirect is
followed once, exactly; a House Portfolio offers each of its brands, and
its
brand_refsare read at their own domains, ten at most; a document that only points at its house, or only names a brand agent, makes no brand and says why. - Dropped: what has no place in the rules (
keller_type,house_domain,trademarks,agents,brand_agent,contact,privacy_policy_url,visual_guidelines.photography,motion,graphic_style, the otherlogo_placementfields, colors that aren’t six-digit hex, assets that aren’t images) is listed in the answer’sdropped, by its path. A logo or font file that won’t fetch is listed inskipped. Neither refuses the brand.
www twin and back.