The Brand Object

What does a brand context API return?

A brand context API returns what a model needs to write or design as a company. That includes who the company is, how it sounds, what it looks like, and what to avoid. If you do not work with the company, an API that reads its public website is enough. For work under your own brand or the brands of your customers, use context that the brand maintains. This site shows what eight APIs returned for linear.app on 11 November 2026.

GET /v2/context/linear.appBrandfetch Brand Context API
{
"meta": {
"canonical_name": "Linear",
"resolved_at": "2026-10-16T11:40:11Z"1Read from linear.app on 16 October. We asked on 11 November and got the stored copy.
},
"brand": {
"voice": {
"summary": "… a composed, exacting register …",2Built from the public pages of Linear, not supplied by Linear.
"attributes": ["precise", "measured", "craft-focused", …],
"avoid": ["breathless hype", "folksy banter"]3The only things to avoid in the response.
},
"style": { "summary": "… restrained cool accents …" }4Colors in words only. Other endpoints give values, and the values differ.
}
}
GET /v2/brands/domain/linear.appBrandfetch Brand API
{
"name": "Linear",
"claimed": false,1Linear did not claim this profile.
"logos": [{ "theme": "dark", "type": "logo", "formats": [ … ] }, …],
"colors": [
{ "hex": "#222326", "type": "dark" },2The pair that Linear calls official.
{ "hex": "#F4F5F8", "type": "light" }
],
"fonts": [{ "name": "Linear", "origin": "custom", "license": null }]3A font named "Linear". No license.
}
POST /v1/brand/retrieveContext.dev Brand
{
"brand": {
"slogan": "The product development system for teams and agents.",
"colors": [
{ "hex": "#7170ff", "name": "Stargate Shimmer", "source": "site" },1A generated name, not a Linear name.
…
],
"logos": [{ "mode": "light", "type": "logo", … }, …]2Each logo says which background it suits.
},
"cache_metadata": { "status": "hit", "age_ms": 19071504 }3A cached copy, about 5 hours old.
}
GET /v1/web/styleguide?domain=linear.appContext.dev Styleguide
{
"styleguide": {
"colors": { "accent": "#7170ff", "background": "#08090a", … },1Colors by role, read from the CSS.
"typography": {
"headings": {
"h1": { "fontFamily": "Inter Variable", "fontSize": "72px", … }2Firecrawl read the same h1 as 64px.
}
},
"components": { "button": { "primary": { "borderRadius": "9999px", … } } }3Button and card styles for code.
}
}
POST /v2/scrapeFirecrawl branding format
{
"colorScheme": "dark",
"colors": {
"primary": "#E4F222",1In no other response for Linear.
"background": "#08090A"
},
"fonts": [{ "family": "Inter", "role": "body" }, …],
"personality": { "tone": "minimalist", "energy": "low", … },2The only voice field: three words.
"confidence": { "overall": 0.9216666666666666, … }3Not in the documented fields.
}
GET /v2/brands?domain=linear.appLogo.dev Brand API
{
"data": {
"name": "Linear",
"description": "Linear is a product development platform for …",
"indexed_at": "2026-09-21T03:13:20.59294Z",1Last refreshed in September.
"colors": [{ "hex": "#000000" }, { "hex": "#ffffff" }],
"brandmark": {
"url": "https://img.logo.dev/assets/U-5Jfqg…",
"expires_at": "2026-11-12T19:00:00Z"2The link stops working. Store the file.
}
}
}
get_brief over MCPRainbrand Brief
{
"status": "completed",
"skill_id": "e16b6239-d74f-4922-97c1-d65c6ae3d882",1The brand version that this Brief came from.
"created_at": "2026-11-12T00:00:04.667Z",
"guidance": "… As of November 11, 2026, do not call it newly launched …",2Claim limits written for this task.
"assets": [{ "kind": "font", … }, { "kind": "logo", … }, …]3A monochrome icon, chosen for a dark section.
}
get_brand over MCPRainbrand Brand Skill
{
"version_id": "e16b6239-d74f-4922-97c1-d65c6ae3d882",
"profile": {
"palette": [
{ "hex": "#F4F5F8", "group": "Official brand colors", … },1Says which colors are official.
{ "hex": "#7170FF", "group": "Website accent", … },
…
],
"logo_catalog": { "items": [{ "form": "lockup", "contrasts_best_on": ["light"] }, …] }2Which background each logo suits.
},
"files": ["references/copywriting.md", "references/logo.md", …]3Written rules, as guidance files.
}

Where does the context come from?

