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

# Username analysis feedback

> Sends [feedback](/en/api-reference/concepts#feedback) on a classification returned by [`POST /analyze/v1/username`](/api-reference/analyze/analyze-a-username) that you judge incorrect for a given username, with the classifications you would have expected instead.

Send the exact analyze request body you originally submitted in `analyzeRequest` so Bodyguard can reproduce the analysis your feedback refers to.

Before diving in, we recommend reading the [username taxonomy](/en/documentation/taxonomy/username-classifications) to understand the classifications you can add or remove.




## OpenAPI

````yaml /openapi/feedback.openapi.yaml post /feedback/v1/username
openapi: 3.1.0
info:
  title: Bodyguard Feedback API
  version: 1.0.0
servers:
  - url: https://api.bodyguard.ai
security:
  - ApiKeyAuth: []
tags:
  - name: Feedback
    description: Classification feedback endpoints.
paths:
  /feedback/v1/username:
    post:
      tags:
        - Feedback
      summary: Username analysis feedback
      description: >
        Sends [feedback](/en/api-reference/concepts#feedback) on a
        classification returned by [`POST
        /analyze/v1/username`](/api-reference/analyze/analyze-a-username) that
        you judge incorrect for a given username, with the classifications you
        would have expected instead.


        Send the exact analyze request body you originally submitted in
        `analyzeRequest` so Bodyguard can reproduce the analysis your feedback
        refers to.


        Before diving in, we recommend reading the [username
        taxonomy](/en/documentation/taxonomy/username-classifications) to
        understand the classifications you can add or remove.
      operationId: bodyguard.feedback.v1.CreateUsernameFeedback
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/bodyguard.feedback.v1.CreateUsernameFeedbackRequest
            examples:
              falseNegative:
                summary: Add a classification you expected
                value:
                  analyzeRequest:
                    sourceId: __YOUR_SOURCE_ID__
                    username: cool_gamer_99
                  classificationsToAdd:
                    - DRUGS
                  notes: Slang reference to drugs that Bodyguard did not catch.
                  confidence: LOW
      responses:
        '200':
          description: Feedback recorded.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/bodyguard.feedback.v1.CreateUsernameFeedbackResponse
              examples:
                recorded:
                  summary: Feedback recorded
                  value:
                    id: 018f3b06-1a2f-7d40-bb55-9c0a3e7f2d18
components:
  schemas:
    bodyguard.feedback.v1.CreateUsernameFeedbackRequest:
      type: object
      required:
        - analyzeRequest
      description: >-
        Feedback on a username analysis. Provide at least one of
        `classificationsToAdd`, `classificationsToRemove`, or `notes` — a
        request with none of the three is considered invalid.
      properties:
        analyzeRequest:
          $ref: '#/components/schemas/bodyguard.analyze.v1.AnalyzeUsernameRequest'
          description: >-
            The analyze request body you originally sent to `POST
            /analyze/v1/username`. Send it unchanged so Bodyguard can identify
            the exact analysis your feedback refers to. It already carries the
            [source](/en/api-reference/concepts#source) the username belongs to.
        classificationsToRemove:
          type: array
          description: >-
            Classifications Bodyguard returned that you judge do not apply to
            this content. See the [username
            taxonomy](/en/documentation/taxonomy/username-classifications) for
            the full list.
          items:
            type: string
        classificationsToAdd:
          type: array
          description: >-
            Classifications you judge apply to this content but that Bodyguard
            did not return. See the [username
            taxonomy](/en/documentation/taxonomy/username-classifications) for
            the full list.
          items:
            type: string
          example:
            - DRUGS
        notes:
          type: string
          description: >-
            Free-text comment explaining why you judge the content differently.
            Counts on its own: a feedback carrying only `notes`, with no
            classification change, is valid.
        confidence:
          $ref: '#/components/schemas/bodyguard.feedback.v1.Feedback.Confidence'
    bodyguard.feedback.v1.CreateUsernameFeedbackResponse:
      type: object
      required:
        - id
      properties:
        id:
          type: string
          format: uuid
          description: Bodyguard's identifier for this feedback.
    bodyguard.analyze.v1.AnalyzeUsernameRequest:
      type: object
      required:
        - sourceId
        - username
      properties:
        sourceId:
          type: string
          description: >-
            Identifier of the [source](/en/api-reference/concepts#source) the
            username belongs to. Provided by Bodyguard.
        username:
          type: string
          maxLength: 255
          description: The username string that was analyzed.
    bodyguard.feedback.v1.Feedback.Confidence:
      type: string
      description: >-
        How confident you are about the classifications you submitted. Bodyguard
        uses it to prioritise which feedback to review first. You can base it on
        who flagged the content on your side — for example `LOW` or `MEDIUM` for
        a report from an end-user, `HIGH` or `VERY_HIGH` for a decision from
        your Trust & Safety team. Optional — omit it if you cannot qualify your
        confidence.
      enum:
        - LOW
        - MEDIUM
        - HIGH
        - VERY_HIGH
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      x-default: ApiKey <your-api-key>
      description: |
        API key authentication. Provide your key in the `Authorization`
        header with the `ApiKey` scheme:
        ```
        Authorization: ApiKey <your-api-key>
        ```

````