> ## 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 a note to a brand report

> Adds a note on a day of the brand report, authored by the API key user. Only notes can be created: recommendation markers are added from the recommendations page in the app, and a `type` other than `note` or a `recommendationId` is a 400. Annotations may not show in the dashboard until annotations are enabled there for your account; they are stored and returned by the API either way.



## OpenAPI

````yaml https://data.otterly.ai/v1/openapi.json post /v1/reports/brand/{reportId}/annotations
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: Competitors
  - name: Audits
  - name: Accounts
paths:
  /v1/reports/brand/{reportId}/annotations:
    post:
      tags:
        - Brand Reports
      summary: Add a note to a brand report
      description: >-
        Adds a note on a day of the brand report, authored by the API key user.
        Only notes can be created: recommendation markers are added from the
        recommendations page in the app, and a `type` other than `note` or a
        `recommendationId` is a 400. Annotations may not show in the dashboard
        until annotations are enabled there for your account; they are stored
        and returned by the API either way.
      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/PublicApiCreateBrandReportAnnotationRequest'
      responses:
        '201':
          description: The created note.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiBrandReportAnnotation'
        '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:
    PublicApiCreateBrandReportAnnotationRequest:
      type: object
      properties:
        date:
          type: string
          description: Day to mark, YYYY-MM-DD.
        text:
          type: string
          minLength: 1
          maxLength: 1000
          description: Note text, 1 to 1000 characters after trimming.
        type:
          type: string
          enum:
            - note
          description: Optional. Only `note` is accepted.
      required:
        - date
        - text
      additionalProperties: false
      example:
        date: '2025-04-10'
        text: Launched spring running campaign
    PublicApiBrandReportAnnotation:
      type: object
      properties:
        id:
          type: string
          minLength: 1
          example: 01HX7K2YV9D3M8N0G6Q5R4S3T2
          description: Annotation identifier.
        brandReportId:
          type: string
          minLength: 1
          example: 01HX7K2YV9D3M8N0G6Q5R4S3T2
          description: Brand report the annotation belongs to.
        date:
          type: string
          description: Marked calendar day, YYYY-MM-DD.
        type:
          type: string
          enum:
            - note
            - recommendation
          description: >-
            `note` for a free-text note; `recommendation` for a recommendation
            marked as done in the app. Only notes can be created or edited
            through the API.
        text:
          type: string
          description: Annotation text.
        recommendationId:
          type: string
          description: >-
            Recommendation the annotation marks. Present only when `type` is
            `recommendation`.
        createdBy:
          type: string
          description: Opaque identifier of the user who created the annotation.
        createdDate:
          type: string
          description: Creation timestamp (ISO 8601).
        updatedDate:
          type: string
          description: Last update timestamp (ISO 8601).
      required:
        - id
        - brandReportId
        - date
        - type
        - text
        - createdBy
        - createdDate
        - updatedDate
      example:
        id: 01HXAN7K2YV9D3M8N0G6Q5R4S3
        brandReportId: 01HXBR1DGM5XY8Z2N3KQ7VAW4P
        date: '2025-04-10'
        type: note
        text: Launched spring running campaign
        createdBy: 4f7a1c2e9b8d4e6f
        createdDate: '2025-04-10T09:15:00.000Z'
        updatedDate: '2025-04-10T09:15:00.000Z'
    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`.

````

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