The source decides what a response is good for. Context that an API reads from a public website suits a prospect, or a company that you never worked with. For work under the name of a brand, find out if the response carries the brand's own guidance and files. This site calls the two kinds observed context and maintained context. The vendors do not use these terms.

Observed

Read from the public website of the company

Whose brand
Any company, by its domain
Guidance
Tones to avoid, at most
Files
Logo and image addresses from the site
Version
A read date, or the age of a cached copy
Endpoints
Brandfetch, Context.dev, Firecrawl, Logo.dev
Use it for
Prospects, sales records, a first look at any company

Maintained

Prepared from sources added for the brand

Whose brand
Brands you or your customers add
Guidance
For one task, or the whole brand
Files
Selected assets, or asset references
Version
A Brand Skill version ID
Endpoints
Rainbrand Brief, Rainbrand Brand Skill
Use it for
Repeated work under your brand or the brands of your customers

Pick observed context for prospects, sales records, and a first look at any company:

  • Brandfetch Brand Context API for voice and positioning
  • Brandfetch Brand API, Context.dev, or Logo.dev for logos and colors
  • Context.dev Styleguide or Firecrawl for the CSS of a site

Pick maintained context for repeated work under your own brand or the brands of your customers. Use Rainbrand, with a Brief for each task or the Brand Skill for the whole brand. Rainbrand supplies the guidance and assets, and you keep your model and workflow.

The page Which brand context API do you need? gives a pick for each situation.

Which endpoint returns which field?

Each filled cell shows the key that held the field in the response of that endpoint for linear.app. An empty cell means that the response did not include the field.

Where each endpoint puts each field, in its response for linear.app
ObservedMaintained
FieldBrandfetch ContextBrandfetch BrandContext.dev BrandContext.dev StyleguideFirecrawl brandingLogo.dev BrandRainbrand BriefRainbrand Brand Skill
Who it is and how it sounds
Name and descriptionidentity.descriptiondescriptionbrand.descriptionnot in the responsebrandNamedata.descriptionguidanceprofile.name
Voice and tonebrand.voicenot in the responsenot in the responsenot in the responsepersonality.tonenot in the responseguidancecopywriting.md
Positioningpositioningnot in the responsenot in the responsenot in the responsepersonality.targetAudiencenot in the responseguidancepositioning.md
What it looks like
Logosnot in the responselogos[]brand.logos[]not in the responseimages.logodata.logoassets[]profile.logo_catalog
Colorsnot in the responsecolors[]brand.colors[]styleguide.colorscolorsdata.colors[]guidanceprofile.palette
Typenot in the responsefonts[]not in the responsestyleguide.typographytypographynot in the responseguidanceprofile.typography
Spacing and componentsnot in the responsenot in the responsenot in the responsestyleguide.componentscomponentsnot in the responsenot in the responseinterface-design.md
What to avoid, what to use, and when
Rules and claimsbrand.voice.avoidnot in the responsenot in the responsenot in the responsenot in the responsenot in the responseguidancelogo.md
Images and filesnot in the responseimages[]brand.backdrops[]styleguide.fontLinksimagesdata.social_banners[]assets[]files[]
Dates and versionsmeta.resolved_atnot in the responsecache_metadatacache_metadatanot in the responsedata.indexed_atskill_idversion_id

One company, four main colors

On the same day, the four observed vendors returned four different main colors for Linear. Only the maintained palette shows which colors Linear calls its own.

Endpoint Main color returned What it is
Firecrawl branding #E4F222 as primary A yellow-green from the page. No other response has it
Context.dev Brand #7170ff, named "Stargate Shimmer" The violet accent of the website, with a generated name
Brandfetch Brand API #222326 and #F4F5F8 A dark color and a light color, the pair that Linear calls official
Logo.dev Brand API #000000 and #ffffff Black and white
Rainbrand Brand Skill #F4F5F8 and #222326 as "Official brand colors", #7170FF as "Website accent" Grouped, with a note about the use of each color

The Colors page shows every value and its source.

Responses

8 pages

Eight brand context endpoints, each called for linear.app on 11 November 2026: the request, the full response marked up field by field, failures and plans.

Fields

10 pages

Brand context split into ten fields, from voice to versions. For each field, the endpoints that return it, the key that holds it, and how to pass it on.

Recipes

7 pages

Code that passes brand context to a model, in TypeScript and Python: prompts, JSON or Markdown, caching, failures, prospects, customers and agents.

Templates

3 pages

Text to copy into your own code: one JSON Schema for brand context from any endpoint, a system prompt that takes it, and adapters from each vendor's response.