The Brand Object

Firecrawl branding format

The request and response of Firecrawl's branding format for linear.app: colors, fonts, sizes, components, an inline logo, personality and confidence.

Request
POST https://api.firecrawl.dev/v2/scrape with formats: ["branding"]
Context
Observed: read from the public website of the company
Auth
Send an API key on every request as Authorization: Bearer fc-YOUR-API-KEY. source, read 11 November 2026
Combine formats
The branding format can be combined with other formats such as markdown and screenshot in the same request. source, read 11 November 2026
Plans
As of 11 November 2026, Firecrawl has a free plan that needs no card, and its cheapest paid plan, Hobby, is $19 a month billed monthly or $16 a month billed annually. source, read 11 November 2026
Over MCP
The MCP tool for reading one page is firecrawl_scrape. source, read 11 November 2026
Sample
linear.app, requested 11 November 2026

Firecrawl is a scraping API, and branding is one of the formats that a scrape can return. One POST with a page address returns how that page looks. The response has color roles, fonts and sizes, spacing, and button and input styles. It also has the logo and images, three words of personality, and confidence scores. It reads one page, not the company.

The request

curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://linear.app", "formats": ["branding"]}'

You can combine the branding format with other formats, for example markdown or screenshot, in the same request. The Firecrawl OpenAPI spec writes each format as an object ({"type": "branding"}). The Firecrawl examples send the string. The scrape endpoint also works without an API key, at limits that Firecrawl does not publish.

The response

We ran this request in the Firecrawl playground, which shows the branding object alone. The API returns the object at data.branding.

POST /v2/scrapeFirecrawl branding format
{
"colorScheme": "dark",
"colors": {
"primary": "#E4F222",1In no other response for Linear.
"background": "#08090A",
"textPrimary": "#8A8F98"
},
"fonts": [{ "family": "Inter", "role": "body" }, …],
"typography": { "fontSizes": { "h1": "64px", … } },2Context.dev read the same h1 as 72px.
"spacing": { "baseUnit": 4, "borderRadius": "8px" },
"logo": "data:image/svg+xml;utf8,%3Csvg …",3Inline SVG, white. Returned twice.
"personality": { "tone": "minimalist", "energy": "low", … },4The only field about voice.
"confidence": { "overall": 0.9216666666666666, … }5Not in the documented fields.
}

The full branding object is in /data.json under responses.firecrawl-branding.

What is not in it?

  • A description, positioning and rules are not in it. personality gives three single words.
  • A date is not in it. By default, Firecrawl serves a cached copy up to 2 days old. To read the page again, set maxAge to 0.
  • Three fields that the docs list were not in the response for Linear: icons, animations and layout.

Empty and failed responses

Status What it means
400 The body is bad or the URL is not valid. Firecrawl refuses social profile URLs with branding
401 The key is missing, malformed or revoked
402 No credits are left. The free plan has no pay-as-you-go
408 The page took too long to load. Retry with backoff
429 The per-minute limit or the concurrent-browser limit was reached. Wait for Retry-After
500, 502, 503 The server failed. Retry with backoff

Firecrawl does not charge for a scrape that returns no document. A page that loads with an error status, for example a 404 page, comes back as a document. Firecrawl charges for it as a scrape.

Plans

As of 11 November 2026, Firecrawl has a free plan that needs no card, with a limit of 10 scrapes a minute. Its cheapest paid plan, Hobby, is $19 a month, or $16 billed annually. Firecrawl's pricing page shows what each plan includes. Over the Model Context Protocol (MCP), firecrawl_scrape on mcp.firecrawl.dev reads a page. Firecrawl does not document how to pass the branding format through it.

Last updated 11 November 2026