// comparison

BrandIcons vs Google S2 Favicons

Google's S2 favicons endpoint is a hidden URL inside Google's own infrastructure. It's free, no key needed, and works for most popular domains — but it isn't a product. There's no documentation page, no SLA, no support, and Google can change or remove it at any time.

TL;DR

S2 is fine for a side project or quick prototype. For anything you're shipping to users — emails, dashboards, customer-facing UI — pick a real product. BrandIcons gives you placeholders, fallback for missing brands, domain-locked keys, and a paid path when you outgrow the free tier.

Side-by-side

Sourced from the published docs and pricing pages of each provider. Free tiers and prices change — verify before committing.

Status

BrandIcons

Live, generally available — commercial product

Google S2 Favicons

Undocumented internal Google endpoint

No Google product page or developer documentation lists it as a public API.

URL pattern

BrandIcons

cdn.brandicons.dev/icons/{domain}/{size}?key={KEY}

Google S2 Favicons

www.google.com/s2/favicons?domain={domain}&sz={size}

Authentication

BrandIcons

Public API key, locked to your domains

Google S2 Favicons

None

Sizes

BrandIcons

small (32px), medium (64px), large (128px), ico (32×32)

Google S2 Favicons

sz hint — 16, 32, 64, 128, 256, 512. Falls back to the closest size the source actually has (often 16×16).

Output formats

BrandIcons

PNG

Google S2 Favicons

Whatever the source site serves (ICO, PNG)

Missing-logo fallback

BrandIcons

AI worker + 12 built-in placeholders + your own uploads

Google S2 Favicons

Default globe icon

SLA / support

BrandIcons

Commercial product with paid tiers

Google S2 Favicons

None — undocumented internal endpoint

Free tier

BrandIcons

500,000 requests/month (Community, attribution required)

Google S2 Favicons

Anyone can call it, but it isn't a free tier — there's no quota, no account, and no commitment from Google.

Stability over time

BrandIcons

Versioned URL surface; deprecations announced

Google S2 Favicons

Google can change or remove it without notice

Migrating from Google S2 Favicons

The URL is the API. Swap the host, add your key, you're done.

Google S2before
https://www.google.com/s2/favicons?domain=stripe.com&sz=64
BrandIconsafter
https://cdn.brandicons.dev/icons/stripe.com/medium?key=YOUR_BRANDICONS_KEY

S2's sz=64 lines up with BrandIcons /medium (64×64). The bigger difference is what you get back: S2 may return Google's default globe for brands it doesn't have; BrandIcons returns an AI-picked logo or a placeholder you configure.

Which one to pick

No single API wins for every team. Here's an honest read.

Pick BrandIcons if

  • You're shipping favicons to real users and can't have a default globe icon appear for a brand the API doesn't know.
  • You need an actual SLA and support — or at least a product with a published roadmap, not an internal Google URL.
  • You want built-in loading and not-found placeholders instead of writing your own.
  • You want domain-locked keys to prevent anyone else from using your image URLs.

Stick with Google S2 Favicons if

  • Personal side projects, prototypes, internal tools — anywhere downtime, breaking changes, or a generic fallback icon are fine.
  • You're displaying favicons for an obviously-Google-aware use case (browser extension, link previews) where users won't mind.
  • You don't need any kind of guarantee about uptime, output format, or coverage.

Common questions

Is Google S2 favicons actually an API?
Not in the product sense. There's no Google developer documentation, no published SLA, no support channel. It's an internal endpoint that Google's own products use and that the broader web has discovered. Calling it works today; that's the only commitment.
Why pay for BrandIcons when S2 is free?
Two reasons. First, fallbacks: S2 returns Google's default globe when it doesn't have a logo. BrandIcons returns an AI-picked icon or a placeholder you control. Second, predictability: S2 can break or change at any time; BrandIcons is versioned and has a paid path when you scale.
Can I keep using S2 and just swap to BrandIcons when something breaks?
You can — both are image URLs. But if S2 changes silently, your users see broken icons until you notice. If reliability matters, switch before something breaks, not after.

// 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.