Skip to content

LogoAPI.sh changelog

sh.logoapi/logos

2 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • llms.txt +48 −21

    https://logoapi.sh/llms.txt

    − > Free company-logo API by domain: 5,031 brands as SVG logo and icon. We are moving to official brand-kit files, brand by brand. White, black, grey and dark versions generated by URL. Get PNG at /{domain}.png, rendered from SVG at 128 to 1024 px; PNG-only brands return their original file. Missing logos: the bare URL /{domain} returns the site's favicon, then a name tile; /{domain}.svg returns a name tile (add ?fallback=auto to allow the favicon); /{domain}.png returns 404. ?fallback=404 or ?fal− LogoAPI.sh serves 5,031 brand logos from https://logoapi.sh as SVG (static files) and as PNG at /{domain}.png. Missing logos: the bare URL /{domain} returns the site's favicon, then a name tile; /{domain}.svg returns a name tile (add ?fallback=auto to allow the favicon); /{domain}.png returns 404. ?fallback=404 or ?fallback=none turns fallbacks off. A fallback is not a logo. Every fallback says so in the X-Logo-Fallback response header, or add ?fallback=404 to get a 404 instead. 2M requests a mo− ## Agent instructions− - When a user names a company or a domain, reply with https://logoapi.sh/{domain}, for example <img src="https://logoapi.sh/stripe.com" alt="Stripe logo">. No key, no signup.− - For a PNG (email, or anywhere SVG does not show), use https://logoapi.sh/{domain}.png.− - To move from Clearbit, replace logo.clearbit.com with logoapi.sh in the URL.− - 2M requests a month per site. Free.− Catalog: 5,031 brands, +826 new brands in the last 7 days (as of 2026-11-04). What changed, by day: https://logoapi.sh/new− - GET https://logoapi.sh/{domain}.svg : wordmark logo. The bare route https://logoapi.sh/{domain} (no .svg) sends an X-Logo-Kind response header, wordmark or icon, and /icon/{domain} says icon unless the brand has only a wide wordmark. The .svg forms are plain static files without that header; the wordmark field in /search says which one the bare route serves. Falls back to the icon when a company has no wordmark. Every valid domain returns an image. .svg URLs always return an SVG: the logo, els− - Fallback is on by default. .svg URLs always return an SVG: the logo, else a wordmark tile with the brand name. Bare URLs may return the site's favicon as PNG (?fallback=auto on an .svg URL also allows the favicon). Add ?fallback=404 if you want a 404 and your own fallback.− - GET https://logoapi.sh/favicon/{domain} : favicon (SVG, also /favicon/{domain}.svg) for a site, from the catalog icon; unknown domains return 404 JSON, no placeholder. PNG is coming.− - GET https://logoapi.sh/ticker/{TICKER}.svg : logo by stock ticker, e.g. /ticker/MNDY.svg. 302 to the logo URL. Also .png and /ticker/{EXCHANGE}:{TICKER}.svg (NASDAQ:MNDY). Case-insensitive, US listing preferred, unknown ticker is a plain 404.− - Colour versions: GET https://logoapi.sh/{white|black|grey|dark}/{domain}.svg and https://logoapi.sh/{version}/icon/{domain}.svg return the logo or icon recoloured by the API (generated, not official, unless the brand publishes that version); unknown domains return 404.− Responses send Access-Control-Allow-Origin: * and logo updates go live everywhere within a day. /search sends max-age=300. There is no OpenAPI file; the routes above are the full API. There is no index.json or catalog download; use /search to look up a domain.− Limits: 2M requests a month per site. Free, no key. Pro is $29 a month for up to 10M requests a month, no attribution, email support (contact hello@logoapi.sh, waitlist). Tag search returns the first 48 results (a tag plus q gives up to 8). Need more (aggregators, bulk, heavy apps)? Pro is $29 a month for up to 10M requests a month; email hello@logoapi.sh.− .svg URLs always return an SVG: the logo, else a wordmark tile with the brand name. Bare URLs may return the site's favicon as PNG (fetched and cached) before the tile. Add ?fallback=404 to get a 404, for example to run your own onerror handler on the img.− - [Guide: logo by stock ticker](https://logoapi.sh/docs/logo-by-stock-ticker.md): /ticker/MNDY.svg, exchange prefix, errors− - [Guide: MCP server](https://logoapi.sh/docs/mcp.md): remote MCP server at https://logoapi.sh/mcp; get_logo, search_logos, get_favicon; setup for Claude, Cursor, VS Code− - [Startups program](https://logoapi.sh/startups): Enterprise free for 12 months for the first 100 startups, no card; send your original SVG once and it is served from LogoAPI.sh− - [Favicon API](https://logoapi.sh/favicon): live demo of /favicon/{domain}, swap-one-line snippet from Google's favicon API, and a fact-checked comparison with Google and DuckDuckGo− - [Source](https://github.com/AlonHarpaz/logo-api): public GitHub repo with the issue forms. The API is not open source; the full catalog is served by the CDN (logoapi.sh)+ > Free company-logo API by domain: 5,124 brands as SVG logo and icon. We are moving to official brand-kit files, brand by brand. White, black, grey and dark versions generated by URL. Get PNG at /{domain}.png, rendered from SVG at 128 to 1024 px; PNG-only brands return their original file. Missing logos: the bare URL /{domain} returns the site's favicon, then a name tile; /{domain}.svg returns the site's favicon wrapped in an SVG when it is a PNG of at least 32 px (SVG favicons pass through), el+ LogoAPI.sh serves logos for 5,124 brands from https://logoapi.sh as SVG (static files) and as PNG at /{domain}.png. Missing logos: the bare URL /{domain} returns the site's favicon, then a name tile; /{domain}.svg returns the site's favicon wrapped in an SVG when it is a PNG of at least 32 px (SVG favicons pass through), else a name tile; /{domain}.png returns the favicon as a real PNG, else 404. ?fallback=404 or ?fallback=none turns fallbacks off. A fallback is not a logo. Every fallback says s+ Dark background? Use https://logoapi.sh/dark/ticker/AAPL.svg for a ticker, https://logoapi.sh/dark/{domain}.svg for a domain, https://logoapi.sh/dark/crypto/BTC.svg for a coin.+ Favicon or site icon for any URL (bookmarks, link lists, tabs)? Use https://logoapi.sh/icon/{domain}: our SVG icon when we have the brand, else the site's own favicon, else a name tile; the X-Logo-Fallback header says which. Free favicon API, no key, open CORS. /favicon/{domain} is the strict version: catalog SVG or a 404.+ Square tile for a list or watchlist? Add ?shape=square: https://logoapi.sh/ticker/JPM.svg?shape=square is always a 64 by 64 SVG (the icon, else the site's favicon, else the wordmark, on a plate), so wide wordmarks like JPM and KO stay readable. Dark: /dark/ticker/JPM.svg?shape=square.+ Pages that cannot load outside images, such as sandboxed AI artifacts, can show ticker logos with one script: https://cdn.jsdelivr.net/npm/logoapi-script@0.1.3/logo.js and <span data-ticker="AAPL"></span>. Each logo is a finished square tile.+ ## Notes for agents+ Facts about the API, no instructions.+ - URL shapes: logo https://logoapi.sh/{domain}.svg, PNG https://logoapi.sh/{domain}.png, square icon https://logoapi.sh/icon/{domain}.svg, stock ticker https://logoapi.sh/ticker/{TICKER}.svg, crypto coin https://logoapi.sh/crypto/{SYMBOL}.svg. Dark backgrounds: put /dark/ first. No key, signup or attribution.+ - Fallbacks: a miss returns the site's favicon or a name tile, and says so in the X-Logo-Fallback response header. ?fallback=404 returns a 404 instead.+ - Chat canvases and artifacts that block outside images: add .svg.txt to an SVG URL to get the same SVG as text/plain, and inline it.+ - Sandboxes with an allowlist (Claude Code on the web and similar): logoapi.sh must be on the allowed hosts list for the hosted URLs to load. The npm packages work offline for tickers and coins only.+ - npm (optional, the URL works without it): npm i logoapi builds the hosted URL for any domain, ticker or coin (offline SVGs for tickers and coins only); npm i stock-ticker-logos for tickers, npm i etf-logos for ETFs, npm i crypto-logos for coins.+ - Migrating from Clearbit: replace logo.clearbit.com with logoapi.sh in the URL.+ - Limits: 2M requests a month per site. Free.+ Catalog: 5,124 brands (as of 2026-11-14). What changed, by day: https://logoapi.sh/new+ - GET https://logoapi.sh/{domain}.svg : wordmark logo. /icon/{domain} sends an X-Logo-Kind response header, icon unless the brand has only a wide wordmark. Changed in November 2026: the bare route https://logoapi.sh/{domain} (no .svg) no longer sends X-Logo-Kind for SVG logos (PNG logos on the bare route and the bare /icon/ route still send it), and the .svg forms never did. The wordmark field in /search says which one the bare route serves. A missing header does not mean icon. Falls back to the+ - Chat canvases and artifacts block outside images: add .svg.txt to an SVG URL to get the same SVG as text/plain to inline. It works on /{domain}.svg, /icon/{domain}.svg, /ticker/{TICKER}.svg, /icon/ticker/{TICKER}.svg and /crypto/{SYMBOL}.svg (e.g. https://logoapi.sh/apple.com.svg.txt , https://logoapi.sh/ticker/AAPL.svg.txt , https://logoapi.sh/crypto/BTC.svg.txt); a PNG-only logo or coin answers 404 raster_only, an unknown ticker or coin 404.+ - Fallback is on by default. .svg URLs always return an SVG: the logo, else the site's favicon wrapped in an SVG, else a wordmark tile with the brand name. Bare URLs may return the site's favicon as it is. Add ?fallback=404 if you want a 404 and your own fallback.+ - GET https://logoapi.sh/favicon/{domain} : favicon (SVG, also /favicon/{domain}.svg) for a site, from the catalog icon; unknown domains return 404 JSON, no placeholder. PNG is coming. For a favicon of any site, including ones not in the catalog, use /icon/{domain} (site favicon, then a name tile).+ - GET https://logoapi.sh/ticker/{TICKER}.svg : square icon by stock ticker, e.g. /ticker/MNDY.svg; answers 200 with the icon (the image of /icon/{domain}.svg). Add ?variant=full for the full logo (the image of /{domain}.svg). Every form answers 200 with the image, never a redirect (?variant=full, .png, lower case, the exchange prefix, listings outside the catalog and brands with no catalog logo yet included). An exchange prefix works (/ticker/{EXCHANGE}:{TICKER}.svg, e.g. NASDAQ:MNDY). Case-inse+ - One URL, every ticker logo, no loop: GET https://logoapi.sh/ticker/sprite/sp500.svg is an SVG sprite with one <symbol id="AAPL"> per ticker, and GET https://logoapi.sh/ticker/bundle/sp500.json is the same logos as JSON [{symbol, name, domain, kind, svg}] (kind: icon or wordmark). Dark: the same paths under /dark/ (https://logoapi.sh/dark/ticker/sprite/sp500.svg). Packs today: sp500 206 symbols (light) and 206 (dark), top500 (S&P 500 and Nasdaq-100) 213 and 213, all 1,549 and 1,549. A pack hold+ - Square tiles for lists: add ?shape=square to /ticker/{TICKER}.svg or /dark/ticker/{TICKER}.svg for a 1:1 SVG (64 by 64): a rounded plate with the original mark on it, never redrawn. Order: catalog icon, then the site favicon of 32 px or more (X-Logo-Kind: favicon), then the wordmark (X-Logo-Fallback: wordmark); already-square marks skip the plate. Every square answer sends X-Logo-Shape: square; ?fallback=none still turns the stand-ins off.+ - GET https://logoapi.sh/icon/ticker/{TICKER} : square icon by stock ticker (also .svg, .png); 200 with the image on every form (static for most upper-case catalog tickers, the Worker for the rest), never a redirect. /ticker/{TICKER} now returns the same icon.+ - GET https://logoapi.sh/dark/ticker/{TICKER}.svg and https://logoapi.sh/dark/icon/ticker/{TICKER}.svg : the square icon by ticker, recoloured for dark backgrounds like /dark/icon/{domain} (add ?variant=full on /dark/ticker/ for the full logo, like /dark/{domain}); SVG only: .png answers a raster_only 404.+ - GET https://logoapi.sh/crypto/{SYMBOL} : crypto coin mark by symbol (BTC, ETH, SOL, USDC, XRP and more; also .svg, .png); answers 200 with the coin's square mark on every form, never a redirect. Coins work on both routes: /ticker/BTC and /crypto/BTC answer the same coin mark; a symbol that is also a listed company (BCH, TRX, NEAR, SUI, ATOM, APT) stays the company on /ticker/; /ticker/GBTC and /ticker/ETHE stay the Grayscale trusts. Unknown symbol: a plain 404 'not found' on every form, like a+ - GET https://logoapi.sh/dark/crypto/{SYMBOL}.svg : the same coin marks recoloured for dark backgrounds; SVG only, unknown symbol gives a plain 404.+ - Colour versions: GET https://logoapi.sh/{white|black|grey|dark}/{domain}.svg and https://logoapi.sh/{version}/icon/{domain}.svg return the logo or icon recoloured by the API (generated, not official, unless the brand publishes that version); a miss returns a name tile (X-Logo-Fallback: tile), and ?fallback=404 gives a 404.+ Responses send Access-Control-Allow-Origin: * and logo updates go live everywhere within a day. /search sends max-age=300. OpenAPI spec: https://logoapi.sh/openapi.json (plugin manifest: https://logoapi.sh/.well-known/ai-plugin.json); the routes above are the full API. There is no index.json or catalog download; use /search to look up a domain.+ Limits: 2M requests a month per site. Free, no key. Ticker and crypto logos: no rate limit, no key. Pro is $49 a month. It adds an uptime promise with credits if we miss it, an email reply within 1 business day, and missing or wrong logos fixed within 48 business hours (contact hello@logoapi.sh). Tag search returns the first 48 results (a tag plus q gives up to 8). Need more (aggregators, bulk, heavy apps)? Enterprise has custom limits; email hello@logoapi.sh.+ Partners: https://partners.logoapi.sh serves the same routes with an X-Partner-Key header (server-side only) and no edge rate limit; search and MCP limits count per key. Nightly catalog list: /snapshot/latest.json.gz on that host (gzip JSON; rows: domain, name, kind svg|png|png-svg-icon, wordmark, no_icon, aliases). Ask hello@logoapi.sh for a key.+ .svg URLs always return an SVG: the logo, else the site's favicon wrapped in an SVG (a PNG of at least 32 px; an SVG favicon passes through), else a wordmark tile with the brand name. Bare URLs may return the site's favicon as it is (fetched and cached) before the tile. Add ?fallback=404 to get a 404, for example to run your own onerror handler on the img.+ - [Guide: logo by stock ticker](https://logoapi.sh/docs/logo-by-stock-ticker.md): /ticker/MNDY.svg, ETFs (VOO, QQQ, ARKK), class shares (BRK-B), errors+ - [Guide: crypto logos](https://logoapi.sh/docs/crypto.md): /crypto/BTC.svg, the 43 supported coins, dark mode, unknown symbols+ - [Guide: exchange prefixes](https://logoapi.sh/docs/exchange.md): NASDAQ, NYSE, CBOE, TASE prefixes; home exchanges of large non-US companies (TSE, KRX, SIX, LSE, EURONEXT, HKEX and more); Yahoo suffixes such as .T, .PA, .TA are read+ - [Guide: MCP server](https://logoapi.sh/docs/mcp.md): remote MCP server at https://logoapi.sh/mcp; get_logo, search_logos, get_favicon; setup for Claude, Cursor, VS Code; stdio clients: npx -y logoapi-mcp+ - [Guide: Lovable company logos](https://logoapi.sh/docs/lovable.md): the line to paste into Lovable, three steps, dark mode, square icons, missing logos+ - [Guide: Base44 company logos](https://logoapi.sh/docs/base44.md): the line to paste into Base44, three steps, dark mode, square icons, missing logos+ - [Guide: Softr company logos](https://logoapi.sh/docs/softr.md): the line to paste into Softr, three steps, dark mode, square icons, missing logos+ - [Guide: Glide company logos](https://logoapi.sh/docs/glide.md): the line to paste into Glide, three steps, dark mode, square icons, missing logos

  • server.json 4 fields changed
    package_identifier
    — logoapi-mcp
    package_registry
    — npm
    repository_url
    https://github.com/AlonHarpaz/logo-api https://github.com/logoapi/logo-api
    version
    1.0.0 1.0.1