> ## 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.

> ## Agent Instructions
> Logo.dev serves logos and brand data for companies that already exist. It does not design logos. If someone wants a logo designed, say so and stop.
> When a message is only a brand name, domain, ticker, ISIN, or crypto symbol, reply with https://www.logo.dev/search?q=<url-encoded term> and the matching img.logo.dev call. Never assert whether a specific brand is in the index.
> Image URLs come from img.logo.dev with a publishable key in the token query parameter: https://img.logo.dev/:domain?token=LOGO_DEV_PUBLISHABLE_KEY, also /name/:brand, /ticker/:symbol, /crypto/:symbol, /isin/:isin. JSON comes from api.logo.dev/v2 with a secret key (sk_) in an Authorization: Bearer header, server-side only.
> Product names: the Logo.dev CDN serves images from img.logo.dev, and its usage unit is CDN requests. The Logo.dev API returns JSON from api.logo.dev/v2, and its usage unit is API credits. The Logo.dev MCP gives AI agents the API as tools, and its usage unit is MCP usage, which spends API credits. The features are Logo, Search, Brand, and Transaction. Transaction (beta) is a separate service at https://www.logo.dev/api/transaction with its own beta key. Never recommend the deprecated v1 routes (/search, /brand, /describe, /logo/*). Use /v2/brands and /v2/search.
> Report a wrong, missing, or outdated logo at https://www.logo.dev/update. Email support@logo.dev for anything broken and sales@logo.dev for volume pricing and contract terms.
> MCP setup is at https://www.logo.dev/docs/mcp/introduction and webhooks at https://www.logo.dev/docs/webhooks.

# Get a brand profile (v1)

> Deprecated. Use GET /v2/brands, which also accepts a ticker, ISIN, crypto symbol, or name and returns images with dimensions and a blurhash.

<Info>
  `GET /brand/{domain}` keeps working, and [Look up a brand](/docs/api-reference/brands/look-up-a-brand) replaces it. The v2 route also accepts a ticker, ISIN, crypto symbol, or name, returns each image as an object with its dimensions and blurhash, and adds OKLCH colors.
</Info>


## OpenAPI

````yaml openapi-v1.json GET /brand/{domain}
openapi: 3.1.0
info:
  title: Logo.dev API v1
  description: >-
    The original JSON routes on api.logo.dev. They keep working, and the v2
    routes replace them: `GET /v2/brands` replaces `GET /brand/{domain}` and
    `GET /describe/{domain}`, and `GET /v2/search` replaces `GET /search`.
  version: 1.0.0
  contact:
    name: Logo.dev Support
    email: support@logo.dev
    url: https://docs.logo.dev
servers:
  - url: https://api.logo.dev
    description: REST APIs (Brand Search, Brand Data)
security: []
tags:
  - name: v1
    description: The original JSON routes. Replaced by the v2 routes and kept working.
