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

# Add prompts to a brand report

> Adds prompts that already exist in the report workspace to the brand report, exactly like ticking the report in the UI. It does not create prompts — use `POST /v1/workspaces/{id}/prompts` for that. Prompt IDs already assigned to the report are returned in `alreadyAssigned` and left unchanged; unknown prompt IDs are rejected with a 400 naming them. The report is recalculated for the added prompts asynchronously, so their data appears with a delay. A prompt that was previously removed from this report is reprocessed for the most recent 7 days of citation history only.



## OpenAPI

````yaml https://data.otterly.ai/v1/openapi.json post /v1/reports/brand/{reportId}/prompts
openapi: 3.0.0
info:
  title: Otterly Public API
  version: 1.0.0
servers:
  - url: https://data.otterly.ai
security: []
tags:
  - name: Engines
  - name: Workspaces
  - name: Tags
  - name: Prompts
  - name: Brand Reports
  - name: Audits
  - name: Accounts
paths:
  /v1/reports/brand/{reportId}/prompts:
    post:
      tags:
        - Brand Reports
      summary: Add prompts to a brand report
      description: >-
        Adds prompts that already exist in the report workspace to the brand
        report, exactly like ticking the report in the UI. It does not create
        prompts — use `POST /v1/workspaces/{id}/prompts` for that. Prompt IDs
        already assigned to the report are returned in `alreadyAssigned` and
        left unchanged; unknown prompt IDs are rejected with a 400 naming them.
        The report is recalculated for the added prompts asynchronously, so
        their data appears with a delay. A prompt that was previously removed
        from this report is reprocessed for the most recent 7 days of citation
        history only.
      parameters:
        - schema:
            type: string
            minLength: 1
            example: 01HX7K2YV9D3M8N0G6Q5R4S3T2
            description: Brand report identifier.
          required: true
          description: Brand report identifier.
          name: reportId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicApiAddBrandReportPromptsRequest'
      responses:
        '200':
          description: >-
            The prompts assigned to the brand report. Recalculation completes
            asynchronously.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiAddBrandReportPromptsResponse'
        '400':
          description: Validation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiValidationErrorResponse'
        '401':
          description: Unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorResponse'
        '403':
          description: Forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorResponse'
        '404':
          description: Report not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorResponse'
        '429':
          description: Quota exhausted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiErrorResponse'
      security:
        - BearerAuth: []
components:
  schemas:
    PublicApiAddBrandReportPromptsRequest:
      type: object
      properties:
        promptIds:
          type: array
          items:
            type: string
            minLength: 1
            maxLength: 64
          minItems: 1
          maxItems: 1000
          description: >-
            IDs of prompts that already exist in the report workspace — look
            them up with `GET /v1/workspaces/{id}/prompts`. Up to 1000 IDs per
            call. Duplicate IDs are removed, and the de-duplicated list comes
            back as `promptIds` in the response.
      required:
        - promptIds
      example:
        promptIds:
          - 01HXP1DRTM5G8Z2N3KQ7VAW4PA
    PublicApiAddBrandReportPromptsResponse:
      type: object
      properties:
        reportId:
          type: string
          minLength: 1
          example: 01HX7K2YV9D3M8N0G6Q5R4S3T2
        promptIds:
          type: array
          items:
            type: string
          description: The prompt IDs the request asked to assign.
        added:
          type: array
          items:
            type: string
          description: Prompt IDs newly assigned to the report by this request.
        alreadyAssigned:
          type: array
          items:
            type: string
          description: Prompt IDs that were already assigned to the report, left unchanged.
      required:
        - reportId
        - promptIds
        - added
        - alreadyAssigned
      example:
        reportId: 01HXBR1DGM5XY8Z2N3KQ7VAW4P
        promptIds:
          - 01HXP1DRTM5G8Z2N3KQ7VAW4PA
          - 01HXP2DRTM5G8Z2N3KQ7VAW4PB
        added:
          - 01HXP1DRTM5G8Z2N3KQ7VAW4PA
        alreadyAssigned:
          - 01HXP2DRTM5G8Z2N3KQ7VAW4PB
    PublicApiValidationErrorResponse:
      type: object
      properties:
        message:
          type: string
        target:
          type: string
        errors:
          type: array
          items:
            type: object
            properties:
              path:
                type: string
              message:
                type: string
              code:
                type: string
            required:
              - path
              - message
              - code
      required:
        - message
        - target
        - errors
      example:
        message: Validation failed
        target: query
        errors:
          - path: country
            message: Required
            code: invalid_type
    PublicApiErrorResponse:
      type: object
      properties:
        message:
          type: string
      required:
        - message
      example:
        message: Report not found
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Provide your API key as a Bearer token: `Authorization: Bearer
        YOUR_API_KEY`.

````