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

# List Feedback Reports

> Get a paginated list of feedback reports for a user



## OpenAPI

````yaml https://app.govworx.net/u/api-docs get /api/v1/external/qa/user/{userId}/reports
openapi: 3.1.0
info:
  title: GovWorx Data API
  description: Interfaces to access data produced and organized by GovWorx Applications.
  termsOfService: http://swagger.io/terms/
  version: '1.0'
servers:
  - url: https://app.govworx.net
security: []
tags:
  - name: TRAIN
    description: Training Phase and Enrollment Records
  - name: Audit Log Export
    description: Programmatically pull audit records into your SIEM solution
  - name: Knowledge
    description: >-
      Push and version guide cards and instruction cards into GovWorx from
      external systems (e.g., APCO, PowerPhone, IAED). 


      ## Concepts


      **Knowledge entry:** A guide card or instruction card identified by a
      GovWorx-internal `id` and your partner-supplied `externalId`. Each entry
      carries one or more immutable versions.


      **Version:** An immutable snapshot of the guide card content created by
      `POST /` (create) or `POST /{knowledgeId}/versions` (append). Only one
      version is published (active) at a time.


      **Section ownership (`apiControl`):** A single top-level `apiControl`
      object on each request declares which sections are owned by the API and
      which are managed within GovWorx. API-owned sections are fully overwritten
      on every append. GovWorx-owned sections are editable inside GovWorx and
      carried forward automatically — do not include their content in append
      payloads. Flags are set once at creation and are immutable between
      versions.


      ## referenceId lifecycle


      GovWorx assigns a stable `referenceId` to every item in every content list
      on create. These identifiers are echoed back in the create/append
      response. **Store them.** On future appends, echo a `referenceId` to
      update the existing item in place. Omit the `referenceId` to add a new
      item (a fresh id is generated). Supplying an unknown `referenceId` — one
      not present in the previous version — is rejected (400).


      Reference id formats: `q-{8 hex}` (questions), `si-{8 hex}` (spoken
      instructions), `ca-{8 hex}` (CAD actions), `sms-{8 hex}` (SMS messages),
      `dt-{8 hex}` (dispatch triggers).


      ## Authentication


      All endpoints require a bearer token with the `Manage Knowledge`
      permission.
  - name: Incident
    description: Upload a new Incident to the system
  - name: MCP Resources
    description: MCP Resource endpoints for external integrations
  - name: Quality Assurance
    description: QA evaluation and feedback report endpoints
  - name: Users
    description: User Records
externalDocs:
  description: GovWorx Developer Docs
  url: https://api.govworx.ai
