Brandfetch

Brandfetch is a comprehensive brand data platform and search engine that allows users to instantly access official brand assets like logos, colors, fonts, and…

Community: Submitted by a user or imported; check the owner before granting accessOnlineAPI key requiredGlobalFreeRead-only

What it can do

  • Brand Search: Search for brands by name using Brandfetch's search index. Use this when you do NOT already know the brand's domain — for example, when the user gives a brand name with ambiguous or unkn
  • Get Brand: Look up full brand data by domain, stock ticker, ISIN, or crypto symbol. Call this directly when you have a confident identifier — either from a prior `brand_search` result, or from your ow
  • Enrich Transaction: Identify a merchant brand from a credit card or bank statement string. Uses AI-based matching to resolve abbreviated, truncated, or cryptic transaction labels (e.g. "SQ *COFFEE SHO

What data it sees

Do you need an account

An API key from the service settings is required

Brandfetch is a comprehensive brand data platform and search engine that allows users to instantly access official brand assets like logos, colors, fonts, and company information.

Server tool list (6)

Raw names from tools/list. Only developers need these.

brand_searchSearch for brands by name using Brandfetch's search index. Use this when you do NOT already know the brand's domain — for example, when the user gives a brand name with ambiguous or unknown domain ("Madame Kim", "the raclette brand", "starbuks"), or a name that could map to multiple companies ("Delta" — airline? faucets? dental?). For raw bank or card transaction strings, use enrich_transaction instead. Returns a ranked list of matches. Each match contains: - `brandId` (str): Brandfetch's internal ID. - `domain` (str): The brand's primary domain. Pass this to `get_brand` to fetch full details. - `name` (str): Display name. - `icon` (str): CDN URL to a small representation of the brand, suitable for autocomplete-style UIs. The CDN supports asset-type substitution: replacing the `/icon/` segment in the URL path with `/logo/` returns the brand's logo at the same size; `/symbol/` returns the symbol. Dimensions can also be modified via the `/w/{width}/h/{height}/` segments. See the Logo API tool for the full URL-construction grammar. - `claimed` (bool): Whether the brand has officially claimed their listing. Claimed brands generally have higher-quality, brand-approved assets. - `verified` (bool): Whether Brandfetch has verified the listing. - `qualityScore` (float, 0–1): Completeness of the brand data. - `_score` (float): Search relevance for this query; higher = better match. Use to rank results; not comparable across different queries. Results are already sorted by relevance; the first result is usually the best match for well-known brands.
get_brandLook up full brand data by domain, stock ticker, ISIN, or crypto symbol. Call this directly when you have a confident identifier — either from a prior `brand_search` result, or from your own knowledge for well-known brands (e.g. you can call `get_brand("coca-cola.com")` directly without searching first). If the identifier is uncertain or the brand is obscure, use `brand_search` first to disambiguate. The identifier is auto-resolved in this order: domain → ticker → ISIN → crypto. Examples (all Nike): "nike.com", "NKE", "US6541061031". For crypto: "BTC", "ETH". For clean brand name lookups, prefer brand_search followed by get_brand — those are more reliable for unambiguous queries. Returns a brand object containing: - `name`, `domain`, `description`: Core identity. - `logos` (list): Typed visual assets. The `type` field distinguishes: * `logo`: The full brand mark, typically a wordmark or wordmark+symbol combination intended for headers, signatures, and contexts with horizontal space (e.g. "Coca-Cola" in script). * `symbol`: The standalone graphical mark without text, used when the brand is already identified by context (e.g. the Nike swoosh alone). * `icon`: A square, compact representation optimized for small sizes — favicons, app icons, avatars, list items. May be the symbol, an initial, or a simplified mark. * `other`: Anything that doesn't fit the above (mascots, seals, etc.). Pick by use case, not by name: a "show me the logo" request from a user usually wants `type: "logo"` for display, but `type: "icon"` for a small UI element like a list row or chat avatar. - `colors` (list): Brand colors as `{hex, type, brightness}` where `type` is `primary` | `accent` | `dark` | `light` | `brand`. - `fonts` (list): `{name, type, origin, originId}`. - `links` (list): Social and web links as `{name, url}`. - `company`: Metadata including `industries`, `employees`, `foundedYear`, `location`, and `kind` (public | private | etc.). **IMPORTANT — use all URLs exactly as returned:** Every URL in the response (logo `src` fields, image URLs, etc.) must be used verbatim. Do not modify, rewrite, or substitute any part of them — including the `?c=` query parameter. That token is a per-request credential issued by the API specifically for this response; replacing it with any other client ID (including one from context or memory) will break the URL. If your environment cannot fetch these URLs directly (sandboxed code execution, restricted networks), use `get_asset_base64` to retrieve the asset bytes through the MCP instead. Errors: - 403 / "explicit deny": The brand exists in the index but is not accessible on the current API tier or has access restrictions. Do not retry — fall back to the `icon` from `brand_search` or inform the user. - 404: Identifier not found. Try `brand_search` with a name query instead.
enrich_transactionIdentify a merchant brand from a credit card or bank statement string. Uses AI-based matching to resolve abbreviated, truncated, or cryptic transaction labels (e.g. "SQ *COFFEE SHOP 4412", "AMZN MKTP US") to a brand. Use this when the input is a raw statement line rather than a clean brand name. Returns brand data matching the shape from `get_brand` (domain, name, logos, colors, etc.) for the identified merchant, or an error if no confident match is found. Examples: - transaction_label: "STARBUCKS GENEVA", country_code: "CH" - transaction_label: "AMZN MKTP US", country_code: "US" - transaction_label: "IKEA", country_code: "CH" - transaction_label: "SQ *BLUE BOTTLE", country_code: "US"
get_brand_contextGet LLM-ready brand context for a known domain — voice, audience, positioning, style. This is the *subjective* counterpart to `get_brand`. Use the two together by what kind of data you need: - `get_brand` → objective, structured facts: logos, colors, fonts, links, industry, employee count, founding year. Use when rendering UI, building a profile card, or citing firmographics. - `get_brand_context` (this tool) → probabilistic, interpretive data: how the brand sounds, who it talks to, what it values, what it sells, how it feels visually. Use when generating content, reasoning about fit, or grounding an LLM in a brand's identity. Both take the same domain and can be called in parallel when you need both. USE THIS WHEN: writing copy in a brand's voice, generating on-brand product descriptions, classifying whether content fits a brand, summarizing a company for a pitch, picking a target audience for a campaign, or describing a brand's aesthetic in words. For obscure or ambiguous brand names, run `brand_search` first to resolve the canonical domain, then call this with the result. Returns JSON with: - `meta.domain`, `meta.canonical_name`, `meta.resolved_at`: the resolved brand and when the context was generated. If `canonical_name` differs from what the user said (e.g. user said "MS", canonical is "Microsoft"), surface that. - `identity.tagline`, `identity.mission`: the brand's own words — quote verbatim, do not paraphrase. - `identity.description`: a neutral 1–2 sentence summary, safe to paraphrase. - `identity.tags`: short category labels for routing or classification. - `positioning.value_proposition`: use as headline framing in marketing or pitch contexts. - `positioning.target_audience[]`: distinct segments, each with its own description. Pick the segment that matches the user's task — do not blend them into a generic "everyone." - `positioning.products_and_services[]`: each entry has `name`, `type` ("product" | "service"), and `description`. Use to ground specific claims and avoid hallucinating offerings the brand doesn't have. - `brand.voice.summary`: prose description of the brand's tone, suitable as a system-prompt preamble when generating copy. - `brand.voice.attributes`: positive descriptors (e.g. "warm", "witty"). - `brand.voice.avoid`: anti-patterns. Treat as hard constraints when generating copy, not soft preferences — if the list says "avoid hype", do not write hype. - `brand.style`: visual/design vibe in words (e.g. "clean, dense, utilitarian"). Useful for image-generation prompts or describing the brand's aesthetic. For actual color codes, fonts, or logo files, call `get_brand` instead. Note that this is generated content — language may occasionally be flowery or non-English. Treat it as a strong starting point, not gospel. Errors: - 503: Service temporarily unavailable. Retry once after a brief delay. If it persists, fall back to `get_brand` for the objective subset and tell the user that subjective brand context is currently unavailable. - 404: No context available for this domain. Try `brand_search` to find a canonical domain, then retry. - 403: Authentication or access tier issue. Do not retry; surface to the user.
build_logo_urlsConstruct Brandfetch Logo CDN URLs for one or more brands. No API call is made — returns ready-to-embed URL strings. **HOTLINKING POLICY — read before using these URLs:** URLs returned by this tool are subject to Brandfetch's hotlinking policy. They are intended for direct browser rendering only (e.g. `<img src="...">` in an HTML page). Programmatic fetching or downloading of these assets — such as HTTP GET requests from a server or script using only the clientId embedded in the URL — will be blocked and return an error. If you need to actually download or process an asset (save to disk, read pixel data, attach to an email, etc.), use `get_brand` instead. The CDN URLs embedded in `get_brand` responses carry per-request credentials that allow programmatic access. Use this tool when you want to: - Embed brand logos directly in a web page or UI component - Provide a displayable image URL to the user - Understand the URL grammar to tune dimensions, theme, or asset type for logos already obtained via `get_brand` Accepts multiple identifiers in a single call to avoid repeated round trips. All identifiers share the same display options (type, theme, dimensions, fallback). The returned list is in the same order as the input.
get_asset_base64Fetch a Brandfetch CDN asset (logo, icon, symbol, image) and return it as a base64 data URI for direct embedding. Use this when you need to embed a brand logo or image into a file generated in a sandboxed or network-restricted environment where cdn.brandfetch.io is unreachable — for example, when creating PPTX, DOCX, PDF, or HTML artifacts from a code-execution sandbox. This is the right tool whenever a direct download or embed of a logo, icon, or picture is needed and the CDN URL cannot be fetched by the caller. Do not use this when a normal browser can fetch the image URL directly. Base64 increases payload size and bypasses CDN caching. Accepts any `cdn.brandfetch.io` asset URL — logos, icons, symbols, banners, hero images, and other brand-record assets. Examples: - `build_logo_urls` output: .../w/400/h/400/theme/dark/type/icon?c=<token> - `get_brand` src fields: .../w/800/h/111/theme/light/logo.png?c=<token> - Brand-record images: .../idwlR7BDjL/idu7P6rdmK.jpeg?c=<token> Only the `?c=` query parameter is allowed. Width and height, if present, must each be ≤ 2048. Format: The CDN typically returns WebP for raster assets and SVG for vector assets. Callers targeting PowerPoint, DOCX, or older clients should be prepared to convert WebP → PNG if needed (e.g. via Pillow). Context window cost: each base64 asset adds roughly 50–80 KB to the conversation. For multi-asset workflows (logo + symbol, light + dark variants), decode and write each asset to disk immediately after fetching rather than accumulating data URIs in context: data = base64.b64decode(result["data_uri"].split(",", 1)[1]) Path("/tmp/logo.png").write_bytes(data) Theme convention (same as `build_logo_urls`): - theme=light → light-colored asset (white/pale), for display on dark backgrounds - theme=dark → dark-colored asset, for display on light backgrounds The parameter names the asset's own color, not the background. Returns: data_uri: Full `data:image/...;base64,...` payload ready for embedding. media_type: Normalized media type (e.g. "image/webp", "image/svg+xml"). size_bytes: Size of decoded asset bytes. source_url: URL fetched by this tool.