Logo.dev
API Reference

GET /describe/{domain}

Return canonical brand metadata for a domain in the demo catalog.

Try it

Type any domain or pick from the examples below — the response renders live against the deployed catalog.

examples:
GET /describe/stripe.com

Request

GET /describe/{domain}

Prop

Type

Response

A 200 OK is returned in either of two shapes, depending on whether the cached metadata for the domain is trustworthy. Errors return 400 or 404.

{
  "name": "Stripe",
  "domain": "stripe.com",
  "description": "Stripe is a financial infrastructure platform...",
  "indexed_at": "2024-09-12T18:00:00Z",
  "socials": { "twitter": "stripe", "linkedin": "stripe" },
  "logo": "https://enterprise-demo.logo.dev/img/.../logo.png",
  "icon": "https://enterprise-demo.logo.dev/img/.../icon-light.svg",
  "wordmark": "https://enterprise-demo.logo.dev/img/.../wordmark-light.svg",
  "aliases": ["Stripe, Inc."],
  "blurhash": "L6PZfSi_.AyE_3t7t7R**0o#DgR4",
  "colors": [
    { "r": 99, "g": 91, "b": 255, "hex": "#635BFF" }
  ],
  "design_md": "# Stripe DESIGN.md\n\n## Typography\n...",
  "banner_images": [
    { "url": "https://enterprise-demo.logo.dev/img/.../og.png",      "source": "og" },
    { "url": "https://enterprise-demo.logo.dev/img/.../twitter.png", "source": "twitter" }
  ]
}
{
  "domain": "stripe.com",
  "unavailable": true
}
{ "error": "not cached", "domain": "stripe.com" }
{ "error": "invalid domain" }

Branch on unavailable === true first. The available-shape fields below are only present when the domain is available.

Available shape

Always present

FieldTypeNotes
namestringBrand name. Empty string when unknown.
domainstringEchoed back, lowercased.
descriptionstringShort brand description. Empty string when unknown.
indexed_atstringISO-8601 timestamp of when the domain was indexed.
socialsobjectMap of platform → handle. {} when none, never null.
logostringSquare logo URL (PNG).
blurhashstringBlurHash for the logo.
colorsarray of ColorBrand palette. [] when none.

Color shape:

{ "r": 99, "g": 91, "b": 255, "hex": "#635BFF" }

Conditional

FieldTypePresent when
iconstringA square SVG/PNG icon is available.
wordmarkstringA horizontal SVG/PNG wordmark is available.
aliasesarray of stringKnown aliases for the brand.
nsfwbooleantrue only when the brand is flagged NSFW. Omitted otherwise.
design_mdstringA DESIGN.md (Markdown) sidecar exists for the domain.
banner_imagesarray of BannerImageOne or more OG-card-shaped images are available.
canonical_domainstringThe catalog's canonical domain for this brand. Equals domain when you hit the canonical.
synonymsarray of stringOther domains in the catalog that resolve to this brand. Only present on canonical entries.

BannerImage shape:

{ "url": "https://...", "source": "og" }

source is one of "og", "facebook", "twitter".

Unavailable shape

Returned when the source can't be trusted (Cloudflare challenge, dead store, parked, 404). Two fields, deliberately minimal:

{
  "domain": "stripe.com",
  "unavailable": true
}
FieldTypeNotes
domainstringEchoed back, lowercased.
unavailablebooleanAlways true in this shape.

None of the available-shape fields appear — no name, description, logo, icon, wordmark, colors, etc. Render your own "unavailable" state rather than risk surfacing scraped error-page text as the brand name.

Asset URLs

logo, icon, wordmark, and banner_images[].url are all served same-origin through our imgproxy CDN. Treat the URLs as opaque — fetch them as you would any other static URL, drop them straight into an <img> tag, or pipe them through your own CDN.

On this demo, every asset is rendered as a 256px PNG with retina output enabled. That's a deliberately simple default — it covers the common case without forcing format decisions during evaluation.

For your rollout, we can configure the imgproxy pipeline per-customer:

  • Format — PNG (default), JPEG, or WebP. JPEG is the right call for banner imagery if you want smaller payloads; WebP is the most aggressive on size if your clients support it.
  • Size — Up to 800px on the longest edge. Multiple sizes (e.g. a 64px favicon variant alongside a 256px hero) can be exposed as separate fields or query parameters.
  • Retina / 2x — Toggleable per output.
  • Theme variants — Light and dark wordmark/icon variants emitted as separate URLs.

Tell us which formats and sizes you need for your evaluation and we'll switch them on.

On this page