Skip to main content
/brand returns a site’s brand assets under data.brand:
  • Colors: the brand palette, plus optional colors from a screenshot and from source code
  • Logos: the primary logo, secondary candidates, favicon and app icons
  • Fonts: the font families the site uses
  • Images: the Open Graph and Twitter images, brand assets and a screenshot
  • Social links: profile URLs, keyed by platform
  • Design tokens (opt-in): what each color is for, the type, and button and input styles
data.brand is the same block /enrich returns, so data.brand.colors reads the same from either one.

Example requests

Example response

A real response for stripe.com, shortened where marked with …:
Each color carries hex, color (as rgb()) and a human-readable name, such as Medium Slate Blue or midnightblue. Curated answers also say how the brand uses each color in type: accent, brand, dark, light or background. The first entry is the main brand color.
Well-known brands are answered from curated data in milliseconds. Other sites are read live, which takes 5 to 20 seconds, and the fields can differ a little. Treat every field as optional.

Color options

By default you get the brand palette. Add options to pull colors from more places: css, html and javascript all feed one code_colors map, keyed by the nearest named color rather than by source. Groups are ordered by how much the site uses them. Every spelling of one color (#000, rgb(0,0,0), rgba(0,0,0,.25)) is one entry, and transparent values are left out. Logo and favicon colors are the exact color most of their pixels have. When that’s within ΔE 6 of a color the page renders, it snaps to the page’s color, so a brand color the CSS sets (#632CA6) comes back as that hex rather than a near neighbor. social_links come from the page’s links, then its JSON-LD sameAs, rel="me" and Twitter card tags. If none of those name a profile, Prefetch reads the footer after scrolling it into view. Each link is the profile’s plain URL, without tracking parameters. /brand takes camelCase parameters. Batches and MCP take the snake_case spelling (screenshot_colors).

Design tokens

brand_colors tells you what a brand’s colors are. designTokens=true tells you what each one is for, read from the page as it renders:
  • Colors by role: primary (the most prominent button’s fill), secondary, background, text, heading and link, plus whether the page is light or dark
  • Typography: body and heading font stacks, weights, line height, and the h1 to h3 and body sizes
  • Components: the primary and secondary button (fill, label color, border, radius, weight) and the first text input
  • border_radius: the primary button’s rounding, a good guide to the whole site’s
The block lands at brand.design_tokens. It’s best effort: a field the page gives no reliable answer for is null. Requests with designTokens=true are always read live, never from curated data.
For a full design system with spacing, shadows and ready-to-use CSS and Tailwind exports, use /styleguide.

Next

Logo CDN

Just need logos in your UI? Embed them without an API call.

API reference

Every parameter, and a playground to try it.