Skip to content
Docs page

Migrate

Migrate from the Clearbit Logo API

Replace logo.clearbit.com URLs with the Brand Identity API logo CDN in one line, with the size and format parameters mapped.

What happened

HubSpot shut down Clearbit's free Logo API on December 8, 2025 (their announcement). Every logo.clearbit.com URL in an app now shows a broken image. The Brand Identity API logo CDN takes the same kind of URL: a domain in the path, options in the query, no key needed for indexed brands.

The one-line change

diff
- <img src="https://logo.clearbit.com/stripe.com" alt="Stripe logo" />
+ <img src="https://brandidentityapi.com/logo/stripe.com" alt="Stripe logo" />

The default is a square icon, 128 pixels on its longest side, the closest match to what Clearbit returned. For the full wordmark add ?type=logo.

PNG unless the client asks for WebP
Clearbit always sent a PNG. Without a format parameter we send WebP to clients that list it in their Accept header (every current browser's <img>) and PNG to everything else, so server-side fetches keep working unchanged. Email templates are opened by clients we cannot see, so add ?format=png there.

Parameter mapping

ClearbitBrand Identity APINotes
?size=128?size=128The longest side in pixels, 16 to 1024. Both default to 128.
PNG by default?format=pngWebP when the client accepts it, else PNG. Add format=png for emails. Also svg and jpeg.
?greyscale=true(none)Use CSS: filter: grayscale(1).
404 for an unknown domain?fallback=404The default is a monogram tile instead. Add fallback=404 if your onerror handler expects a 404.

Things Clearbit never had: background=dark for a logo that reads on a dark page, type=logo for the wordmark and format=svg for the vector file. See the Logo API.

Find and replace

In most codebases the change is one search and replace:

bash
# Preview every file that still uses the old host.
grep -rl "logo.clearbit.com" src/

# Replace it (GNU sed; on macOS use sed -i '').
grep -rl "logo.clearbit.com" src/ | xargs sed -i 's#https://logo.clearbit.com/#https://brandidentityapi.com/logo/#g'

If you stored Clearbit URLs in a database, update them the same way, or better, store only the domain and build the URL when you render. Then the next move is one constant, and the format is one argument:

javascript
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}`;
}

Missing logos

Without a key, the CDN serves brands that are already in our index and a monogram for the rest. To have unknown domains crawled on first request, add a publishable key as ?key=. It is free, and the logo CDN never spends lookups.

Content Security Policy
If your site sets an img-src policy, replace logo.clearbit.com with brandidentityapi.com in it.

More than logos

Clearbit's logo URL gave you an image and nothing else. The Brand API returns the company's colors, fonts, social links and firmographics from the same domain, and your first 50 lookups are free. If you used Clearbit's company autocomplete as well, /v1/search is the closest match: it takes a name and returns domains with icons.

  1. Swap the host in your logo URLs.
  2. Add ?format=png where logos go into emails or PDFs.
  3. Add a publishable key if you show logos for small or new companies.
  4. Update your Content Security Policy, if you have one.