POST /v1/brand

Brand Extraction API: Logos, Colors and Fonts from Any Domain

Turn any company domain into a structured brand profile in one request.

Extract brand identity from any website: hex colors with inferred usage, font families, logo, and favicon. Structured JSON for directories, CRMs, and onboarding.

Try it live
How it works

Build it step by step.

The real flow, one step at a time. Switch between TypeScript, Python, and cURL on any snippet.

  1. 1

    Send the domain

    POST the company's URL to /v1/brand from an SDK or the REST API with your Bearer key.

    import { Webclaw } from "@webclaw/sdk";const webclaw = new Webclaw({ apiKey: process.env.WEBCLAW_API_KEY });// POST the company's URL to the brand endpointconst brand = await webclaw.brand({ url: "https://stripe.com" });
  2. 2

    webclaw reads the markup

    It parses the page HTML and inline CSS to find colors, fonts, the logo, and the favicon, no headless browser required.

  3. 3

    Get a structured profile

    The response is a JSON object with ranked hex colors and usage, font families, logo_url, and favicon_url.

    // brand is a structured profile, no parsing requiredconsole.log(brand.logo_url);console.log(brand.favicon_url);console.log(brand.fonts);// colors are ranked by usagefor (const c of brand.colors) {  console.log(c.hex, c.usage, c.count);}
  4. 4

    Store or enrich

    Write the fields into your CRM, directory, or onboarding record, or hand the JSON to an LLM to reason over.

    // Write the fields into your CRM or onboarding recordawait db.companies.update(companyId, {  logoUrl: brand.logo_url,  faviconUrl: brand.favicon_url,  primaryColor: brand.colors[0]?.hex,  palette: brand.colors.map((c) => c.hex),  fonts: brand.fonts,});
Why webclaw

Built for brand extraction.

One request per domain returns logo, colors, and fonts as JSON

Hex colors come with inferred usage (primary, text, background) and counts

Reads HTML and inline CSS directly, no headless browser, fast on static sites

Handles bot-protected sites that block naive fetchers

Dashboard history shows request, response, timing, and cost per call

What you get

Everything this use case needs.

  • Logo and favicon URL detection
  • Color palette with inferred usage and counts
  • Font family extraction
  • Structured JSON output
  • Works on bot-protected sites
Where it fits

Built for the messy parts.

Auto-filling a brand profile during signup, enriching a CRM, or populating a company directory means pulling logos, colors, and fonts off a site by hand. Inspecting CSS, hunting for the right logo, and eyeballing hex values does not scale past a handful of domains, and it breaks the moment a customer redesigns.

webclaw reads a domain's HTML and inline CSS directly and returns a structured brand profile: hex colors ranked by usage, the font families in play, the logo URL, and the favicon. One POST per domain gives you JSON your app can store or your LLM can reason over, with no manual inspection and no design tooling.

Common questions

Frequently asked questions

What does the brand endpoint return?

A JSON object with the detected hex colors and their inferred usage (primary, text, background) plus counts, the font families used on the page, the logo URL, and the favicon URL. Send a domain, get the full profile in a single round trip.

How does webclaw detect a brand's colors and fonts?

It reads the page HTML and inline CSS directly and ranks colors by how often they appear, then infers their role. No headless browser is involved, so it stays fast on static marketing pages.

Can I run brand extraction across thousands of domains?

Yes. Call POST /v1/brand once per domain from any of the Python, TypeScript, or Go SDKs. Results are structured JSON you can write straight into a CRM, directory, or onboarding flow, and the dashboard logs timing and cost for every call.

For AI agents

Or hand it to your agent.

Add the webclaw MCP server to Claude, Cursor, or any MCP client, then paste this prompt. The agent calls the webclaw tools and hands the result back to your model — no code to write.

PROMPT FOR YOUR AGENT

Using the webclaw tools, call the brand tool on [the company domain] to pull its full brand identity in one request. Return the logo URL, favicon URL, the color palette as hex values with each color's inferred role (primary, text, background) and how often it appears, and the font families used on the site. If I give you a list of several domains instead of one, run brand on each (or use the batch tool to do them in parallel) and collect the results together. Present everything as a single structured table with one row per domain, plus a clean JSON block I can paste straight into a CRM, company directory, or signup onboarding flow. Flag any domain where the logo or primary color couldn't be detected so I know which ones need a manual check.

Ready to build? Start extracting.

Cancel anytime. Clean, structured data on every call.

View API docs