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

# List issues

> Retrieves a list of Issues associated with a Project. Supports JSON, newline-delimited JSON (`application/x-ndjson`), and CSV (`text/csv`) response formats via the `Accept` header.



## OpenAPI

````yaml https://api.qlty.sh/openapi.json get /gh/{ownerKeyOrId}/projects/{projectKeyOrId}/issues
openapi: 3.1.0
info:
  title: Qlty API
  version: 1.0.0
  description: >-
    The Qlty API is organized around REST. It provides predictable,
    resource-oriented URLs, accepts JSON-encoded request bodies, and returns
    JSON-encoded responses.
servers:
  - url: https://api.qlty.sh
security:
  - Bearer: []
tags:
  - name: Service
    description: Service status and API discovery operations
  - name: User
    description: Operations for the authenticated user
  - name: Workspaces
    description: Operations for managing workspaces
  - name: Projects
    description: Operations for managing projects
  - name: Issues
    description: Operations for managing issues
  - name: Metrics
    description: Operations for retrieving metrics
  - name: Components
    description: Operations for retrieving components
  - name: Coverage
    description: Operations for retrieving code coverage data
paths:
  /gh/{ownerKeyOrId}/projects/{projectKeyOrId}/issues:
    get:
      tags:
        - Issues
      summary: List issues
      description: >-
        Retrieves a list of Issues associated with a Project. Supports JSON,
        newline-delimited JSON (`application/x-ndjson`), and CSV (`text/csv`)
        response formats via the `Accept` header.
      operationId: listIssues
      parameters:
        - schema:
            type: string
            minLength: 3
            example: acme-corp
            description: Repository owner name (login) or workspace ID
          required: true
          description: Repository owner name (login) or workspace ID
          name: ownerKeyOrId
          in: path
        - schema:
            type: string
            minLength: 3
            example: my-repo
            description: Repository name or project ID
          required: true
          description: Repository name or project ID
          name: projectKeyOrId
          in: path
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            example: 20
            description: Maximum number of items to return (1-100)
          required: false
          description: Maximum number of items to return (1-100)
          name: page[limit]
          in: query
        - schema:
            type: integer
            nullable: true
            minimum: 0
            example: 0
            description: Number of items to skip
          required: false
          description: Number of items to skip
          name: page[offset]
          in: query
        - schema:
            anyOf:
              - type: array
                items:
                  type: string
                  enum:
                    - bug
                    - vulnerability
                    - structure
                    - duplication
                    - security_hotspot
                    - performance
                    - documentation
                    - type_check
                    - style
                    - anti_pattern
                    - accessibility
                    - dead_code
                    - lint
                    - secret
                    - dependency_alert
              - type: string
                enum:
                  - bug
                  - vulnerability
                  - structure
                  - duplication
                  - security_hotspot
                  - performance
                  - documentation
                  - type_check
                  - style
                  - anti_pattern
                  - accessibility
                  - dead_code
                  - lint
                  - secret
                  - dependency_alert
            description: Filter by issue category
          required: false
          description: Filter by issue category
          name: category
          in: query
        - schema:
            anyOf:
              - type: array
                items:
                  type: string
                  enum:
                    - high
                    - medium
                    - low
                    - note
                    - fmt
              - type: string
                enum:
                  - high
                  - medium
                  - low
                  - note
                  - fmt
            description: Filter by issue level
          required: false
          description: Filter by issue level
          name: level
          in: query
        - schema:
            anyOf:
              - type: array
                items:
                  type: string
                  enum:
                    - open
                    - ignored
              - type: string
                enum:
                  - open
                  - ignored
            default:
              - open
            description: Filter by issue status (defaults to open)
          required: false
          description: Filter by issue status (defaults to open)
          name: status
          in: query
        - schema:
            anyOf:
              - type: array
                items:
                  type: string
              - type: string
            description: Filter by tool name
          required: false
          description: Filter by tool name
          name: tool
          in: query
      responses:
        '200':
          description: List issues for the project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IssueList'
              example:
                data:
                  - id: 49b5e789-cff8-47d2-bd1c-72a469980e15
                    fingerprint: 3a1b2c3d4e5f6g7h8i9j
                    tool: eslint
                    ruleKey: no-unused-vars
                    message: Variable is defined but never used
                    category: lint
                    level: medium
                    status: open
                    documentationUrl: https://eslint.org/docs/rules/no-unused-vars
                    location:
                      path: src/components/Button.tsx
                      startLine: 15
                      endLine: 15
                meta:
                  hasMore: false
            application/x-ndjson:
              schema:
                type: string
                description: Newline-delimited JSON (NDJSON) format
            text/csv:
              schema:
                type: string
                description: CSV format with header row
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate Limit Exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    IssueList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/MiniIssue'
        meta:
          type: object
          properties:
            hasMore:
              type: boolean
              example: true
              description: Whether there are more items available beyond this page
          required:
            - hasMore
      required:
        - data
        - meta
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              status:
                type: string
                example: '400'
              title:
                type: string
                example: Bad Request
              detail:
                type: string
                example: The request was invalid.
            required:
              - status
              - title
              - detail
      required:
        - errors
    MiniIssue:
      type: object
      properties:
        id:
          type: string
          example: 550e8400-e29b-41d4-a716-446655440000
        fingerprint:
          type: string
          example: abc123def456
        tool:
          type: string
          example: eslint
        ruleKey:
          type: string
          example: no-unused-vars
        message:
          type: string
          example: '''foo'' is defined but never used.'
        category:
          type: string
          enum:
            - bug
            - vulnerability
            - structure
            - duplication
            - security_hotspot
            - performance
            - documentation
            - type_check
            - style
            - anti_pattern
            - accessibility
            - dead_code
            - lint
            - secret
            - dependency_alert
          example: lint
        level:
          type: string
          enum:
            - high
            - medium
            - low
            - note
            - fmt
          example: medium
        status:
          type: string
          enum:
            - open
            - ignored
          example: open
        documentationUrl:
          type: string
          format: uri
          example: https://eslint.org/docs/rules/no-unused-vars
        location:
          type: object
          properties:
            path:
              type: string
              example: src/index.ts
            startLine:
              type: integer
              example: 42
            endLine:
              type: integer
              example: 42
          required:
            - path
      required:
        - id
        - fingerprint
        - tool
        - ruleKey
        - message
        - category
        - level
        - status
        - location
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      description: Generate an API token at https://qlty.sh/user/settings/tokens

````