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.
The request
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.appBrandfetch Brand API{"name": "Linear","domain": "linear.app","claimed": false,1Linear did not claim its Brandfetch profile."description": "Linear helps streamline software projects, …","logos": [{"theme": "light", "type": "logo","formats": [{ "format": "svg", "width": 400, "height": 100 }, …]2SVG, PNG and WebP for each logo and symbol.}, …],"colors": [{ "hex": "#222326", "type": "dark" }, { "hex": "#F4F5F8", … }],3Linear's official pair."fonts": [{ "name": "Linear", "type": "title", "license": null }, …],4A font named "Linear". Others found Inter."qualityScore": 0.9097671793648717,"company": { "employees": 51, "foundedYear": 2019, … },"screenshot": { "capturedAt": "2026-09-25T14:20:50.000Z" }5The 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 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.
- A date for the data is not in it. Only the screenshot has a date.
- Font files and font licenses are not in it.
licensewas 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 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.
Last updated 11 November 2026