The Clearbit Logo API is gone: what to use instead
logo.clearbit.com stopped serving logos on December 8, 2025. Here is what replaces it, and how to swap every URL in your app in one pass.
If your CRM, admin panel or integrations page suddenly shows a row of broken image icons where
company logos used to be, check the src of one of them. If it starts with
https://logo.clearbit.com/, the cause is not your code.
<img src="https://logo.clearbit.com/stripe.com" alt="Stripe logo" />
That URL pattern worked for years with no key, no sign-up and no rate limit worth mentioning. It does not work any more.
What happened to the Clearbit Logo API
HubSpot bought Clearbit in 2023 and folded its enrichment products into HubSpot. The free Logo API did not make the move: HubSpot shut it down on December 8, 2025, as announced in HubSpot's developer changelog.
So every logo.clearbit.com image in every app now fails, and it will keep failing. The fix is
to point those URLs somewhere else.
What a replacement needs to do
Before picking one, list what the old URL did for you. For most apps it is this:
- One URL per domain. No lookup step, no ID to store: the domain is the key.
- No key in the common case, so the URL can sit in HTML, an email or a CSV export.
- A sensible size for a list row or an avatar.
- A predictable failure for unknown domains, so your
onerrorhandler can show a placeholder.
And it is worth asking for a few things Clearbit never did:
- SVG, for print, PDFs and retina screens.
- A variant for dark backgrounds. A black wordmark on a dark sidebar is invisible.
- Server-side use. Fetching the image from your backend, resizing it and storing it should be allowed, not a terms-of-service violation.
The options
Favicon services
Google and DuckDuckGo both serve favicons by domain:
https://www.google.com/s2/favicons?domain=stripe.com&sz=64
https://icons.duckduckgo.com/ip3/stripe.com.ico
They are free and need no key, but a favicon is not a logo. You get a small square icon, often 16 or 32 pixels at the source, with no wordmark, no SVG and no dark variant. Fine for a browser tab list; thin for anything bigger.
Logo CDNs
A logo CDN is the closest thing to what Clearbit was: a URL per domain that returns an image. Several exist, and their terms differ in ways that matter more than their URLs. Some require an attribution link on their free tier, some refuse server-side fetches and only work as a hotlink from a browser, some do not serve SVG. Read the terms with your use in mind before you pick one.
A brand API
If you want more than the picture (the brand's colors, fonts or company facts), a brand API returns a JSON record per domain with links to every logo variant. You store the record and serve the logo from wherever you like.
Swapping in Brand Identity API
We built Brand Identity API partly because of this shutdown, so the logo CDN takes the same shape of URL:
- <img src="https://logo.clearbit.com/stripe.com" alt="Stripe logo" />
+ <img src="https://brandidentityapi.com/logo/stripe.com" alt="Stripe logo" />Logo requests never cost a credit. The free plan includes 500,000 a month, Starter 3 million and Growth unlimited, with per-minute burst limits and no attribution link. Requests without a key never count, and past the allowance logos for indexed brands keep loading as they would without a key. Brands already in our index load without a key. Server-side fetching, caching and storing copies are all allowed.
The parameters map almost one to one:
| Clearbit | Brand Identity API | Notes |
|---|---|---|
?size=128 | ?size=128 | Longest side, 16 to 1024 pixels; 128 by default |
| PNG by default | ?format=png | WebP for browsers that accept it, PNG otherwise; also svg and jpeg |
?greyscale=true | none | Use CSS: filter: grayscale(1) |
| a 404 for unknown domains | ?fallback=404 | The default is a lettered tile |
The default image is a square icon, the closest match to what Clearbit returned. Add
?type=logo for the full wordmark and ?background=dark for a version that reads on a dark page.
One difference to know before you replace URLs in bulk: Clearbit sent PNG, and our default
format is WebP. Every current browser shows WebP, so an <img> in your app needs no change. Email
clients (Outlook for Windows among them) and many PDF renderers do not, so wherever a logo goes
into an email template or a generated document, add format=png:
<img src="https://brandidentityapi.com/logo/stripe.com?format=png&size=96" alt="Stripe logo" width="48" height="48" />Replace every URL in one pass
In a codebase, it is one search and replace. Preview first:
grep -rn "logo.clearbit.com" src/
Then replace (GNU sed; on macOS write sed -i ''):
grep -rl "logo.clearbit.com" src/ | xargs sed -i 's#https://logo.clearbit.com/#https://brandidentityapi.com/logo/#g'If you stored full Clearbit URLs in a database column, this is a good moment to store the domain instead and build the URL when you render. Then the next time a provider changes, you edit one function:
const LOGO_HOST = "https://brandidentityapi.com";
// format "png" for email templates and PDFs; "webp" is smaller in browsers.
export function logoUrl(domain, size = 128, format = "webp") {
return `${LOGO_HOST}/logo/${encodeURIComponent(domain)}?size=${size}&format=${format}`;
}Logos for small and new companies
Without a key, a domain we have not indexed yet gets the fallback image. To have unknown domains
crawled the first time they are requested, create a free publishable key (it starts with
lh_pk_) and add it as ?key=. Publishable keys are safe in HTML: they can load logos and
search, and they cannot spend lookups.
Check that it worked
Open the page and look at the network panel, or ask for the headers directly:
curl -sI "https://brandidentityapi.com/logo/stripe.com?size=128"You want a 200 with an image content type. A 400 names the parameter it did not like.
Where else the old URL hides
Code is the obvious place. These are the ones teams find a week later:
- Content Security Policy. If your
img-srclistslogo.clearbit.com, the new host must be added or every logo is blocked. - Emails. Templates that render customer logos keep the old URL in already-sent mail, but new
sends need the new one, with
format=png. - Exports and PDFs. Generated invoices or reports that embed logos by URL. Use
format=pnghere too. - Your database. Any column that stored the full URL rather than the domain.
If you used Clearbit's logo URL as a cheap way to get brand data into your product, the Brand API gives you the rest of the record from the same domain: brand colors with their roles, fonts and company facts. The migration guide has the details, and the comparison page has the short version.