> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brandfetch.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Brand API prefetch (HEAD)

<Note>
  A `HEAD` request is the availability check: `200` when Brandfetch already
  holds the brand, `202` when it does not and a crawl has been queued, `404`
  when nothing can be fetched for the identifier — including a brand that has
  been removed. `HEAD` takes no `allowNsfw` parameter: a held brand answers
  `200` however a later `GET` is filtered. It never consumes a credit,
  and it is available on paid plans only — a free plan receives `403` with the
  header `x-bf-error: paid_plan_required`. A `503` with
  `x-bf-error: temporarily_unavailable` means the crawl could not be queued;
  retry later.

  Use it to warm a brand ahead of time — for example at signup, with the new
  user's email address — so the `GET` that renders your brand screen is
  answered from our store instead of waiting on a live crawl. See
  [Prefetching brands](/brand-api/overview#prefetching-brands).

  The same check works on the explicit domain route,
  [`HEAD /v2/brands/domain/{domain}`](/reference/brand-api-prefetch-domain).
</Note>


## OpenAPI

````yaml HEAD /v2/brands/{identifier}
openapi: 3.0.1
info:
  title: Brandfetch API
  description: >-
    Our APIs help you personalize your customer journey through unique branded
    experiences.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.brandfetch.io
security: []
paths:
  /v2/brands/{identifier}:
    head:
      tags:
        - brands
      summary: Check availability and prefetch a brand
      description: >-
        Tells you whether Brandfetch already holds the brand and, when it does
        not, queues a crawl so that the `GET` which follows is answered from our
        store instead of waiting on a live crawl. Available on paid plans. A
        `HEAD` request carries no body and never consumes a credit.


        - `200` — the brand is held. A `GET` answers from the store.

        - `202` — the brand is not held and a crawl has been queued. A `GET`
        made before the crawl finishes still crawls live.

        - `404` — nothing can be fetched for the identifier: an unknown brand
        ID, ticker, ISIN or crypto symbol, a domain without a public suffix, or
        a brand that has been removed.


        Prefetch requests may be throttled to prevent abuse and ensure quality
        of service. A typical use is warming a brand at signup: send the new
        user's email address, and the brand is ready by the time you render it.
      operationId: prefetchBrand
      parameters:
        - name: identifier
          in: path
          description: >-
            Same identifier formats as `GET /v2/brands/{identifier}`: domain,
            email address, brand ID, stock or ETF ticker, ISIN, or crypto
            symbol. Only a domain — or the registrable domain of an email
            address — can have a crawl queued for it; the other kinds answer
            `200` or `404`.
          required: true
          schema:
            type: string
          examples:
            domain:
              summary: Domain
              value: nike.com
      responses:
        '200':
          description: The brand is held. A `GET` answers from the store.
          headers:
            x-api-key-quota:
              description: >-
                Your organization's API credit quota for the current period. The
                check itself consumes no credit.
              schema:
                type: integer
            x-api-key-approximate-usage:
              description: >-
                Credits used so far this period. Usage is counted
                asynchronously, so the figure trails your latest requests
                slightly.
              schema:
                type: integer
        '202':
          description: The brand is not held; a crawl has been queued.
          headers:
            x-api-key-quota:
              description: >-
                Your organization's API credit quota for the current period. The
                check itself consumes no credit.
              schema:
                type: integer
            x-api-key-approximate-usage:
              description: >-
                Credits used so far this period. Usage is counted
                asynchronously, so the figure trails your latest requests
                slightly.
              schema:
                type: integer
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Your organization is not on a paid plan.
          headers:
            x-bf-error:
              description: Why the request was refused.
              schema:
                type: string
                enum:
                  - paid_plan_required
        '404':
          description: >-
            Nothing can be fetched for the identifier: it is unknown, or its
            brand has been removed.
        '429':
          description: >-
            Request throughput limit exceeded. The check never consumes your
            quota, so this is the platform rate limit rather than your
            allowance.
        '503':
          description: The crawl request could not be queued. Retry later.
          headers:
            x-bf-error:
              description: Why the request was refused.
              schema:
                type: string
                enum:
                  - temporarily_unavailable
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````