// favicon api

Favicon API
for any domain

One URL, any domain, a clean icon back. The favicon API serves cached brand icons from 200+ edge locations — no scraping, no missing icons.

favicon-api.sh

URL pattern

https://cdn.brandicons.dev/icons/{domain}/{size}
?key={your_api_key}

Example

cdn.brandicons.dev/icons/stripe.com/medium?key=...

Returns

PNG · cached at the edge · ~50ms p50

Why use a favicon API?

Serving brand icons sounds simple. Doing it reliably for thousands of domains is not. Here's what the favicon API solves.

/favicon.ico is unreliable

Many sites return 404, redirect to HTML, or serve a 1x1 transparent pixel. You ship broken icon slots to users.

Google S2 is not a product

An undocumented Google endpoint with no SLA, no support, and no fallback when a site has no favicon. Fine for a side project, risky to build on.

Clearbit shut it down

Clearbit's free logo API — the default for years — was retired. Teams that built on it need a drop-in replacement.

Scraping breaks at scale

Rate limits, CORS, dead manifests, missing touch icons. A real favicon API hides all that behind one URL.

What you get with the favicon API

Speed, reliability, and a clean way to serve domain icons in any product or page.

Sub-50ms p50

Served from CloudFront edges in 200+ cities. First request finds it. Every request after hits cache.

Smart discovery

We read web manifests, touch icons and HTML link tags. If the site has no icon, AI picks one that fits.

Domain-locked public keys

Keys are safe to use in client code. Lock each key to your domains so no one else can reuse it.

Three sizes, one URL

Append /small, /medium, or /large. Same domain, same key, picked at request time.

Built-in placeholders

Twelve loading and not-found placeholders are bundled. Use one of ours or upload your own.

Free tier, no card

500,000 requests a month on the Community plan. Sign up and ship your first icon in a minute.

Drop it in anywhere

One URL is the whole API. Use it from an <img>, a CSS background, a React component, or a script.

<img
  src="https://cdn.brandicons.dev/icons/stripe.com/medium?key=YOUR_API_KEY"
  alt="Stripe"
  width="48" height="48"
/>

Favicon API FAQ

The questions developers ask before wiring it in.

Is the favicon API free?
Yes. The Community plan is free forever and includes 500,000 requests a month, two API keys, all sizes and placeholders, and the global CDN. No card needed. Paid plans start at $9/month if you outgrow it or want to remove attribution.
What favicon sizes can I get?
/small (32×32), /medium (64×64), /large (128×128), and /ico (32×32 ICO). All four are pre-rendered and edge-cached, so response time is the same regardless of which you pick.
Does it work without CORS issues?
Yes. The API serves the icon as a plain PNG with permissive CORS headers, so you can use it from an <img>, CSS background, canvas, or fetch in any browser without setup.
Are there rate limits?
The Community plan allows 500,000 requests a month. Higher plans raise the monthly cap. There are no per-second throttles — bursts are absorbed by the CDN.
Does it work for domains without a live website?
Yes. When a site has no favicon or is offline, our discovery layer falls back to brand assets and AI-picked icons. You always get back an image, never a 404.
What format does the favicon API return?
PNG — the most compatible format for emails, dashboards, and HTML. Transparency is preserved.
Is the API key safe in client-side code?
Yes — that's the design. Each key is locked to the domains you list, so even if someone copies it from your HTML, it won't work anywhere else. No backend proxy needed.
See all FAQs →

// ready to ship?

Ship Icons Today

Get your API key in 30 seconds. Make your first request in 60 seconds. The Community plan ships with 500,000 free requests a month.