# Brandfetch Brand API

> The request and full response of Brandfetch's Brand API for linear.app: logos by theme and format, two colors, a custom font name, errors and plans.

| Fact | Value | Source |
| --- | --- | --- |
| Request | `GET https://api.brandfetch.io/v2/brands/{identifier}` | [docs](https://docs.brandfetch.com/brand-api/overview) |
| Context | Observed: read from the public website of the company | |
| Auth | Requests authenticate with an API key sent as a Bearer token, or are paid one at a time with x402 or MPP. | [source](https://docs.brandfetch.com/reference/brand-api), 11 November 2026 |
| Charged | Brandfetch charges for 200, 304, and 404 responses. It does not charge for a crawl_queued 404 on a pay-per-request call. | [source](https://docs.brandfetch.com/agents/pay-per-request), 11 November 2026 |
| Plans | As of 11 November 2026, Brandfetch has a Free plan that needs no card, and its cheapest paid plan, Growth Starter, is $129 a month billed monthly or $99 a month billed yearly. Webhooks need a paid plan. | [source](https://brandfetch.com/developers/pricing), 11 November 2026 |
| Over MCP | get_brand_data returns the same data as get_brand without the interactive card. | [source](https://docs.brandfetch.com/mcp/overview), 11 November 2026 |

One GET request with a domain, ticker, ISIN or crypto symbol returns the files and values that a company shows in public. The response has logos and symbols for light and dark backgrounds in three formats. It also has colors, font names, banner images and company data. Brandfetch calls it "no guesses, no AI". It returns no voice, positioning or rules. These come from the [Brand Context API](https://brandcontextapi.com/responses/brandfetch-brand-context-api).

## The request

```bash
curl https://api.brandfetch.io/v2/brands/domain/linear.app \
  -H "Authorization: Bearer $BRANDFETCH_API_KEY"
```

`/v2/brands/{identifier}` guesses the kind of identifier that you sent. To avoid collisions, Brandfetch recommends the typed routes (`/domain/`, `/ticker/`, `/isin/`, `/crypto/`). With `?cachedOnly=true`, the API answers from stored data only. For a brand that is not indexed yet, the answer is a 204.

## The response

`GET /v2/brands/domain/linear.app` (Brandfetch Brand API)

```json
{
  "name": "Linear",
  "domain": "linear.app",
  "claimed": false,
  "description": "Linear helps streamline software projects, …",
  "logos": [{
    "theme": "light", "type": "logo",
    "formats": [{ "format": "svg", "width": 400, "height": 100 }, …]
  }, …],
  "colors": [{ "hex": "#222326", "type": "dark" }, { "hex": "#F4F5F8", … }],
  "fonts": [{ "name": "Linear", "type": "title", "license": null }, …],
  "qualityScore": 0.9097671793648717,
  "company": { "employees": 51, "foundedYear": 2019, … },
  "screenshot": { "capturedAt": "2026-09-25T14:20:50.000Z" }
}
```

1. `claimed`: Linear did not claim its Brandfetch profile.
2. `formats`: SVG, PNG and WebP for each logo and symbol.
3. `colors`: Linear's official pair.
4. `fonts`: A font named "Linear". Others found Inter.
5. `screenshot`: The only date in the response.

Each address on the Brandfetch content delivery network (CDN) has `?c=` with the client ID of the caller. We replaced our client ID. The full response is in [/data.json](https://brandcontextapi.com/data.json) under `responses.brandfetch-brand-api`.

## What is not in it?

- Voice, positioning and competitors are not in it. For these, see the [Brand Context API](https://brandcontextapi.com/responses/brandfetch-brand-context-api).
- A date for the data is not in it. Only the screenshot has a date.
- Font files and font licenses are not in it. `license` was null. The other endpoints did not find a font with the name "Linear".

## Empty and failed responses

| Status | What it means | Charged |
| --- | --- | --- |
| 204 | You asked for `cachedOnly`, and the brand is not indexed | No |
| 400 | Brandfetch failed to read the identifier, route or address | No |
| 401 | The Authorization header has no usable token | No |
| 403 | The key is unknown or revoked, or the plan does not include the Brand API | No |
| 404 | Brandfetch has nothing to serve. `crawl_queued` means that Brandfetch started to collect the brand | Yes, with an API key |
| 429 | The key used all of its monthly quota | No |
| 503 | A dependency did not answer | No |

Brandfetch charges for 200, 304 and 404 responses. On pay-per-request calls, Brandfetch does not charge for a `crawl_queued` 404.

## Plans

As of 11 November 2026, Brandfetch has a Free plan that needs no card. Its cheapest paid plan, Growth Starter, is $129 a month, or $99 a month billed yearly. The Brand API shares that plan with the Brand Context API. Webhooks need a paid plan. [Brandfetch's pricing page](https://brandfetch.com/developers/pricing) shows what each plan includes. Over the Model Context Protocol (MCP), the tool is `get_brand_data`, or `get_brand` for a brand card.

## Can you store the files?

The Brandfetch pricing FAQ says that you can cache Brand API responses for 30 days. The Brandfetch terms say that caching needs a written agreement and a new call at least every 30 days. You can cache the shortcut image addresses (`logo`, `symbol`, `icon`, `banner`) "for as long as you like". The same terms forbid ingesting the content into an AI model without consent. Read the terms before you pass the content to a model.

---

Source: https://brandcontextapi.com/responses/brandfetch-brand-api
Last updated: 2026-11-11
Published by The Brand Object. The Brand Object is run by Rainbrand, which makes two of the endpoints described here. Their pages follow the same rules as the others.