paths:
  /api/v1/external/qa/user/{userId}/reports:
    get:
      tags:
        - Quality Assurance
      summary: List Feedback Reports
      description: Get a paginated list of feedback reports for a user
      operationId: getTrainingObservationReports_1
      parameters:
        - name: userId
          in: path
          required: true
          schema:
            type: integer
            format: int64
      responses:
        '200':
          description: OK
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PageEventFeedbackReportSummaryDto'
components:
  schemas:
    PageEventFeedbackReportSummaryDto:
      type: object
      properties:
        totalElements:
          type: integer
          format: int64
        totalPages:
          type: integer
          format: int32
        last:
          type: boolean
        size:
          type: integer
          format: int32
        content:
          type: array
          items:
            $ref: '#/components/schemas/EventFeedbackReportSummaryDto'
        number:
          type: integer
          format: int32
        sort:
          $ref: '#/components/schemas/SortObject'
        first:
          type: boolean
        numberOfElements:
          type: integer
          format: int32
        pageable:
          $ref: '#/components/schemas/PageableObject'
        empty:
          type: boolean
    EventFeedbackReportSummaryDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        title:
          type: string
        summary:
          type: string
        type:
          type: string
          enum:
            - FEEDBACK_REPORT
            - TRAINING_OBSERVATION
        status:
          type: string
          enum:
            - DRAFT
            - SHARED_DRAFT
            - SENT
            - WAITING_RECIPIENT
            - COMPLETE
        author:
          $ref: '#/components/schemas/UserDto'
        recipient:
          $ref: '#/components/schemas/UserDto'
        subject:
          $ref: '#/components/schemas/UserDto'
        subjectId:
          type: integer
          format: int64
        subjectFullName:
          type: string
        requireRecipientReview:
          type: boolean
        ccs:
          type: array
          items:
            type: string
        sentAt:
          type: string
          format: date-time
        acknowledgedAt:
          type: string
          format: date-time
        acknowledgedBy:
          type: string
        torExists:
          type: boolean
        createdAt:
          type: string
          format: date-time
        phaseId:
          type: integer
          format: int64
        signoffConfigId:
          type: integer
          format: int64
        isAuthorSignoffUserForFirstLevel:
          type: boolean
        feedbackEventIds:
          type: array
          items:
            type: integer
            format: int64
        automatedFeedbackReportConfigName:
          type: string
        signoff:
          $ref: '#/components/schemas/SignoffDto'
    SortObject:
      type: object
      properties:
        empty:
          type: boolean
        sorted:
          type: boolean
        unsorted:
          type: boolean
    PageableObject:
      type: object
      properties:
        offset:
          type: integer
          format: int64
        sort:
          $ref: '#/components/schemas/SortObject'
        pageSize:
          type: integer
          format: int32
        paged:
          type: boolean
        pageNumber:
          type: integer
          format: int32
        unpaged:
          type: boolean
    UserDto:
      type: object
      properties:
        email:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        loginEnabled:
          type: boolean
        notificationEmail:
          type: string
        id:
          type: integer
          format: int64
        tenantId:
          type: integer
          format: int64
        idpSub:
          type: string
        personnelId:
          type: string
        roleId:
          type: integer
          format: int64
        isSuperAdmin:
          type: boolean
        isSystemUser:
          type: boolean
        mfaEnabled:
          type: boolean
        lastLoginAt:
          type: string
          format: date-time
        isSupervisor:
          type: boolean
        isTemplatePublishingAllowed:
          type: boolean
        vlrIdentifier:
          type: string
        passwordExpiresAt:
          type: string
          format: date-time
        isPasswordExpired:
          type: boolean
        isSupportUser:
          type: boolean
        investmentTrainingPipeline:
          type: boolean
    SignoffDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        levels:
          type: array
          items:
            $ref: '#/components/schemas/SignoffLevelDto'
        status:
          type: string
          enum:
            - NOT_SENT
            - NOT_STARTED
            - PENDING
            - COMPLETED
            - REJECTED
            - OVERRIDE
            - RECALLED
            - MINIMUM_MET
            - OMITTED_BY_CONDITION
        createdAt:
          type: string
          format: date-time
        feedbackReports:
          type: array
          items:
            $ref: '#/components/schemas/SignoffFeedbackReportDto'
        phaseEnrollments:
          type: array
          items:
            $ref: '#/components/schemas/SignoffPhaseEnrollmentDto'
    SignoffLevelDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        users:
          type: array
          items:
            $ref: '#/components/schemas/SignoffLevelUserDto'
        level:
          type: integer
          format: int32
        numberOfSignoffsRequired:
          type: integer
          format: int32
        status:
          type: string
          enum:
            - NOT_SENT
            - NOT_STARTED
            - PENDING
            - COMPLETED
            - REJECTED
            - OVERRIDE
            - RECALLED
            - MINIMUM_MET
            - OMITTED_BY_CONDITION
        createdAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
        conditionSearchId:
          type: integer
          format: int64
        conditionSearchName:
          type: string
        conditionFilterType:
          type: string
          enum:
            - INCLUDE
            - EXCLUDE
        conditionEvaluationResult:
          type: boolean
        conditionEvaluatedAt:
          type: string
          format: date-time
        conditionEventsMatched:
          type: integer
          format: int32
        conditionTotalEvents:
          type: integer
          format: int32
        conditional:
          type: boolean
        omittedByCondition:
          type: boolean
    SignoffFeedbackReportDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - FEEDBACK_REPORT
            - TASK_LIST
            - TRAINING_OBSERVATION
            - PHASE_ENROLLMENT
        subject:
          $ref: '#/components/schemas/UserDto'
        author:
          $ref: '#/components/schemas/UserDto'
        phaseId:
          type: integer
          format: int64
        phaseName:
          type: string
        trainingDate:
          type: string
          format: date
        submissionNumber:
          type: integer
          format: int32
    SignoffPhaseEnrollmentDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        type:
          type: string
          enum:
            - FEEDBACK_REPORT
            - TASK_LIST
            - TRAINING_OBSERVATION
            - PHASE_ENROLLMENT
        user:
          $ref: '#/components/schemas/UserDto'
        primaryTrainingOfficer:
          $ref: '#/components/schemas/UserDto'
        phaseId:
          type: integer
          format: int64
        phaseName:
          type: string
        startDate:
          type: string
          format: date
        projectedEndDate:
          type: string
          format: date
        actualEndDate:
          type: string
          format: date
        status:
          type: string
          enum:
            - SCHEDULED
            - IN_PROGRESS
            - SUBMITTED
            - WAITING_SIGNOFF
            - COMPLETE
            - CANCELLED
        minTrainingHours:
          type: integer
          format: int32
    SignoffLevelUserDto:
      type: object
      properties:
        id:
          type: integer
          format: int64
        user:
          $ref: '#/components/schemas/UserDto'
        isRequired:
          type: boolean
        isReviewer:
          type: boolean
        statusDate:
          type: string
          format: date-time
        comment:
          type: string
        status:
          type: string
          enum:
            - NOT_SENT
            - NOT_STARTED
            - PENDING
            - COMPLETED
            - REJECTED
            - OVERRIDE
            - RECALLED
            - MINIMUM_MET
            - OMITTED_BY_CONDITION

````