One GET with a domain returns a short profile. The profile has the name, a one-line description, social links and two colors. It also has the logo, the brandmark and social banners as signed links, and these links stop working about one day later. Of the responses on this site, it is the smallest. It also gives the most detail about its files. Each file has its source size, its format and a blurhash, which is a short code for a blurred preview image.
The request
curl "https://api.logo.dev/v2/brands?domain=linear.app&nosubscribe=true" \
-H "Authorization: Bearer $LOGO_DEV_SECRET_KEY"
Use the secret key (sk_…) from a server. Send exactly one identifier: domain, ticker, isin, crypto or name. If webhooks are on for an account, a lookup subscribes you to the changes of that brand. nosubscribe=true stops that subscription.
The response
GET /v2/brands?domain=linear.appLogo.dev Brand API{"data": {"name": "Linear","description": "Linear is a product development platform for …","indexed_at": "2026-09-21T03:13:20.59294Z",1When Logo.dev last refreshed it."colors": [{ "hex": "#000000", "oklch": { "l": 0, … } }, …],2Each color also in OKLCH."brandmark": {"url": "https://img.logo.dev/assets/U-5Jfqg…","source": { "width": 400, "height": 100, "format": "svg" },"expires_at": "2026-11-12T19:00:00Z"3About one day. Store the file, not the link.},"social_banners": [{ "source": { "width": 1200, … } }]}}OKLCH is a color format based on human vision. The full response is in /data.json under responses.logo-dev-brand-api, and its links no longer work.
What is not in it?
- Voice, positioning, type and rules are not in it.
- How often Logo.dev refreshes a brand is not in it. Logo.dev does not publish this.
indexed_atshows the last refresh, andbrand.updatedwebhooks report changes.
Empty and failed responses
| Status | What it means | Charged |
|---|---|---|
| 202 | Logo.dev is still indexing the brand (status: not_indexed). Retry after 30 seconds, and stop after 5 minutes |
No |
| 404 | No brand matches (status: not_found) |
No |
| 400 | A parameter is missing or malformed | Not stated |
| 401 | The key is missing or wrong, or it is a publishable key | Not stated |
| 402 | Not enough credits. A retry does not help | Not stated |
| 403 | The identifier type is not enabled, or the account is suspended | No |
| 429 | Too many requests in one minute, or too many open at once | Not stated |
Plans
As of 11 November 2026, Logo.dev has a free Community plan. On that plan, commercial projects need a visible "Logos provided by Logo.dev" link. The cheapest paid plan, Startup, is $50 a month, or $400 a year. Logo.dev bills each brand once per route per 24 hours. Repeat lookups on the same day, 202s, 404s and downloads from the image links are not billed again. The Credits-Charged header tells you if Logo.dev billed a call. See Logo.dev's pricing page. Over the Model Context Protocol (MCP), the tool is brand, on mcp.logo.dev.
Storing the files
The Logo.dev docs say that you can store anything that the API returns and serve it from your own servers. They also say to save the etag of each image. A new link or a new expires_at does not mean that the image changed.
Last updated 11 November 2026