favi

Company logos,
by domain.

img.favi.sh/stripe.com
WebP, about 1 KB, cached 30 days at the edge.

One request, one image. No SDK, no attribution badge on any plan, and the brand data other logo APIs meter separately comes on the same key.

500,000 requests a month free. No card, no badge, no trial clock.

Every mark is a live request to the API. Hover or tap one to see its URL.

One URL. That is the integration.

Put the domain in the path and the URL in an <img> tag. If we have the logo, you get it. If we don't, you get a generated lettermark right away and we go fetch the real one — so the first person to ask sees something sensible, and the second sees the logo.

Every mark comes from the company's own website, normalized to one image per domain and served as WebP at about a kilobyte. Subdomains inherit their parent's mark. Dark backgrounds get a variant that survives them.

<img src="https://img.favi.sh/stripe.com?key=pk_your_key"     width="32" height="32" alt="" />
https://img.favi.sh/github.com?key=pk_your_key&theme=darkhttps://img.favi.sh/github.com?key=pk_your_key&format=avifhttps://img.favi.sh/app.stripe.com?key=pk_your_key

Every response says what it is in an x-favi-result header, and a request we cannot serve still returns an image — a rejected key, a miss, an account over quota — so a mistake on your side never shows your users a broken image. The whole reference is one page.

Brand data, on the same key.

Name, description, color palette, a blurhash for the placeholder, social links and every logo URL, as JSON. Other providers fund their free logo tier by charging for this per call. Here it counts as one ordinary request, on every plan.

The palettes on the right are read from the live endpoint as you look at them.

  • stripe.com
    stripe.com
  • shopify.com
    shopify.com
  • spotify.com
    spotify.com
  • figma.com
    figma.com
GET https://img.favi.sh/brand/stripe.com?key=pk_your_key { "name": "Stripe", "brandColor": "#533afd",  "colors": [{ "hex": "#533afd", "r": 83, "g": 58, "b": 253,               "share": 0.767 }],  "blurhash": "LWG[ndt908WIt9V_WDt508WD~it4",  "description": "Stripe is a financial services platform …",  "socials": { "github": "https://github.com/stripe", … },  "logos": { "webp": "…", "png": "…", "jpg": "…" } }

Or by ticker, or by name.

A stock symbol resolves to the listing's logo across 32 exchanges, with every image parameter carried along. A company name does the same through search, which also answers as JSON for an autocomplete. Same key, same quota.

An unknown symbol is never guessed into a domain. It returns a lettermark of the symbol, or a 404 if you ask for one.

  • AAPL logo
    AAPL
    Nasdaq
  • SHOP.TO logo
    SHOP.TO
    Toronto
  • 7203.T logo
    7203.T
    Tokyo
  • 0700.HK logo
    0700.HK
    Hong Kong
  • TCS.NS logo
    TCS.NS
    Mumbai
  • BHP.AX logo
    BHP.AX
    Sydney
https://img.favi.sh/ticker/AAPL?key=pk_your_keyhttps://img.favi.sh/name/Stripe?key=pk_your_keyhttps://img.favi.sh/search?q=stri&key=pk_your_key

Switching is a hostname.

The domain stays in the path, so a move from logo.dev, Brandfetch or the retired Clearbit endpoint is a find-and-replace. logo.dev's parameters are accepted under the same names.

Sign in, paste the domains you already show, and we crawl them before you cut over so nobody sees a placeholder.

- https://img.logo.dev/stripe.com?token=YOUR_TOKEN- https://cdn.brandfetch.io/stripe.com?c=YOUR_CLIENT_ID- https://logo.clearbit.com/stripe.com+ https://img.favi.sh/stripe.com?key=pk_your_key

Two plans, one API.

Nothing is held back from Free to sell it later. Brand data, every lookup and unlimited keys are on both. Going over the limit degrades to generated fallback marks, never an error — a broken image in your UI is not a pricing lever.

Availability is measured every minute from outside our network and published on the status page, including the months we miss. What we commit to. Need more than Pro, or terms on your own paper? Email us.

Free
$0
  • 500,000 requests a month
  • Brand data and every lookup included
  • Unlimited keys, per-key domain allowlists
  • No attribution badge, ever
Get a free key
Pro
$29/month
  • 2,000,000 requests a month
  • Everything in Free
  • 99.9% availability target, refund if we miss it
  • Support within one business day
Start on Pro