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

# List project issues

> List a project's tracked issues: bugs and warnings surfaced by QA runs, deduplicated across runs with occurrence counts and triage status. Open issues sort first, then by most recently seen.



## OpenAPI

````yaml /openapi.json get /v1/projects/{projectId}/issues
openapi: 3.0.0
info:
  title: TestArmy API
  version: 1.0.0
  description: >-
    AI-powered browser automation API for QA testing. Automate web testing
    workflows using natural language prompts.
servers:
  - url: https://tester.army/api
    description: Production API server
security: []
paths:
  /v1/projects/{projectId}/issues:
    get:
      tags:
        - Projects
      summary: List project issues
      description: >-
        List a project's tracked issues: bugs and warnings surfaced by QA runs,
        deduplicated across runs with occurrence counts and triage status. Open
        issues sort first, then by most recently seen.
      parameters:
        - schema:
            type: string
            description: Project ID or shortId
          required: true
          description: Project ID or shortId
          name: projectId
          in: path
        - schema:
            type: string
            enum:
              - open
              - resolved
              - false_positive
            description: Filter to one triage status.
          required: false
          description: Filter to one triage status.
          name: status
          in: query
        - schema:
            type: string
            enum:
              - production
              - staging
              - preview
              - custom
            description: Filter to issues seen on one deployment environment.
          required: false
          description: Filter to issues seen on one deployment environment.
          name: environment
          in: query
        - schema:
            type: string
            pattern: ^(?:[1-9]|[1-9][0-9]|100)$
            description: Maximum issues to return (1-100, default 50).
          required: false
          description: Maximum issues to return (1-100, default 50).
          name: limit
          in: query
      responses:
        '200':
          description: List of project issues
          content:
            application/json:
              schema:
                type: object
                properties:
                  issues:
                    type: array
                    items:
                      $ref: '#/components/schemas/ProjectIssue'
                  count:
                    type: integer
                  openCount:
                    type: integer
                    description: Total open issues in the project.
                required:
                  - issues
                  - count
                  - openCount
        '400':
          description: Bad Request - Invalid input parameters
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '404':
          description: Project not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '429':
          description: Too Many Requests - Usage limit exceeded
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
        '504':
          description: Gateway Timeout - Test execution exceeded time limit
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    description: Error code or type
                  message:
                    type: string
                    description: Human-readable error message
                required:
                  - error
                  - message
      security:
        - bearerAuth: []
components:
  schemas:
    ProjectIssue:
      type: object
      properties:
        id:
          type: string
          format: uuid
        projectId:
          type: string
          format: uuid
        testId:
          type: string
          nullable: true
          format: uuid
        status:
          type: string
          enum:
            - open
            - resolved
            - false_positive
          description: >-
            Triage status. Resolved issues reopen automatically if a run
            surfaces them again.
        issueType:
          type: string
          enum:
            - issue
            - warning
        source:
          type: string
          enum:
            - agent_report
            - step_failure
          description: >-
            How the tracker learned about the issue: an explicit agent report or
            a failed test step.
        name:
          type: string
        description:
          type: string
        url:
          type: string
          nullable: true
        severity:
          type: integer
          nullable: true
          description: 1 (low) to 5 (critical), when reported.
        category:
          type: string
          nullable: true
        reproductionSteps:
          type: array
          nullable: true
          items:
            type: string
        expectedBehavior:
          type: string
          nullable: true
        actualBehavior:
          type: string
          nullable: true
        screenshotUrl:
          type: string
          nullable: true
        environment:
          type: string
          enum:
            - production
            - staging
            - preview
            - custom
          description: Deployment bucket the issue is tracked on.
        environmentName:
          type: string
          description: >-
            Resolved environment label ("Production", "Staging", "QA EU", ...).
            Issues are tracked per environment: the same bug on different
            environments is separate issues.
        occurrenceCount:
          type: integer
          description: Number of runs that surfaced this issue.
        firstSeenRunId:
          type: string
          nullable: true
          format: uuid
        lastSeenRunId:
          type: string
          nullable: true
          format: uuid
        lastSeenAt:
          type: string
          format: date-time
        resolvedAt:
          type: string
          nullable: true
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
      required:
        - id
        - projectId
        - testId
        - status
        - issueType
        - source
        - name
        - description
        - url
        - severity
        - category
        - reproductionSteps
        - expectedBehavior
        - actualBehavior
        - screenshotUrl
        - environment
        - environmentName
        - occurrenceCount
        - firstSeenRunId
        - lastSeenRunId
        - lastSeenAt
        - resolvedAt
        - createdAt
        - updatedAt
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: API key authentication using Bearer token format

````