> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brandfetch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Follow along with updates across Brandfetch’s API.

<Update label="September 2026">
  ## **Bigger Logo API allowances on every plan**

  Every plan's monthly Logo API volume just went up, at the same price:

  | Plan        | Before              | Now                       |
  | ----------- | ------------------- | ------------------------- |
  | Free        | 500,000 requests/mo | **1,000,000 requests/mo** |
  | Growth      | 1M requests/mo      | **5M requests/mo**        |
  | Growth Plus | 2M requests/mo      | **10M requests/mo**       |
  | Growth Pro  | 3M requests/mo      | **15M requests/mo**       |
  | Growth Max  | 5M requests/mo      | **20M requests/mo**       |

  The new allowances are already live for every account — existing and new — with nothing to change on your side. Usage warnings and the request allowance introduced last month track the new volumes automatically, so if you were nearing your old limit you now have room to grow instead of a reason to worry.

  Brand Search API allowances are unchanged.

  See [rate limits](/logo-api/overview#rate-limits) and the [pricing page](https://brandfetch.com/developers/pricing).
</Update>

<Update label="August 2026">
  ## **Zero data retention**

  Some customers — banks and other regulated businesses among them — must be able to show that their vendors keep no record of what their systems look up. For them, we can now enable zero data retention on their organization: queried domains and brand identifiers, IP addresses, user agents, referers, and query parameters stay out of every retained request record, while the usage records that billing and quota enforcement need survive. In your Usage History, identifying fields on redacted rows are empty or show the placeholder `redacted.invalid`.

  Zero data retention is an enterprise feature — [contact sales](https://brandfetch.com/developers/contact/sales) to have it enabled. See [zero data retention](/support/zero-data-retention) for exactly what is excluded, what is retained, and which APIs it covers.

  ## **Webhooks on every paid plan**

  Webhooks are no longer Enterprise-only. Any paid plan can now register webhook endpoints and subscribe to brands, with no contract and no sales call. Alongside opening them up, we've made them easier to run:

  * **Subscribe by domain.** `addWebhookSubscriptions` accepts a `domains` argument, so you no longer need to look a brand up just to get its URN. Subdomains resolve to their registrable domain, so subscribing to `blog.example.com` watches `example.com`, and a single call can name up to 1,000 brands.
  * **Edit and pause.** `updateWebhook` now applies your changes instead of only validating them, so you can move a webhook to a new endpoint URL, change the header we send with it, adjust which events it listens for, or rename it. Set `enabled` to `false` to stop deliveries while the endpoint and all of its subscriptions stay in place, and set it back to `true` to resume.
  * **Retries that span a week.** A failed delivery is now retried up to 15 times on an exponential backoff covering roughly a week, so an endpoint that's down over a weekend catches up instead of missing events. We email your organization's contacts when we give up on an event, and if an endpoint goes 14 days without accepting a single delivery we switch the webhook off and let you know.
  * **Filterable delivery history.** `Webhook.deliveries` takes a `filter` with `from` and `to` bounds, and cursor paging now works properly: every edge carries a resumable cursor and `hasNextPage` is accurate. Note that `first` is now enforced, defaulting to 100 and capped at 100, so a query that used to read your entire retained history in one call needs to follow the cursor.

  Pricing is one API credit per brand subscription when you create it, and one credit per month for every subscription you still hold. Registering an endpoint and receiving deliveries are free, however many events your brands generate, and subscriptions to `brandfetch.com` are free too, so you can wire up an endpoint and test it end to end without spending anything.

  Get started in the [webhooks documentation](/delivery-methods/webhooks/overview).

  ## **Brand Search API improvements**

  Results now rank by how closely they match what you typed. Popularity and our human verification still count, but only on top of relevance, so a well-known brand no longer outranks an exact match on your query.

  * A brand's other domains and its stock ticker now find it, so `google.fr` returns Google. Tickers are matched exactly, so a two-letter ticker can't be hijacked by an unrelated brand starting with the same letters.
  * Punctuation no longer gets in the way: `sainsburys` finds Sainsbury's, and `bosch home` finds Bosch-Home.
  * A single brand's many country domains no longer crowd out everything else. Each brand takes one slot, plus a second for a country site that's verified or claimed on Brandfetch, or for the runner-up when a brand has no generic domain. A query like `google` or `ikea` returns a full page of suggestions again.
  * Common prefixes no longer drop brands, so searching `brand` returns brandfetch.com. Short one and two character queries lead with the brands you'd expect, and two identical requests come back in the same order, so autocomplete suggestions stay stable.

  Across a benchmark of around 2,700 brand-name queries, the right brand now leads the results about a third more often, and queries that used to come back empty dropped by more than 90%.

  See the [Brand Search API documentation](/brand-search-api/overview).

  ## **Clearer Logo API errors**

  When the Logo CDN refuses a request, it now tells you why. Every refusal carries an `x-bf-error` header naming the exact reason, so you can read it in your browser's network panel even when the URL lives inside an `<img>` tag and no response body ever reaches the page. `403` responses also return a JSON body with a plain-language message and a link to the docs.

  Previously an invalid client ID, a disabled client ID, and an unavailable region all came back as the same bare `403`. The most common one, a mistyped client ID, now says so explicitly and tells you which characters to check. Redirects to our usage guidelines and rate-limited responses carry a code too, so you can tell a hotlink block from a missing `User-Agent`.

  See [Errors](/logo-api/overview#errors) for the full list of codes.

  ## **Logo CDN request allowance is now enforced**

  Traffic that runs far beyond your plan's Logo CDN volume is now refused with an HTTP `429` and `x-bf-error: quota_exceeded`, and we email your billing contacts when it happens. Traffic below that threshold is unaffected, and you get heads-up emails at 80% and 100% of your allowance long before it matters.

  A block lifts on its own when your next billing period starts, and raising your allowance clears it within seconds, so an upgrade takes effect immediately instead of leaving you with broken images.

  See [rate limits](/logo-api/overview#rate-limits).

  ## **Transaction API improvements**

  The Transaction API resolves more raw descriptors to the right merchant, and more of the merchants it returns are correct. It has also stopped guessing: when a descriptor is too ambiguous to identify a merchant with confidence, the request comes back unresolved rather than returning a merchant we aren't sure about. Expect slightly more unresolved responses for genuinely ambiguous descriptors, and fewer cases where the wrong brand reaches your customer.

  Responses are faster and more consistent, and you can now tell a temporary failure from a descriptor we can't resolve. A `503` means we were briefly unable to process the request, so retry it. A `400` with `Failed to enrich transaction` means we couldn't confidently identify a merchant for that descriptor, so a retry won't change the answer and you should fall back to showing the raw descriptor. Previously both came back as `400` with no way to tell them apart, and a `503` never costs you a credit.

  Existing integrations pick up the improvements automatically. The request and response formats are unchanged.

  See the [Transaction API documentation](/transaction-api/overview).

  ## **Usage History in the developer dashboard**

  The [developer dashboard](https://developers.brandfetch.com) has a new Usage History screen showing your organization's individual requests, newest first, over the last 24 hours, 7 days, or 30 days. One tab covers your API traffic and the other covers Logo CDN traffic, and you can filter either by credential or by status class, so you can find failing logo requests without scanning everything by eye.

  API rows show the product, method, path, and status, the key that made the call, and the caller's IP and user agent. Logo CDN rows show the asset requested, whether it was served from cache, the response size, and the viewer's country. Revoked credentials still appear, so traffic from a key you rotated doesn't turn into unattributed usage.

  ## **Usage and credits you can trust**

  Requests we couldn't answer no longer cost you anything. A Brand API request counts when it returns a brand, or when it definitively reports that no brand exists for an identifier. A malformed request, a rejected key, or a failure on our side does not, so an incident on our end can no longer eat into your usage. Logo CDN usage now counts only requests that were validly signed and actually served.

  Every credit figure in the dashboard now reflects what your organization can actually spend: your recurring plan allowance, any paid overage, and any one-time credits you hold, rather than the recurring allowance alone. If you're on the free plan you'll no longer see an overage warning or an estimated overage charge for usage that is never billed, and the Brand API, Brand Context API, and Transaction API cards on Plans & Billing each show a real position. Organizations on unlimited plans are shown as unlimited, and any overage estimate respects the spend limit you've set.

  Your reported usage may read slightly lower than before as a result.

  ## **Ambiguous tickers and country domains now resolve**

  Identifiers like `BHP.AX` are genuinely ambiguous, because most two-letter exchange suffixes are also country domain endings, so a ticker can look exactly like a website and vice versa. Brand API now tries the other reading when the first one comes back empty, and an explicit `/v2/brands/ticker/{ticker}` request is always treated as a ticker. Exchange-suffixed tickers, and country domains such as `interia.pl`, that previously returned a permanent `404` now resolve.

  For ambiguous identifiers we still recommend the [explicit type routes](/brand-api/overview).
</Update>

<Update label="July 2026">
  ## **No-code integrations: Zapier, Make & n8n**

  Brandfetch is now available on [Zapier](https://zapier.com/apps/brandfetch/integrations), [Make](https://apps.make.com/brandfetch), and [n8n](https://n8n.io/integrations/brandfetch/). Add Brandfetch as a step in any workflow to look up a brand by domain, stock/ETF ticker, crypto symbol, or ISIN, then map its logos, colors, fonts, and company details straight into the tools you already use.

  Paste in your API key once and every automation on your account can reuse it: auto-enrich new CRM leads in Airtable or HubSpot, post lead alerts to Slack with the company's logo inline, or generate branded decks and outreach on the fly. Each integration is configured with clicks and takes a few minutes to set up.

  Get started in the [No-code integrations documentation](/integrations/overview).

  ## **Viewer API**

  The new [Viewer API](/reference/viewer-api) (`GET /v2/viewer`) tells you who a credential belongs to: the key's name and id, the organization it's attached to, and its credit usage and quota for the current period. Use it to verify an API key during integration setup, on a health check, or to show your users which Brandfetch account they're connected as.

  Calling it is free. It never consumes credits, it keeps validating even when your quota is exhausted, and it never returns credential material.

  ## **Faster Brand Context API**

  Brand Context API is faster and a little sharper. Domains resolve around 25% quicker, and the profiles we return score higher for accuracy and usefulness in our own evaluations. Lookups are also more forgiving: when we can't finish reading the rest of a brand's site inside our time budget, you now get a brand context built from what we did read instead of an error.

  The response shape is unchanged, so your existing integration picks all of this up with no work on your end.

  ## **SVG logos now report width and height**

  Logo formats delivered as SVG now report their intrinsic `width` and `height` instead of `null`, so you can size, scale, or lay out a logo without rendering it first. The values come from the SVG's own dimensions or its viewBox, rounded to whole pixels, and stay `null` when the file declares nothing usable. Newly crawled and re-crawled brands carry them, and existing brands fill in over time.

  See the [API Reference](/reference/brand-api).

  ## **MCP server updates**

  * **Listed and open source.** The Brandfetch MCP server is now in the official [Model Context Protocol registry](https://registry.modelcontextprotocol.io), so you can find and add it from the places you already install MCP servers. Its source is published at [github.com/Brandfetch/brandfetch-mcp-server](https://github.com/Brandfetch/brandfetch-mcp-server) under the MIT license.
  * **Brand assets as resources.** `get_brand` now returns logos, icons, and symbols as MCP resource links, so your assistant can read the image bytes on demand instead of carrying them through the conversation. This is the reliable route for sandboxed or network-restricted environments.
  * **Choose your credentials.** When you connect a client and sign in, the consent screen now lets you pick which API key and client ID the session should use, instead of always taking the most recently used one. The Keys and MCP section of the dashboard offers the same choice when you generate an MCP token.
  * **Send feedback from your assistant.** A new `send_feedback` tool lets you report a bug, a data-quality issue, or a feature request without leaving the conversation.

  See the [MCP documentation](/mcp/overview).

  ## **Usage warning emails**

  We now warn you before your Logo CDN allowance runs out. Your billing contacts get an email at 80% and again at 100% of your monthly Logo CDN request volume, at most once per billing period. Free plans get them too.

  Credit and overage warnings follow the same rule. Each warning in the sequence now reaches you at most once per billing period, instead of arriving again every day you keep making requests past your allowance.
</Update>

<Update label="June 2026">
  ## **Brand Context API updates**

  Four additions since the launch in May:

  * **Markdown output.** Send `Accept: text/markdown` and you get the full brand profile, covering identity, positioning, voice, and visual style, as a Markdown document you can drop straight into an LLM prompt. `application/json` stays the default, so existing clients are unaffected.
  * **Skip crawling.** Add `cachedOnly=true` to get an answer instantly, without triggering a live crawl. A cached context comes straight back, and if nothing is cached you get a `204 No Content` rather than waiting several seconds. Useful when you're populating an interactive UI and can't block on a slow request.
  * **Better grounded.** Brand contexts are now built entirely from what a brand publishes on its own site, so everything you get back traces to the brand's own content. Value propositions read as finished brand copy, product lists stick to real offerings, and voice descriptions no longer pick up cookie-banner or navigation text.
  * **Unsuccessful requests are free.** Only successful lookups are metered, and requests for `brandfetch.com` are always free, so you can build, test, and retry hard-to-reach domains without spending quota on responses you can't use.

  See the [Brand Context API documentation](/brand-context-api/overview).

  ## **Sign in to the MCP server with your Brandfetch account**

  Connecting the Brandfetch MCP server now uses OAuth. Your client opens a browser window, you sign in to Brandfetch and approve the connection, and the client gets its own token, with no copying keys into config files. The approval screen names the client that's asking.

  If your client doesn't support OAuth, or you're running somewhere non-interactive like CI, generate an MCP token in the Keys and MCP section of the [developer dashboard](https://developers.brandfetch.com/dashboard/keys) and send it as a bearer token.

  Get started in the [MCP documentation](/mcp/overview).

  ## **The Logo CDN always returns an image**

  A logo URL the Logo CDN can't make sense of now returns an image instead of an error. A malformed domain or identifier serves your configured fallback rather than an HTTP `400` with a JSON error body, so a bad URL in an `<img>` tag degrades to a placeholder instead of a broken image. This also fixes a set of malformed logo URLs, such as an unusable width or height, that previously failed outright and returned nothing.

  You still get a real HTTP `404` whenever you ask for one with `fallback/404`.

  See [Logo API parameters](/logo-api/parameters).

  ## **Plan changes now update every allowance**

  When your plan changes, all of your allowances change with it. Your Logo CDN and Autocomplete request volumes are now provisioned from the plan you're on as soon as it takes effect, so an upgrade raises them immediately instead of leaving you on your previous volume.

  ## **Organization and account management**

  You can now create an additional organization from the dashboard and delete one you no longer need, alongside a new option to permanently delete your account. Both live in a dedicated Danger zone behind a confirmation.

  Deleting an organization permanently removes everything attached to it: API keys, client IDs, webhooks, members, invitations, and billing records. Deletion is blocked while an organization is on a paid plan or still has other members, and we tell you why before anything changes. Leaving an organization while you still belong to others now switches you to the next one instead of signing you out.

  If you're on a custom or enterprise plan, the dashboard now shows **View billing** instead of pointing you at sales. It opens a portal limited to your invoice history, so you can pull past invoices yourself with no risk of changing the plan your agreement is built on.
</Update>

<Update label="May 2026">
  ## **Brand Context API**

  The new [Brand Context API](/brand-context-api/overview) returns a structured, narrative-rich brand profile for a domain, covering identity, positioning, voice, and visual style. It's designed for grounding LLMs, generating on-brand content, and powering personalized experiences.

  ## **MCP Server**

  The Brandfetch MCP server is now available. It lets AI assistants (Claude, Cursor, Windsurf, and others) access brand data directly: searching brands, retrieving logos and assets, and firmographics data, all without any code on your end.

  Get started in the [MCP Server documentation](/mcp/overview).

  ## **Keys & MCP in the dashboard**

  The "Your keys" section of the [developer dashboard](https://developers.brandfetch.com/dashboard/keys) is now "Keys & MCP". It shows a ready to use MCP server URL for your organization with your API key and client ID already filled in, so you can copy it straight into Claude, Cursor, or another MCP client instead of assembling it yourself.

  See the [MCP documentation](/mcp/overview).

  ## **Curated brands keep their data**

  Brands that have been claimed by their owner, or verified by our team, are no longer refreshed by our automatic re-crawls. The logos, colors, and company details on a curated brand now stay as they were curated, instead of being replaced by whatever the next crawl of the site finds.

  If you maintain a brand on Brandfetch, your corrections stick. Nothing changes in how you query a brand.

  ## **llms.txt for the developer site**

  There is now a single plain text summary of Brandfetch for machines at [brandfetch.com/llms.txt](https://brandfetch.com/llms.txt). It covers what each API returns, which credential it uses, the identifier types it accepts, free and paid limits, and links to every developer page. Point an AI assistant at it when you want it to work with our APIs.
</Update>

<Update label="April 2026">
  ## **Brand pictures in the Brand API**

  The `images` array can now include a new kind of entry, `type: "picture"`: photography published on the brand's own site, alongside the banner and other images you already get. Use them for richer cards, previews, and generated content where a logo alone is too thin.

  Every picture carries a `pictureMetadata` object so you can choose between them without fetching the files first: the image's natural width and height, its alt text, a `sourceUrl` for the image itself, and a score and rank for how representative we think it is. A picture can arrive with an empty `formats` array, in which case `sourceUrl` is how you reach the image. Pictures are replaced whenever we re-crawl a brand, so they follow the brand's current site rather than going stale.

  See the [API Reference](/reference/brand-api).

  ## **Industries endpoint**

  A new endpoint returns just a brand's industry classifications:

  ```curl Industries theme={null}
  curl --request GET \
  --url https://api.brandfetch.io/v2/brands/domain/stripe.com/company/industries \
  --header 'Authorization: Bearer <token>'
  ```

  It works with the explicit type routes too, so `/v2/brands/ticker/NKE/company/industries` is valid. The response is a single `industries` array with the same entries you already get inside `company`, each with its id, name, slug, emoji, parent category, and score.

  It reads what we already hold: a brand we do not have comes back as a `404` rather than triggering a live lookup, which makes it a good fit for classification, routing, and screening passes over domains you have already enriched.

  ## **The free sandbox now covers every Brand API route**

  Requests for `brandfetch.com` are free on every Brand API route, not just the original one. The sandbox matched `/v2/brands/brandfetch.com` alone, so the explicit type routes introduced in December, such as `/v2/brands/domain/brandfetch.com`, quietly counted against your quota. Both forms are free now, so you can iterate on an integration without spending anything.

  ## **Explore any brand in the playground**

  The [playground](https://brandfetch.com/developers/playground) lets you look up any brand and inspect what our APIs return, with no key and no sign up. Search by domain, stock or ETF ticker, ISIN, or crypto symbol, with autocomplete on brand names, then read the result as brand visuals, meaning logos, colors, fonts and images, alongside company details.

  ## **Manage your plan yourself**

  Cancelling a plan no longer means waiting on us. After you tell us why you are leaving, the dashboard takes you to your billing portal to complete the cancellation yourself, instead of showing a message saying our team will follow up. While a cancellation is pending, the dashboard shows the date your plan lapses.

  The dashboard also surfaces where your billing stands: when your usage passes your plan's credit allowance, an alert on the dashboard and keys pages tells you that further requests are billed at the overage rate.

  ## **Billing accuracy improvements**

  Removing someone from your organization now removes their address from your billing notification list at the same time, so a former teammate stops receiving your usage and payment emails. Free plan organizations no longer receive API credit warning emails either, since a free plan cannot run into overage.

  Overage is also counted within the billing period it belongs to, so the figure behind your invoice lines up with the usage you ran in that period.

  ## **Contact support without signing in**

  The support form at [brandfetch.com/contact/support](https://brandfetch.com/contact/support) is now open to everyone, so you can reach us before you have an account, or when you cannot get into the one you have. It also has a category for legal and privacy requests, which routes them to the right team.
</Update>

<Update label="March 2026">
  ## **Sign in with a one time code**

  Signing in to the [developer dashboard](https://developers.brandfetch.com) and to brandfetch.com now uses a short code we email you, instead of a magic link. Enter your email, then type the code back into the tab you started in.

  That removes the most common failure of link based sign in, where the link opens in a different browser than the one you started in, or gets followed by a mail scanner before you ever see it.

  ## **Filter adult content with allowNsfw**

  Brand API accepts a new `allowNsfw` query parameter. Send `allowNsfw=false` and a brand we have classified as adult content comes back as a `404` instead of a brand object, so you can keep it out of your product without checking a field on every response. Leave the parameter off and behavior is unchanged.

  ```curl Filter adult content theme={null}
  curl --request GET \
  --url 'https://api.brandfetch.io/v2/brands/domain/example.com?allowNsfw=false' \
  --header 'Authorization: Bearer <token>'
  ```

  The `isNsfw` flag is also more accurate. It now reflects our adult content classification as well as a brand's industry categories, so a brand that reads as adult content without carrying an adult industry label is flagged correctly. `isNsfw` stays the broader of the two signals, so keep reading it if you also want to exclude brands flagged only by their industry.

  ## **Webhook retries carry the event data**

  A retried webhook delivery now carries the same event data as the first attempt. Previously a retry arrived with `data` set to `null`, so an endpoint that missed the first attempt received a delivery it could not act on and had to fetch the object itself. Retry timing, signing, and headers are unchanged.

  See [Delivery behaviors](/delivery-methods/webhooks/delivery-behaviors).
</Update>

<Update label="February 2026">
  ## **Unknown tickers and ISINs now resolve**

  Look up a stock ticker or an ISIN we have not indexed yet and Brand API now returns a brand instead of a `404`. We identify the listed company behind the identifier, index its brand from its own website on the spot, and attach both the ticker and the ISIN to that brand, so the same lookup is instant next time and `company.financialIdentifiers` comes back filled in with both. Expect the first request for an identifier we have never seen to take a few seconds while that happens.

  This closes the gap between our pre-indexed identifier lists and the wider listed universe: coverage for financial identifiers now works the way coverage for domains already did. Identifiers we cannot match to a company website still return a `404`, and ambiguous inputs resolve more reliably through the [explicit type routes](/brand-api/overview).

  ## **Guided quickstart in the developer dashboard**

  New accounts now land on a three step quickstart on the [dashboard](https://developers.brandfetch.com) home. Look up any brand by domain, ticker, ISIN, or crypto symbol and see what comes back, reveal your API key, then copy a snippet that already has your key and the brand you just searched in it, so your first working call takes a few clicks.

  ## **No more tiny images in brand assets**

  Images smaller than 16 pixels on either side are no longer stored as brand assets, so spacer graphics, tracking pixels, and stray icon fragments stop turning up among a brand's logos and images. This applies both the first time we index a brand and on every refresh after that, so existing brands clean up as they are re-crawled.
</Update>

<Update label="January 2026">
  ## **ETF ticker in Brand API & Logo API**

  We've added support for the top 10,000 ETFs provided by more than 300 US and European providers. Querying with an ETF ticker will return the logo of its provider.

  ```html ETF ticker theme={null}
  <img
    src="https://cdn.brandfetch.io/QQQ?c=BRANDFETCH_CLIENT_ID"
    alt="Invesco logo provided by Brandfetch"
  />
  ```
</Update>

<Update label="December 2025">
  ## **Cryptocurrency support in Brand API & Logo API**

  We've added support for the top 2000 cryptocurrency symbol (e.g., `BTC`, `ETH`) to both Brand API and Logo API. You can now query Logos using crypto symbols alongside domains, stock or ETF tickers, and ISINs.

  ```html Crypto symbol theme={null}
  <img
    src="https://cdn.brandfetch.io/BTC?c=BRANDFETCH_CLIENT_ID"
    alt="Bitcoin logo by Brandfetch"
  />
  ```

  ## **Explicit Type Routes**

  To prevent naming collisions between identifier types, we've also introduced explicit type routes with the pattern `{type}/{identifier}` where `type` can be `domain`, `ticker`, `isin`, or `crypto`. While the original routes still work with auto-detection, **we recommend using explicit type routes** for accurate results.

  **Examples:**

  <CodeGroup>
    ```curl Domain theme={null}
    curl --request GET \
    --url https://api.brandfetch.io/v2/brands/domain/nike.com \
    --header 'Authorization: Bearer <token>'
    ```

    ```curl Ticker theme={null}
    curl --request GET \
    --url https://api.brandfetch.io/v2/brands/ticker/NKE \
    --header 'Authorization: Bearer <token>'
    ```

    ```curl ISIN theme={null}
    curl --request GET \
    --url https://api.brandfetch.io/v2/brands/isin/US6541061031 \
    --header 'Authorization: Bearer <token>'
    ```

    ```curl Crypto theme={null}
    curl --request GET \
    --url https://api.brandfetch.io/v2/brands/crypto/BTC \
    --header 'Authorization: Bearer <token>'
    ```

    ```curl Auto-detection (legacy) theme={null}
    curl --request GET \
    --url https://api.brandfetch.io/v2/brands/nike.com \
    --header 'Authorization: Bearer <token>'
    ```
  </CodeGroup>

  Get started by reviewing the [Brand API documentation](/brand-api/overview) and [Logo API documentation](/logo-api/overview).
</Update>

<Update label="April 2025">
  ## **Query by ISIN & Stock ticker: Now available in Brand API & Logo API**

  We've expanded the capabilities of our Brand API and Logo API endpoints. You can now query brand data directly using financial identifiers such as ISIN (e.g., `US6541061031`) or Stock tickers (e.g., `NKE`).

  Previously, website URLs or Brand IDs were the primary ways to access brand information. With this update, simply input an ISIN or Stock ticker to easily retrieve brand details and logos, further streamlining integrations for financial and investment platforms.

  Get started by reviewing the [documentation](/brand-api/overview).
</Update>

<Update label="March 2025">
  ## **Transaction API: Turn payment transactions into merchant data**

  We've released a new endpoint called the Transaction API, enabling you to convert messy payment transactions into merchant data (e.g., logos, name, location, industry, etc.).

  The primary input for querying the Transaction API is a raw transaction descriptor (the line-item text on a bank or credit card statement). You provide this as the `transactionLabel` in the request body, along with a `countryCode` to narrow down the merchant’s locale. For example, a transaction label like `STARBUCKS 1523 OMAHA NE` with country code `US` can be resolved to `starbucks.com`.

  Get started by reading the [documentation](/transaction-api/overview).
</Update>

<Update label="January 2025">
  ## **404 Fallback for Logo API**

  We have introduced a new fallback option to the Logo API, enabling you to choose whether you want to receive a 404 response if no logo is found. This complements our existing fallback options: `transparent`, `lettermark`, and `brandfetch`.

  You can access the 404 fallback in the same way as the other fallback options by specifying `404` in the link:

  [`https://cdn.brandfetch.io/randomInvalidDomain.com/fallback/404/icon`](https://cdn.brandfetch.io/randomInvalidDomain.com/fallback/404/icon)
</Update>

<Update label="August 2024">
  ## Logo API

  Logo API is a simple CDN link that gives you access to any brand’s latest logos.

  <img src="https://cdn.brandfetch.io/brandfetch.com/h/80/w/80?c=1bfwsmEH20zzEfSNTed" alt="Logos by Brandfetch" />

  `https://cdn.brandfetch.io/brandfetch.com?c={your-client-id-here}`

  It’s customizable with powerful transformation capabilities and is meant to be directly embedded in your HTML tags so the logo always remains up-to-date.

  **Key features:**

  * **Rich taxonomy:** Access not just logo icons, but also brand symbols and main horizontal logos.
  * **Theme support:** Access dark or light logos so you can display them on any background.
  * **Customizable sizing:** Adjust the logo’s height and width to fit your needs.
  * **Smart fallbacks:** Even when a logo isn’t available, you’ll get fallbacks.
  * **Stay on-brand:** Logos automatically updates to the latest brand logo, so you’re always on-brand.

  Best of all? [It’s free without attribution](/logo-api/overview#usage-guidelines).

  Get started by trying the [query builder](https://brandfetch.com/developers/logo-api) and reading the [documentation](/logo-api/overview).
</Update>

<Update label="July 2024">
  ## Brand Quality Score

  We now score brands on quality and make the score available via the Brands API. The quality score is a float between 0-1 which indicates the quality of the data for the given brand. The score is useful for when you don't want to show lower quality brands to your users.

  Each brand now has a new `qualityScore` attribute with it's respective score:

  ```json theme={null}
  {
    "name": "Brandfetch",
    "domain": "brandfetch.com",

    "qualityScore": 0.7599741515319993,

    ...

  }
  ```

  The score is engineered to divide into thirds: Lower 3rd is poor quality, middle 3rd is OK quality, upper 3rd is high quality. Lower scores indicate that a brand is less likely to be a "real" brand. For example, where google.com will score high, my-random-blog.com will score between 0.3-0.4. The score factors in things like data-recency, whether the brand has been claimed, if it has been manually verified by our team, the brand's domain ranking on the web, as well as other factors.

  The score can be used to sort multiple brands in a list to determine which brand may be the best option to show to a user.

  The way we calculate this score may change over time such that a score for a given brand may change, but will remain aligned such that it divides quality into thirds: low, medium, high.
</Update>

<Update label="June 2024">
  ## Brand Firmographics

  We've added a few firmographic attributes to brands on the Brands API. The new attributes: number of employees, year founded, industry categorization, company kind, and geographic information about the brand's company headquarters.

  ```json theme={null}
  {
    "name": "Stripe",
    "domain": "stripe.com",
    "company": {
      "employees": 1001,
      "foundedYear": 2010,
      "industries": [
        {
          "score": 1,
          "id": "37",
          "name": "Programming and Developer Software",
          "emoji": "🖥",
          "parent": {
            "emoji": "🖥",
            "id": "28",
            "name": "Computers Electronics and Technology",
            "slug": "computers-electronics-and-technology"
          },
          "slug": "programming-and-developer-software"
        },
        {
          "score": 1,
          "id": "28",
          "name": "Computers Electronics and Technology",
          "emoji": "🖥",
          "parent": null,
          "slug": "computers-electronics-and-technology"
        }
      ],
      "kind": "PRIVATELY_HELD",
      "location": {
        "city": "South San Francisco",
        "country": "United States",
        "countryCode": "US",
        "region": "Americas",
        "state": "California",
        "subregion": "Northern America"
      },
    },

    ...
  }
  ```

  More details on the available attributes can be found in the API documentation [here](/reference/brand-api).
</Update>

<Update label="May 2024">
  ## Brand is NSFW?

  We've added a `isNsfw` convenience attribute to the root of the brand object on the Brands API response. When the value of `isNsfw` is `true`, we're indicating that we believe the brand to be, contain, or relate to adult content such as pornography (both photographic and animated) as well as adult-related like online sex shops.

  ```json theme={null}
  {
    "name": "Example",
    "domain": "adult-content.xxx",

    "isNsfw": true,

    ...

  }
  ```
</Update>

<Update label="April 2024">
  ## Brand industry classifications

  We now classify brands into one or more industry categories and make this data available through the Brands API. The industry is returned on brands' company attribute:

  ```json theme={null}
  {
    "name":"Stripe",
    "domain": "stripe.com",

    "company": {
      "industries": [
        {
          "score": 1,
          "id": "37",
          "name": "Programming and Developer Software",
          "emoji": "🖥",
          "parent": {
            "emoji": "🖥",
            "id": "28",
            "name": "Computers Electronics and Technology",
            "slug": "computers-electronics-and-technology"
          },
          "slug": "programming-and-developer-software"
        },
        {
          "score": 1,
          "id": "28",
          "name": "Computers Electronics and Technology",
          "emoji": "🖥",
          "parent": null,
          "slug": "computers-electronics-and-technology"
        }
      ],

      ...

    },

    ...

  }
  ```

  More details on the available attributes can be found in the [API Reference](/reference/brand-api).

  In the coming weeks we will release a free Taxonomy API for retrieving our industry taxonomy. In the meantime view the complete industry list [here](https://docs.google.com/spreadsheets/d/1N44nMfVtPCFM4ebTcmRlqbyxjFtDAGVuqd0mh0dcOU0/edit?usp=sharing).
</Update>

<Update label="December 2023">
  ## Refreshed Developer Dashboard

  We've rolled out an updated developer dashboard. The new dashboard better communicates your API usage and makes it easier to monitor your API requests.

  Here’s what we've added:

  * **Overage Budget Limit Control**: You can now set your own overage budget limit. Don't want to spend more than you planned? Set it up right in the dashboard.
  * **API Usage**: Keep an eye on your API usage. Simple and clear to help you track what you're using.
  * **Usage History**: See your usage over the past months.

  ## Overage billing budget hard limit controls

  In November we released overage billing for paid customers which let's customers make requests beyond their plan quotas. Via the developer dashboard, customers can now also set a spending hard limit to better control costs of overage fees. This makes it possible to go over quota, but not go being a certain dollar amount. The default monthly budget is set at \$100 USD.
</Update>

<Update label="November 2023">
  ## Pseudo-Sandbox

  All requests for the brand `brandfetch.com` are now free and will not count towards your usage quota.

  For example, if you fetch the brandfetch.com brand via `GET` `https://api.brandfetch.com/v2/brands/brandfetch.com`, your request will not count towards your quota. You can make as many requests for the brandfetch.com brand as you need while you iterate on and test your integration.

  ## "photographic" and "portrait" asset tags for logos and icons

  To give you more insight into the assets you work with, we've introduced a powerful new tagging feature. Now, assets such as Logos and Icons come with descriptive tags that provide a quick understanding of their characteristics.

  For instance, you might see the "photographic" tag associated with an asset, indicating that the image has realistic elements, which might differ from the standard vector logos typically used by brands. Similarly, the "portrait" tag suggests that the asset includes a portrait-like image, offering a personal touch often used by sole proprietors or small brands.

  These tags are designed to streamline your search and selection process, allowing you to quickly identify the type of asset you need and want to use with your customers. Check our our [API documentation](/reference/brand-api) for further details.

  ## Overage Billing

  We are thrilled to announce a frequently requested update to our subscription payment plans that will provide you with greater flexibility over your usage.

  Starting this month, we're saying goodbye to the hard limits on API requests that could disrupt your business. No more interruptions. Instead, we understand that your demand may sometimes exceed your quota, and we want to support your growth every step of the way.

  Here’s what’s changing:

  * **No more hard stops**: Once you hit your usage quota, you won't face immediate cutoffs anymore. Our system will continue to seamlessly fulfill your API requests.
  * **Transparent overage fees**: Each additional request over your quota will now be billed at a \$0.1 per request. Upgrade your billing plan at any time to take advantage of bucket discounts.
  * **End-of-month overage billing**: Any overages will be billed at the end of the month, allowing you to manage your budget without any mid-month surprises.

  To disable or limit your overage fees, log into your [developer dashboard](https://developers.brandfetch.com) and set a spending limit. Set the limit to \$0 to completely disable overage.

  Overage billing is not available on the Free plan. To start using overage, please upgrade first to one of the paid plans.
</Update>

<Update label="August 2023">
  ## longDescription property on brands

  Introducing `longDescription`: in-depth brand narratives

  We've heard your feedback! Alongside our flexible API request limits, we're excited to introduce an enhancement to our Brand API that will enrich the data you receive about each brand. While our description field provided a short blurb for brands, there was a growing need for more comprehensive descriptions, including for use with generative AI products to create content such as videos and other media.

  Here’s what’s new:

  * **`longDescription` property**: Dive deeper with `longDescription`, a new property in the Brand API's response that offers an extensive description about each brand.
  * **Richer brand stories**: These longer descriptions encapsulate the essence of a brand, giving you more context and content to engage with your audience. By weaving in the brand's history, industry standing, and product range, `longDescription` gives you the data to generate answers to question from your users and provides the context to derive further actions.
  * **Seamless integration**: The new property is available right now. You can start fetching more detailed brand narratives without any changes to your current setup. `longDescription` is already being returned in in your requests today.
</Update>

<Update label="June 2023">
  ## The Brand Search API

  We are pleased to announce that we've released the Brand Search API 🎉

  The Brand Search API is a powerful tool designed to help users find a brand based on its name. Whether you're looking to build a brand autocomplete feature or simply want to search for a specific brand, this API has you covered.

  Feel free to check out [our documentation](/brand-search-api/overview) to learn more about it!
</Update>

<Update label="April 2023">
  ## Usage & Quota Notification

  1. Every user of the Brand API will now be notified via email if their usage goes beyond 80% of the allocated limit.
  2. Users can view their quota by checking `x-api-key-quota`, and can also keep track of their usage for the current month by referring to `x-api-key-approximate-usage`.
  3. The API will return an HTTP status code 429 when the quota has been reached.
</Update>

<Update label="February 2023">
  ## Dark & Light Logos

  You can now retrieve both the dark and light versions of the logo, the symbol and the icon (see example below). 🌗

  ```JSON theme={null}
  "logos": [
      {
          "type": "logo",
          "theme": "light",
          "formats": [
              {
                  "src": "https://asset.brandfetch.io/idL0iThUh6/id9WE9j86h.svg",
                  "background": "transparent",
                  "format": "svg",
                  "size": 15555
              }
          ]
      },
      {
          "type": "logo",
          "theme": "dark",
          "formats": [
              {
                  "src": "https://asset.brandfetch.io/idL0iThUh6/idWbsK1VCy.png",
                  "background": "transparent",
                  "format": "png",
                  "height": 215,
                  "width": 800,
                  "size": 33937
              },
              {
                  "src": "https://asset.brandfetch.io/idL0iThUh6/idtCMfbWO0.svg",
                  "background": "transparent",
                  "format": "svg",
                  "height": null,
                  "width": null,
                  "size": 15567
              }
          ]
      },
      {
          "type": "symbol",
          "theme": null,
          "formats": [
              {
                  "src": "https://asset.brandfetch.io/idL0iThUh6/iddCQ52AR5.svg",
                  "background": "transparent",
                  "format": "svg",
                  "size": 2215
              }
          ]
      },
      {
          "type": "icon",
          "theme": "dark",
          "formats": [
              {
                  "src": "https://asset.brandfetch.io/idL0iThUh6/idls3LaPPQ.png",
                  "background": null,
                  "format": "png",
                  "height": 400,
                  "width": 400,
                  "size": 2565
              }
          ]
      },
      {
          "type": "other",
          "theme": null,
          "formats": [
              {
                  "src": "https://asset.brandfetch.io/idL0iThUh6/idXGq6SIu2.svg",
                  "background": "transparent",
                  "format": "svg",
                  "size": 2215
              }
          ]
      }
  ]
  ```
</Update>
