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

# Get a Brand Skill

> Return the current creation status. A completed Brand Skill includes a temporary signed ZIP download and is permanently removed within 30 days of bundle delivery. Poll until completed or failed.



## OpenAPI

````yaml /openapi/brand-skills.json get /brand-skills/{id}
openapi: 3.1.1
info:
  title: Rainbrand Brand Skills API
  version: 1.0.0
  description: Approved partner beta API for creating portable Brand Skills.
servers:
  - url: https://www.rainbrand.com/api/v1
security:
  - apiKey: []
  - bearer: []
  - oauth: []
tags:
  - name: Brand Skills
    description: Create, retrieve, download, and delete Brand Skills.
paths:
  /brand-skills/{id}:
    get:
      tags:
        - Brand Skills
      summary: Get a Brand Skill
      description: >-
        Return the current creation status. A completed Brand Skill includes a
        temporary signed ZIP download and is permanently removed within 30 days
        of bundle delivery. Poll until completed or failed.
      operationId: brandSkills.get
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: Brand Skill ID
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        description: >-
                          Brand Skill ID. Use this ID to poll or delete the
                          Brand Skill through /brand-skills/{id}.
                      brandId:
                        type: string
                        format: uuid
                        description: ID of the Brand associated with this Brand Skill.
                      status:
                        enum:
                          - pending
                          - processing
                          - completed
                          - failed
                        type: string
                        description: >-
                          Lifecycle state: pending is queued, processing is
                          being built, completed has a download, and failed has
                          failure details
                      brandName:
                        type: string
                        description: Brand Skill name
                      sources:
                        type: array
                        minItems: 1
                        maxItems: 30
                        items:
                          anyOf:
                            - type: object
                              properties:
                                kind:
                                  enum:
                                    - website
                                  type: string
                                  description: Source type for a public website
                                url:
                                  type: string
                                  format: uri
                              required:
                                - kind
                                - url
                              title: Website
                            - type: object
                              properties:
                                kind:
                                  enum:
                                    - instagram
                                  type: string
                                  description: Source type for an Instagram account
                                username:
                                  type: string
                              required:
                                - kind
                                - username
                              title: Instagram
                            - type: object
                              properties:
                                kind:
                                  enum:
                                    - file
                                  type: string
                                  description: >-
                                    Source type for an uploaded file, including
                                    a PDF
                                filename:
                                  type: string
                              required:
                                - kind
                                - filename
                              title: File
                        description: >-
                          Sources used to build the Brand Skill, in request
                          order. Stored-file input URLs are never returned
                      failure:
                        anyOf:
                          - type: object
                            properties:
                              code:
                                enum:
                                  - source_processing_failed
                                  - source_rejected
                                  - instagram_profile_not_found
                                  - instagram_private_profile
                                  - rate_limited
                                  - provider_unavailable
                                  - insufficient_evidence
                                  - invalid_output
                                  - generation_failed
                                  - internal_error
                                type: string
                                description: Machine-readable build failure code
                              message:
                                type: string
                                description: Human-readable failure message
                              retryable:
                                type: boolean
                                description: Whether a new create request may be attempted
                              explanation:
                                type: string
                                description: >-
                                  Why Rainbrand could not find enough brand
                                  information in the supplied sources. Present
                                  only when code is insufficient_evidence.
                            required:
                              - code
                              - message
                              - retryable
                          - type: 'null'
                        description: Failure details when status is failed; otherwise null
                      download:
                        anyOf:
                          - type: object
                            properties:
                              url:
                                type: string
                                format: uri
                                description: Temporary signed URL for the ZIP
                              filename:
                                type: string
                                description: Suggested ZIP filename
                              byteLength:
                                type: integer
                                minimum: 0
                                maximum: 9007199254740991
                                description: ZIP size in bytes
                            required:
                              - url
                              - filename
                              - byteLength
                          - type: 'null'
                        description: >-
                          Download details when status is completed; otherwise
                          null
                      createdAt:
                        type: string
                        format: date-time
                        x-native-type: date
                        description: Time the Brand Skill was created
                      completedAt:
                        anyOf:
                          - type: string
                            format: date-time
                            x-native-type: date
                          - type: 'null'
                        description: >-
                          Time the Brand Skill completed successfully; otherwise
                          null
                    required:
                      - id
                      - brandId
                      - status
                      - brandName
                      - sources
                      - failure
                      - download
                      - createdAt
                      - completedAt
                required:
                  - data
        '401':
          description: '401'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandSkillsGet401ErrorResponse'
        '403':
          description: '403'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandSkillsGet403ErrorResponse'
        '404':
          description: '404'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandSkillsGet404ErrorResponse'
        '429':
          description: '429'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandSkillsGet429ErrorResponse'
          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
        '500':
          description: '500'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BrandSkillsGet500ErrorResponse'
components:
  schemas:
    BrandSkillsGet401ErrorResponse:
      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
    BrandSkillsGet403ErrorResponse:
      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:
                      const: FEATURE_NOT_AVAILABLE
                    status:
                      const: 403
                    message:
                      type: string
                      default: This operation isn't available for this integration.
                    data: {}
                  required:
                    - code
                    - status
                    - message
                - type: object
                  properties:
                    code:
                      type: string
                    status:
                      type: integer
                    message:
                      type: string
                    data: {}
                  required:
                    - code
                    - status
                    - message
      required:
        - error
    BrandSkillsGet404ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: BRAND_SKILL_NOT_FOUND
                    status:
                      const: 404
                    message:
                      type: string
                      default: Brand Skill 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
    BrandSkillsGet429ErrorResponse:
      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
    BrandSkillsGet500ErrorResponse:
      type: object
      properties:
        error:
          allOf:
            - $ref: '#/components/schemas/ApiError'
            - anyOf:
                - type: object
                  properties:
                    code:
                      const: INTERNAL_ERROR
                    status:
                      const: 500
                    message:
                      type: string
                      default: Failed to retrieve Brand Skill
                    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.
    oauth:
      type: oauth2
      description: >-
        Authorization Code with PKCE S256. See
        [Authentication](https://docs.rainbrand.com/api/authentication).
      flows:
        authorizationCode:
          authorizationUrl: https://www.rainbrand.com/api/auth/oauth2/authorize
          tokenUrl: https://www.rainbrand.com/api/auth/oauth2/token
          scopes:
            openid: Authenticate the user's identity with OpenID Connect.
            offline_access: Request a refresh token for access when the user is offline.

````

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