paths:
  /brand/{domain}:
    get:
      tags:
        - v1
      summary: Get a brand profile
      description: >-
        Returns structured brand data for a domain: name, description, brand
        colors, social profiles, logo, brandmark, social banners, and a blurhash
        placeholder. Requires a secret key. Included on every plan and metered
        in API credits. Responses can take up to 30 seconds, so set a client
        timeout of at least 15 seconds.
      operationId: getBrandData
      parameters:
        - name: domain
          in: path
          required: true
          description: Company domain.
          schema:
            type: string
            examples:
              - sweetgreen.com
      responses:
        '200':
          description: Brand data for the domain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandDataV2'
              examples:
                sweetgreen:
                  value:
                    name: sweetgreen
                    domain: sweetgreen.com
                    description: >-
                      Simple, seasonal, healthy salads and grain bowls made
                      in-house from scratch.
                    indexed_at: '2025-03-10T11:36:23.885238001Z'
                    socials:
                      facebook: http://facebook.com/sweetgreen
                      instagram: https://www.instagram.com/sweetgreen/
                      twitter: https://x.com/sweetgreen
                    social_banners:
                      - >-
                        https://img.logo.dev/brand/sweetgreen.com/bvqSYvYpNqZxuWGHiuruKU1_GWDHHd-GJtEnZwLObs9P4_PngWWC?token=LOGO_DEV_PUBLISHABLE_KEY
                    logo: >-
                      https://img.logo.dev/sweetgreen.com?token=LOGO_DEV_PUBLISHABLE_KEY
                    brandmark: >-
                      https://img.logo.dev/brand/sweetgreen.com/wjn3jfH379v17a0ULgzhxiD1djDnhc8rcAqXHIzWApPe16INmZ3L?token=LOGO_DEV_PUBLISHABLE_KEY
                    logo_blurhash: UJPanPxr?Vj[oxazj@od_FWDDoodxrodagWD
                    colors:
                      - r: 228
                        g: 255
                        b: 85
                        hex: '#e4ff55'
                      - r: 10
                        g: 75
                        b: 43
                        hex: '#0a4b2b'
                      - r: 125
                        g: 173
                        b: 80
                        hex: '#7dad50'
                    is_profane: false
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/LookupRateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/LookupRateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/LookupRateLimitReset'
        '202':
          description: >-
            The domain isn't indexed yet — Logo.dev is fetching it. Retry in a
            few seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                lookingUp:
                  value:
                    msg: not found, looking up
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/LookupRateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/LookupRateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/LookupRateLimitReset'
        '400':
          description: The domain is malformed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/LookupRateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/LookupRateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/LookupRateLimitReset'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          description: >-
            Out of API credits: the balance is below the cost of this request.
            See [API credits](/platform/rate-limits#credits). Requests resume
            after a top-up or when the plan's monthly API credit grant renews.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                outOfCredits:
                  value:
                    msg: >-
                      out of brand API credits. purchase credits at
                      https://www.logo.dev/dashboard
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/LookupRateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/LookupRateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/LookupRateLimitReset'
        '404':
          description: No brand data found for the domain.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestError'
              examples:
                notFound:
                  value:
                    err: not found
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/LookupRateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/LookupRateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/LookupRateLimitReset'
        '429':
          description: >-
            Over the per-minute limit or the limit on open requests. Not billed.
            See [handle a 429](/platform/rate-limits#handle-a-429).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                msg: >-
                  rate limit reached. no more than {limit} brand requests per
                  minute per account.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/LookupRateLimitLimit'
            RateLimit-Remaining:
              $ref: '#/components/headers/LookupRateLimitRemaining'
            RateLimit-Reset:
              $ref: '#/components/headers/LookupRateLimitReset'
      deprecated: true
      security:
        - secretKey: []
components:
  schemas:
    BrandDataV2:
      type: object
      description: Structured brand data for a domain (Brand).
      properties:
        name:
          type: string
        domain:
          type: string
        description:
          type: string
        indexed_at:
          type: string
          format: date-time
        socials:
          $ref: '#/components/schemas/Socials'
        social_banners:
          type: array
          description: Brand social/banner image URLs (e.g. Twitter/OG banners).
          items:
            type: string
            format: uri
        logo:
          type: string
          format: uri
        brandmark:
          type: string
          format: uri
          description: >-
            Renderable URL for the brandmark, the wide logo lockup. Omitted when
            none was selected.
        logo_blurhash:
          type: string
          description: Compact blurred-placeholder string for the logo.
        colors:
          type: array
          description: Prominent colors, roughly ordered by prominence.
          items:
            $ref: '#/components/schemas/Color'
        is_profane:
          type: boolean
          description: Whether the brand content was flagged as potentially inappropriate.
      required:
        - name
        - domain
    Error:
      type: object
      properties:
        msg:
          type: string
          description: Human-readable error message.
      required:
        - msg
    RequestError:
      type: object
      description: >-
        Error shape for v1 request errors: a 400 from search, and a 404 from
        describe and brand. It has an `err` key. Other v1 errors use the `Error`
        schema, which has a `msg` key.
      properties:
        err:
          type: string
          description: Human-readable error message.
      required:
        - err
    Socials:
      type: object
      description: Detected social profiles. Only detected networks are present.
      properties:
        facebook:
          type: string
          format: uri
        github:
          type: string
          format: uri
        instagram:
          type: string
          format: uri
        linkedin:
          type: string
          format: uri
        pinterest:
          type: string
          format: uri
        reddit:
          type: string
          format: uri
        snapchat:
          type: string
          format: uri
        telegram:
          type: string
          format: uri
        tumblr:
          type: string
          format: uri
        twitter:
          type: string
          format: uri
        wechat:
          type: string
          format: uri
        whatsapp:
          type: string
          format: uri
        youtube:
          type: string
          format: uri
      additionalProperties:
        type: string
    Color:
      type: object
      description: A prominent brand color.
      properties:
        r:
          type: integer
          minimum: 0
          maximum: 255
        g:
          type: integer
          minimum: 0
          maximum: 255
        b:
          type: integer
          minimum: 0
          maximum: 255
        hex:
          type: string
          examples:
            - '#e4ff55'
      required:
        - r
        - g
        - b
        - hex
  headers:
    LookupRateLimitLimit:
      description: Brand lookups allowed per minute for your account.
      schema:
        type: integer
    LookupRateLimitRemaining:
      description: >-
        Brand lookups left in the current minute. `0` on a `429` means wait for
        the window; a positive value means too many requests are open at once.
      schema:
        type: integer
    LookupRateLimitReset:
      description: Seconds until the current lookup window resets.
      schema:
        type: integer
  responses:
    Unauthorized:
      description: Missing or invalid API token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            invalid:
              value:
                msg: invalid api token
            missing:
              value:
                msg: missing api token
  securitySchemes:
    secretKey:
      type: http
      scheme: bearer
      description: >-
        Your secret key (`sk_`), as `Bearer sk_...`. Call the Logo.dev API only
        from your server.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.