200 but doesn’t look right. Find your symptom below. For status codes like 401, 403, and 429, see errors and status codes.
| Symptom | Cause |
|---|---|
| White or colored box behind the logo | Default format=jpg is opaque |
| A monogram instead of the real logo | No logo available for that domain |
| Blurry or low-resolution logo | Upscaled past the source, or no retina |
| Wrong logo for the company | The record needs updating |
| Logo doesn’t render at all | Content Security Policy or a bad key |
next/image errors about the hostname | img.logo.dev not in remotePatterns |
White or colored box behind the logo
The default format isjpg, which has no transparency. On any colored or dark surface, the logo sits on a white rectangle. Request format=png for a transparent background, and theme to match the logo to your UI:
theme=dark lightens logos with dark colors so they read on dark backgrounds. theme=light does the reverse. See format and theme.
A monogram instead of the real logo
When Logo.dev has no logo for a domain, it returns a generated monogram (a black-and-white mark with the domain’s first letter) so your UI never shows a broken image. A monogram means Logo.dev has no logo for that domain, not that the request failed. If the domain should have one, request an update. To detect a missing logo in code instead of showing the monogram, setfallback=404 and handle the error. See fallback images for the full pattern, including the onerror handler.
Blurry or low-resolution logo
Logos render up to 800 pixels. A largersize upscales the source, and the result looks soft. Request the size you display, and add retina=true to serve a 2x image for high-density screens:
Wrong logo for the company
If a domain returns an outdated or mismatched logo, request an update. The team refreshes the database daily, and corrections usually land within 24 hours.Logo doesn’t render at all
Check the browser console. A line likeRefused to load the image ... because it violates the following Content Security Policy directive means your Content-Security-Policy is blocking it. Add img.logo.dev to your img-src directive. See CORS and Content Security Policy.
If the request returns 401, the publishable key is missing or wrong, or domain restrictions are blocking it: a key with Allowed Domains Only enabled rejects requests from unlisted domains, localhost, or any context that sends no Referer. Check the key’s allowed domains before rotating it. See API keys.
next/image errors about the hostname
next/image rejects external images until you allow their hostname. Add img.logo.dev to images.remotePatterns. See Use Logo.dev with Next.js.