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

# Get a brand

> Read a brand's current profile and check whether it is ready to use. See [Create a brand](/guides/create-brand) for creation and recovery.



## OpenAPI

````yaml https://www.rainbrand.com/api/v1/spec.json get /brands/{id}
openapi: 3.1.1
info:
  title: Rainbrand API
  version: 1.0.0
servers:
  - url: https://www.rainbrand.com/api/v1
security:
  - apiKey: []
  - bearer: []
tags:
  - name: Uploads
    description: >-
      Stage private local files for brand sources, the Library, and other
      supported operations.
  - name: Account
    description: >-
      Inspect the authenticated account — profile, credit balance, and
      accessible workspaces.
  - name: Brands
    description: Manage brands and brand identity.
  - name: Library
    description: Add, list, and remove a brand's images, video, and audio.
  - name: Images
    description: Retrieve and manage images.
  - name: Videos
    description: Retrieve and manage video files.
  - name: Audio
    description: Retrieve and manage audio files.
  - name: Briefs
    description: Get brand guidance and selected assets for a specific task.
  - name: Models
    description: Find available models and check their inputs.
  - name: Generations
    description: Create and retrieve model generations.
  - name: Reviews
    description: >-
      Check an asset against a brand's color, typography, logo, and copy
      guidance.
paths:
  /brands/{id}:
    get:
      tags:
        - Brands
      summary: Get a brand
      description: >-
        Read a brand's current profile and check whether it is ready to use. See
        [Create a brand](/guides/create-brand) for creation and recovery.
      operationId: brands.get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: Brand ID
        - name: wait
          in: query
          schema:
            anyOf:
              - type: boolean
              - enum:
                  - '0'
                  - '1'
                  - 'true'
                  - 'false'
                type: string
            default: false
            description: Hold the connection until the resource reaches a terminal status
          allowEmptyValue: true
          allowReserved: true
        - name: timeout
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 295
            default: 120
            description: Max seconds to wait (default 120, max 295)
          allowEmptyValue: true
          allowReserved: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      status:
                        enum:
                          - analyzing
                          - ready
                          - logo_required
                          - failed
                        type: string
                      failure:
                        anyOf:
                          - type: object
                            properties:
                              code:
                                enum:
                                  - INVALID_URL
                                  - UNSUPPORTED_SOURCE
                                  - SCRAPE_FAILED
                                  - WEBSITE_SOURCE_REJECTED
                                  - INSTAGRAM_FETCH_FAILED
                                  - INSTAGRAM_PROFILE_NOT_FOUND
                                  - INSTAGRAM_PRIVATE_PROFILE
                                  - PDF_PROCESSING_FAILED
                                  - PDF_SOURCE_REJECTED
                                  - SOURCE_REJECTED
                                  - TARGET_RESTRICTED
                                  - BRAND_GUIDE_BUILD_FAILED
                                  - INTERNAL_ERROR
                                  - VISUAL_DNA_FAILED
                                type: string
                              message:
                                type: string
                            required:
                              - code
                              - message
                          - type: 'null'
                      profile:
                        anyOf:
                          - type: object
                            properties:
                              name:
                                anyOf:
                                  - type: string
                                  - type: 'null'
                              primaryLogo:
                                anyOf:
                                  - type: object
                                    properties:
                                      url:
                                        type: string
                                        format: uri
                                      mediaType:
                                        anyOf:
                                          - type: string
                                          - type: 'null'
                                    required:
                                      - url
                                      - mediaType
                                  - type: 'null'
                              logoCatalog:
                                anyOf:
                                  - type: object
                                    properties:
                                      primaryLogoImageId:
                                        anyOf:
                                          - type: string
                                            format: uuid
                                          - type: 'null'
                                      items:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            imageId:
                                              type: string
                                              format: uuid
                                            form:
                                              enum:
                                                - icon
                                                - wordmark
                                                - lockup
                                              type: string
                                            contrastsBestOn:
                                              anyOf:
                                                - type: array
                                                  items:
                                                    enum:
                                                      - light
                                                      - dark
                                                    type: string
                                                - type: 'null'
                                              description: >-
                                                Backgrounds that independently pass the
                                                visibility check for a transparent logo.
                                                An empty array means neither passes.
                                                Null means analysis was unavailable for
                                                a transparent asset or does not apply to
                                                an opaque asset. This heuristic does not
                                                establish Brand approval.
                                            asset:
                                              type: object
                                              properties:
                                                path:
                                                  type: string
                                                mediaType:
                                                  type: string
                                                byteLength:
                                                  type: integer
                                                  minimum: -9007199254740991
                                                  maximum: 9007199254740991
                                                  exclusiveMinimum: 0
                                                sha256:
                                                  type: string
                                                  pattern: ^[a-f0-9]{64}$
                                                width:
                                                  type: integer
                                                  minimum: -9007199254740991
                                                  maximum: 9007199254740991
                                                  exclusiveMinimum: 0
                                                height:
                                                  type: integer
                                                  minimum: -9007199254740991
                                                  maximum: 9007199254740991
                                                  exclusiveMinimum: 0
                                                aspectRatio:
                                                  type: number
                                                  exclusiveMinimum: 0
                                                hasTransparency:
                                                  type: boolean
                                                url:
                                                  type: string
                                                  format: uri
                                                  description: >-
                                                    Temporary signed URL for the logo bytes
                                                    saved with this Brand Skill version.
                                                    Read the version again to refresh an
                                                    expired URL.
                                              required:
                                                - path
                                                - mediaType
                                                - byteLength
                                                - sha256
                                                - width
                                                - height
                                                - aspectRatio
                                                - hasTransparency
                                                - url
                                          required:
                                            - imageId
                                            - form
                                            - contrastsBestOn
                                            - asset
                                    required:
                                      - primaryLogoImageId
                                      - items
                                  - type: 'null'
                                description: >-
                                  Supported logos saved with this Brand Skill
                                  version. Null means no catalog was published;
                                  an empty items array explicitly records no
                                  supported logos. Asset URLs are temporary.
                                  Follow exact caller selection and relevant
                                  Brand Skill guidance before visibility hints,
                                  with the primary logo as a general fallback.
                              favicon:
                                anyOf:
                                  - type: object
                                    properties:
                                      url:
                                        type: string
                                        format: uri
                                      mediaType:
                                        anyOf:
                                          - type: string
                                          - type: 'null'
                                    required:
                                      - url
                                      - mediaType
                                  - type: 'null'
                              palette:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    hex:
                                      type: string
                                      description: >-
                                        Six-digit HEX color value, including the
                                        leading #.
                                    name:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                      description: >-
                                        The source-established color name, when
                                        available.
                                    group:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                      description: >-
                                        The source-defined palette group, or
                                        null when the source does not group this
                                        color.
                                    usage:
                                      anyOf:
                                        - type: string
                                        - type: 'null'
                                      description: >-
                                        Source-supported guidance for using this
                                        color, when available.
                                  required:
                                    - hex
                                    - name
                                    - group
                                    - usage
                                description: The Brand's complete ordered color palette.
                              gradients:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    name:
                                      type: string
                                      minLength: 1
                                      maxLength: 80
                                      description: >-
                                        The gradient's name, as established by
                                        the source.
                                    angle:
                                      type: number
                                      minimum: 0
                                      exclusiveMaximum: 360
                                      description: >-
                                        The linear gradient's angle in degrees,
                                        from 0 up to but not including 360.
                                    stops:
                                      type: array
                                      minItems: 2
                                      items:
                                        type: object
                                        properties:
                                          hex:
                                            type: string
                                            pattern: ^#[0-9A-Fa-f]{6}$
                                            description: >-
                                              Six-digit HEX color value for this stop,
                                              including the leading #.
                                          position:
                                            type: number
                                            minimum: 0
                                            maximum: 100
                                            description: >-
                                              The stop's position as a percentage from
                                              0 to 100.
                                        required:
                                          - hex
                                          - position
                                        additionalProperties: false
                                      description: >-
                                        At least two color stops in
                                        non-decreasing position order. Adjacent
                                        stops may share a position to create a
                                        hard transition.
                                    usage:
                                      type: string
                                      minLength: 1
                                      maxLength: 500
                                      description: >-
                                        Source-supported guidance on when and
                                        how to use this gradient.
                                  required:
                                    - name
                                    - angle
                                    - stops
                                  additionalProperties: false
                                description: The Brand's complete ordered linear gradients.
                              typography:
                                anyOf:
                                  - type: object
                                    properties:
                                      heading:
                                        anyOf:
                                          - type: object
                                            properties:
                                              family:
                                                type: string
                                            required:
                                              - family
                                          - type: 'null'
                                        description: >-
                                          Deprecated. Font of the role named
                                          Heading, if any.
                                      body:
                                        anyOf:
                                          - type: object
                                            properties:
                                              family:
                                                type: string
                                            required:
                                              - family
                                          - type: 'null'
                                        description: >-
                                          Deprecated. Font of the role named Body,
                                          if any.
                                      roles:
                                        type: array
                                        items:
                                          type: object
                                          properties:
                                            name:
                                              type: string
                                              description: >-
                                                The brand's name for this typography
                                                role, such as Eyebrow.
                                            family:
                                              type: string
                                            weight:
                                              anyOf:
                                                - type: integer
                                                  minimum: -9007199254740991
                                                  maximum: 9007199254740991
                                                - type: 'null'
                                              description: >-
                                                Font weight for this role, or null when
                                                unspecified.
                                          required:
                                            - name
                                            - family
                                            - weight
                                        description: >-
                                          The brand's typography roles, most
                                          prominent first.
                                    required:
                                      - heading
                                      - body
                                      - roles
                                  - type: 'null'
                            required:
                              - name
                              - primaryLogo
                              - logoCatalog
                              - favicon
                              - palette
                              - gradients
                              - typography
                          - type: 'null'
                        description: >-
                          Current brand identity. Brands with an active Brand
                          Skill read this from that immutable Skill; brands
                          still being created may not have a profile yet.
                      activeSkill:
                        anyOf:
                          - type: object
                            properties:
                              id:
                                type: string
                                format: uuid
                              createdAt:
                                type: string
                                format: date-time
                                x-native-type: date
                            required:
                              - id
                              - createdAt
                          - type: 'null'
                        description: Current immutable Brand Skill, when one is active.
                      workspaceId:
                        anyOf:
                          - type: string
                          - type: 'null'
                      workspaceName:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                        x-native-type: date
                    required:
                      - id
                      - status
                      - failure
                      - profile
                      - activeSkill
                      - workspaceId
                      - workspaceName
                      - createdAt
                required:
                  - data
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandsGet401ErrorResponse'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandsGet403ErrorResponse'
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandsGet404ErrorResponse'
        '429':
          description: '429'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandsGet429ErrorResponse'
          headers:
            Retry-After:
              description: >-
                Seconds until the applicable request or operation limit resets.
                Present when the limiter can calculate the delay.
              schema:
                type: integer
                minimum: 0
components:
  schemas:
    BrandsGet401ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: UNAUTHORIZED
                    status:
                      const: 401
                    message:
                      type: string
                      default: Invalid or missing API credentials
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    BrandsGet403ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: ACCOUNT_BANNED
                    status:
                      const: 403
                    message:
                      type: string
                      default: This account has been suspended.
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      const: FORBIDDEN
                    status:
                      const: 403
                    message:
                      type: string
                      default: Plan upgrade required
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    BrandsGet404ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: BRAND_NOT_FOUND
                    status:
                      const: 404
                    message:
                      type: string
                      default: Brand not found
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    BrandsGet429ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: TOO_MANY_REQUESTS
                    status:
                      const: 429
                    message:
                      type: string
                      default: Rate limit exceeded
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    ApiError:
      type: object
      properties:
        code:
          type: string
        status:
          type: integer
        message:
          type: string
        data: {}
      required:
        - code
        - status
        - message
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: 'Rainbrand API key, for example `x-api-key: bloom_sk_...`.'
    bearer:
      type: http
      scheme: bearer
      description: >-
        Rainbrand API key (`Bearer bloom_sk_...`) or Rainbrand OAuth access
        token.

````

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