Skip to main content
The Brand API returns a domain’s full brand profile in a single JSON response: logo, brandmark, social banner images, brand colors, description, and social profiles. It takes a secret key and is included on every plan: each plan comes with monthly credits, and a request uses 5 of them. Use cases, plan availability, and a live demo are on the Brand API product page.
The response is a single JSON object. The brandmark field is a wide lockup of the logo and wordmark, and social_banners holds the profile’s banner images:
A domain that isn’t in the index yet returns 202 while Logo.dev fetches it. Retry in a few seconds. See errors and status codes. Brand responses can take longer than a typical API call, because Logo.dev may prepare the profile’s assets at request time. Set your HTTP client timeout to at least 15 seconds, ideally 30. On serverless platforms, default function timeouts like Vercel’s maxDuration can sit below 15 seconds and end the request before the API responds. See the full request and response in the Get a brand profile reference.

What a brand API does

You already hold domains. They arrive in work emails at signup, sit on CRM records, and hide inside payment descriptors. A brand API resolves a domain into the public identity behind it: the company’s name, what it does, how it looks, and where it lives on social platforms. The input is one GET request with a domain. The output is one JSON object your code renders directly, with no crawler to run and no image files to host.

What’s in the response

Profiles carry these fields: The logo and brandmark URLs point at img.logo.dev, the same CDN behind the Logo API. The image you render and the data you fetch come from one index, so they stay in sync. brandmark and social_banners URLs are scoped to your account and expire after 24 hours, so render them from a fresh response rather than storing them. Check both before you render: brandmark can be absent, social_banners can be null, and a URL with no path after the hostname means no asset was selected. Fall back to logo in each of those cases.

One request instead of a pipeline

The build-it-yourself version of this data is a pipeline: a crawler to fetch each site, parsers to pull the name and description, image processing to extract logos and colors, and a re-crawl schedule to catch rebrands. Each stage breaks on its own schedule, and stale assets look like bugs to your users. The Brand API replaces that with a single request at render time. Logo.dev crawls continuously, so indexed_at tells you when a profile was last verified rather than when you last found time to re-scrape.

Authentication and plans

The Brand API takes your secret key (sk_...) as a bearer token. Call it from your server: the secret key reads brand data for any domain, so keep it out of client code and git. Every plan includes the Brand API, with a monthly credit grant that renews on your billing date. Community and Startup get 500 credits, and Pro gets 15,000. A request uses 5 credits, so that’s 100 calls a month on Community and Startup and 3,000 on Pro. Enterprise grants are set in your contract. Past your grant, requests draw on prepaid credits at 1¢ each. Run out of both and requests return 402 until you top up or the next grant lands. On Pro, Enterprise, or a custom contract you can buy credits on the billing page. Every other plan upgrades to Pro first. See credits for the full model and out of credits for the response shape.

Next steps

Get a brand profile

Full request, parameters, and response reference.

Migrate from Brandfetch

Map each Brandfetch Brand API field to Logo.dev.

Onboarding personalization

Brand a signup flow from a work email.

API keys

Where secret and publishable keys live and how to use each.