See API keys for where each key goes, domain restrictions, and rotation.
Two services have their own host. The Transaction Enrichment API beta is at
https://www.logo.dev/api/transaction and takes its own beta key. The MCP server is at https://mcp.logo.dev/mcp and signs you in with OAuth. The rest of this page covers api.logo.dev.
The response envelope
Every Logo API response that has a body and is not an error has the same two fields. A successful delete returns204 with no body. data holds the result, and metadata describes the request. The response looks like:
A failed request returns an
error object instead of the envelope. See errors for every code.
Response headers
See rate limits for how limits and credits work.
Conventions
- Timestamps are RFC 3339, in UTC.
- Ids have a prefix that names what they point to:
brand_for a brand,sub_for a subscription,evt_for a webhook event,ep_for a webhook endpoint, andrequest_for a request. Treat every id as opaque. - Store brand ids, not domains. A brand keeps its id when its domain changes.
- Field names are snake_case. A field with no value is
null, maps omit absent keys, and an empty list is[].
Versioning
The Logo API version is in the path. Every route in this reference is under/v2. New fields and new routes can arrive inside /v2. A breaking change ships under a new prefix. The Logo CDN is not versioned.
The v1 routes keep working. v1 search spends credits like v2 search, so it can return 402. See the changelog. Their v2 replacements differ in these ways:
- Responses are wrapped in
dataandmetadata, and errors use theerrorobject. GET /v2/brandsreplacesGET /brand/{domain}andGET /describe/{domain}. It also accepts a ticker, an ISIN, a crypto symbol, or a name.- Images are objects with a temporary download
url, dimensions, format, and blurhash. They are not bare URLs. - Colors include OKLCH values next to RGB and hex.
GET /v2/searchtakesmethod(matchortypeahead) instead ofstrategy, and addslimit.