---
title: "List issues"
method: GET
path: "/gh/{ownerKeyOrId}/projects/{projectKeyOrId}/issues"
tags: ["Issues"]
---

# List issues

`GET /gh/{ownerKeyOrId}/projects/{projectKeyOrId}/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.

## Path parameters

- `ownerKeyOrId` string, required — Repository owner name (login) or workspace ID
- `projectKeyOrId` string, required — Repository name or project ID

## Query parameters

- `page[limit]` integer — Maximum number of items to return (1-100)
- `page[offset]` integer, nullable — Number of items to skip
- `category` union — Filter by issue category
  - string[]
  - 'bug' | 'vulnerability' | 'structure' | 'duplication' | 'security_hotspot' | 'performance' | 'documentation' | 'type_check' | 'style' | 'anti_pattern' | 'accessibility' | 'dead_code' | 'lint' | 'secret' | 'dependency_alert'
- `level` union — Filter by issue level
  - string[]
  - 'high' | 'medium' | 'low' | 'note' | 'fmt'
- `status` union — Filter by issue status (defaults to open)
  - string[]
  - 'open' | 'ignored'
- `tool` union — Filter by tool name
  - string[]
  - string

## Response `200`

List issues for the project

- IssueList
  - `data` MiniIssue[], required
    - `id` string, required
    - `fingerprint` string, required
    - `tool` string, required
    - `ruleKey` string, required
    - `message` string, required
    - `category` 'bug' | 'vulnerability' | 'structure' | 'duplication' | 'security_hotspot' | 'performance' | 'documentation' | 'type_check' | 'style' | 'anti_pattern' | 'accessibility' | 'dead_code' | 'lint' | 'secret' | 'dependency_alert', required
    - `level` 'high' | 'medium' | 'low' | 'note' | 'fmt', required
    - `status` 'open' | 'ignored', required
    - `documentationUrl` string, uri
    - `location` object, required
      - `path` string, required
      - `startLine` integer
      - `endLine` integer
  - `meta` object, required
    - `hasMore` boolean, required — Whether there are more items available beyond this page

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `429` — Rate Limit Exceeded
- `500` — Internal Server Error

---

[API](https://skmtc.dev/qlty/apis/qlty-api.md) · [All operations](https://skmtc.dev/qlty/apis/qlty-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/qlty/qlty-api/revisions/b61e0586adfe/schema)
