Brand Intelligence API Brand Colors API

Get the brand colors behind any website

Extract meaningful brand colors and their roles from any website or domain with one API.

GETopengraph.io/api/1.1/brand
  • supabase.com
    • primary#3ECF8E
    • accent#249361
    • text#FFFFFF
    • background#000000
  • gitlab.com
    • primary#FC6D26
    • accent#E24329
  • twilio.com
    • primary#F22F46
    • background#000D25

Real identity.colors results with a role.

More than a list of hex codes

Get the colors that represent the brand, not every color on the page

Finding every color a page uses is easy. Knowing which ones belong to the brand is the hard part.

Every color in the homepage styles

23 distinct colors on supabase.com. The most frequent:

Brand Colors

4 colors, each with the role it plays.

  • primary#3ECF8E
  • accent#249361
  • text#FFFFFF
  • background#000000

Real output for supabase.com.

Brand color roles

Each color comes with the job it does

Not every brand fills every role. A smaller palette of meaningful colors beats a large, noisy one.

primary

The most prominent brand color. Colors the site declares as its own, its logo’s colors most of all, carry the most weight.

accent

Usually the next brand color after the primary. A style variable named secondary or highlight is labelled accent when that slot is free.

background

A color the page uses as a background or surface, usually a neutral.

text

A color the page uses for text, usually a neutral.

How OpenGraph finds brand colors

Declared colors first, not just the most frequent ones

A site says which colors are its own in several places. Those declared colors carry the most weight, its logo’s colors most of all, and colors used in the page styles add weight too. Greys, near blacks, and whites never become the primary color.

  • The colors of the logo the site draws inline
  • The Safari pinned tab color
  • The theme color in the page head and the web app manifest
  • Style variables, with names like primary or brand read as roles
  • Colors used in the homepage’s own styles
Built for product experiences

Make your product match your customer’s brand

Automatic theming

Theme an application, portal, or workspace from a customer’s domain.

SaaS onboarding

Fill in brand colors without asking users to type hex values.

AI website builders

Give generation systems the palette of the existing brand.

Presentations and reports

Apply company colors to generated assets automatically.

Creative generation

Give image, ad, and design generators meaningful brand colors.

Company profiles

Enrich company records with a recognizable palette.

White label applications

Adapt customer facing software to each client’s visual identity.

Structured color data

Hex and role. Nothing to clean up.

Colors arrive as six digit hex, brand colors first, with a role where one applies.

Real output for supabase.com.

{ "identity": { "colors": [ { "hex": "#3ECF8E", "role": "primary" }, { "hex": "#249361", "role": "accent" }, { "hex": "#FFFFFF", "role": "text" }, { "hex": "#000000", "role": "background" } ] } }
Why not extract it yourself?

A screenshot palette isn’t a brand palette, and neither is a stylesheet

Both are full of colors that have little to do with the brand. OpenGraph reads what the site declares as its own first, instead of counting pixels or ranking every CSS value equally.

What dominates a screenshot

  • Photography
  • Illustrations
  • Product images
  • Customer logos
  • Campaign colors
  • Decorative gradients

What fills a stylesheet

  • Component states
  • Borders and shadows
  • Utility classes
  • Whole design system scales
  • Legacy styles
  • Third party widgets

We handle the extraction and interpretation. You get the palette.

Built for AI and applications

Raw values for code, and part of a larger visual identity

Brand colorsBrand IdentityAI website, creative, or presentation generator
Colors are only one part of the brand

Need the rest of the visual identity?

Brand Identity API

Logos, icons, fonts, visual style, imagery style, and interface style alongside the colors.

Explore Brand Identity API

Brand Intelligence API

Products, audiences, positioning, messaging, voice, custom questions, and more.

Explore Brand Intelligence API
Same Brand Intelligence endpoint

One Brand Intelligence endpoint. Request only the brand data your application needs.

Turn off every section except identity. Colors come back with the logos, site icon, and fonts, read from the homepage without crawling other pages.

curlPOST /api/1.1/brand/:url
curl -X POST "https://opengraph.io/api/1.1/brand/https%3A%2F%2Fsupabase.com?app_id=YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "sections": { "brand": false, "products": false, "audiences": false, "positioning": false, "messaging": false, "voice": false, "visual": false, "links": false } }'
Build vs buy

Skip the brand color extraction pipeline

Homepage fetchLogo color readingDeclared color signalsStyle variable resolutionGrey filteringRole assignmentHex normalization

We build the brand understanding pipeline so you don’t have to.

FAQ

No. Colors are part of the identity section of the Brand Intelligence endpoint. Turn every other section off, with no custom questions, and the request reads just the homepage, its stylesheets for fonts, and its app manifest, and returns colors along with logos, the site icon, and fonts.
It is the most prominent brand color, not a reading of the brand guidelines. Colors the site declares as its own carry the most weight, its logo’s colors most of all, then its Safari pinned tab color and theme color. Style variables and frequent use add weight too, so a heavily used color can outrank a theme color. Greys, near blacks, and whites never become the primary color.
Each palette has at most one primary, accent, background, and text color. Further colors are returned without a role, and a style variable named secondary is labelled accent when that slot is free.
Colors are read from the homepage’s own styles, its logo, and its declared theme colors, not from external stylesheets. A site that keeps its palette only in external stylesheets, or writes colors in formats such as hsl, returns fewer or less brand specific colors. Monochrome brands come back with neutrals only.
Six digit uppercase hex. RGB values are converted, and transparency is dropped rather than blended against a background the API cannot see. Colors written in other formats, such as hsl or color names, are skipped. Up to six colors are returned, brand colors first.

Get the colors behind any brand

Start with a domain. OpenGraph finds the palette.