> ## Documentation Index
> Fetch the complete documentation index at: https://www.logo.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Logo API: Get Any Company Logo by Domain

> A company logo API that returns any brand's logo from a simple image URL. Look up logos by domain, ticker, or name in PNG, JPG, and WebP — free tier.

The Logo API returns any company's logo as a cacheable image URL. Request `https://img.logo.dev/:domain` with your [publishable key](/docs/platform/api-keys) and embed it anywhere you'd use an `<img>` tag: web apps, emails, spreadsheets, and dashboards. A global CDN serves every logo in PNG, JPG, and WebP, so you never host a logo file yourself.

## Lookup modes

Look up a logo with whatever identifier you have:

* **[Display from domain](/docs/logo-images/get)** — most reliable when you have a verified domain (`shopify.com`)
* **[Display from stock ticker](/docs/logo-images/ticker)** — for financial apps (`AAPL`, `TSLA`)
* **[Display from crypto symbol](/docs/logo-images/crypto)** — cryptocurrency logos (`BTC`, `ETH`)
* **[Display from ISIN](/docs/logo-images/isin)** — global security identifiers (`US0378331005`)
* **[Display from name](/docs/logo-images/name)** — when you only have a brand name (`Shopify`, `Tesla`)

## Parameters

Every lookup mode accepts the same parameters:

| Parameter   | Type    | Default    | Description                                                            |
| ----------- | ------- | ---------- | ---------------------------------------------------------------------- |
| `token`     | string  | —          | **Required.** Your [publishable key](/docs/platform/api-keys) (`pk_…`).     |
| `size`      | integer | `128`      | Width and height in pixels (max 800), keeping the logo's aspect ratio. |
| `width`     | integer | —          | Exact width in pixels (max 800). Use with `height`; short alias `w`.   |
| `height`    | integer | —          | Exact height in pixels (max 800). Use with `width`; short alias `h`.   |
| `format`    | string  | `jpg`      | `jpg`, `png`, `webp`, or `svg` (Enterprise plans).                     |
| `theme`     | string  | `auto`     | `auto`, `light`, or `dark` — adjusts colors for your background.       |
| `greyscale` | boolean | `false`    | Returns a black-and-white logo.                                        |
| `retina`    | boolean | `false`    | Renders at 2× the requested size for high-density screens.             |
| `fallback`  | string  | `monogram` | `monogram` or `404` when no logo is found.                             |

For per-identifier details and more worked examples, see [Display from domain](/docs/logo-images/get).

## Examples

Request a logo with just a domain and your token:

```html theme={null}
<img src="https://img.logo.dev/shopify.com?token=LOGO_DEV_PUBLISHABLE_KEY" alt="Shopify logo" />
```

<Frame caption="https://img.logo.dev/shopify.com?token=LOGO_DEV_PUBLISHABLE_KEY">
  <img alt="Shopify logo" width="128" height="128" src="https://img.logo.dev/shopify.com?token=live_6a1a28fd-6420-4492-aeb0-b297461d9de2" />
</Frame>

Use `theme` to adapt a transparent logo to a dark or light background:

```html theme={null}
<img
  src="https://img.logo.dev/apple.com?token=LOGO_DEV_PUBLISHABLE_KEY&theme=dark&format=png"
  alt="Apple logo for dark backgrounds"
/>
```

<Frame caption="https://img.logo.dev/apple.com?token=LOGO_DEV_PUBLISHABLE_KEY&theme=dark&format=png">
  <img alt="Apple logo for dark backgrounds" width="128" height="128" src="https://img.logo.dev/apple.com?token=live_6a1a28fd-6420-4492-aeb0-b297461d9de2&theme=dark&format=png" />
</Frame>

## Fallback images

When no logo is found, the API returns a black-and-white monogram of the domain's first letter with a `200 OK`, so images never break in your UI.

<Frame caption="https://img.logo.dev/example.com?token=LOGO_DEV_PUBLISHABLE_KEY">
  <img alt="Example fallback monogram" width="128" height="128" src="https://img.logo.dev/example.com?token=live_6a1a28fd-6420-4492-aeb0-b297461d9de2" />
</Frame>

To handle missing logos yourself, pass `fallback=404` to get an empty `404 Not Found` instead of a monogram, then swap in your own image on error:

<CodeGroup>
  ```html HTML theme={null}
  <img
    src="https://img.logo.dev/acme.invalid?token=LOGO_DEV_PUBLISHABLE_KEY&fallback=404"
    alt="Company logo"
    onerror="this.onerror=null; this.src='/images/default-logo.png';"
  />
  ```

  ```jsx React theme={null}
  function CompanyLogo({ domain }) {
    const [src, setSrc] = useState(
      `https://img.logo.dev/${domain}?token=LOGO_DEV_PUBLISHABLE_KEY&fallback=404`
    );

    return (
      <img
        src={src}
        alt={`${domain} logo`}
        onError={() => setSrc("/images/default-logo.png")}
      />
    );
  }
  ```
</CodeGroup>

<Note>
  New to Logo.dev? [Create a free account](https://www.logo.dev/signup) to get a publishable key. The free tier covers most projects. See [rate limits](/docs/platform/rate-limits) for usage details.
</Note>
