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

# List Reviewed Bugs

> Retrieve a paginated list of reviewed bugs for your project.

<Info>
  **Permission Required**: `project:read-runs`
</Info>

Retrieve a paginated list of reviewed bugs for your project.

This endpoint returns the project-wide bug review feed (bugs that have been
reviewed and tracked across runs). To list bugs detected during a single run,
use [List Run Bugs](/api-reference/runs/list-bugs) instead.

<Note>
  Returns `403` if the project does not have the `bug_review` feature enabled.
</Note>

## Query Parameters

<ParamField query="status" type="string" default="active">
  Filter by status: `active`, `archived`, or `all`
</ParamField>

<ParamField query="search" type="string">
  Free-text search across bug title, description, and reproduction steps
</ParamField>

<ParamField query="severity" type="string">
  Filter by severity: `low`, `medium`, `high`, or `critical`
</ParamField>

<ParamField query="category" type="string">
  Filter by bug category (e.g., `ui`, `gameplay`, `performance`)
</ParamField>

<ParamField query="sort_by" type="string">
  Field to sort by (e.g., `created_at`, `severity`, `occurrence_count`)
</ParamField>

<ParamField query="sort_order" type="string">
  Sort direction: `asc` or `desc`
</ParamField>

<ParamField query="page" type="integer" default="0">
  Page number (0-indexed)
</ParamField>

<ParamField query="page_size" type="integer" default="20">
  Results per page (1-100)
</ParamField>

## Response

<ResponseField name="data" type="BugSummary[]" required>
  Array of bug summary objects
</ResponseField>

<ResponseField name="pagination" type="object" required>
  Pagination metadata (`page`, `page_size`, `total_count`, `total_pages`)
</ResponseField>

### BugSummary Object

<ResponseField name="id" type="string" required>
  Unique bug identifier (consistent across runs)
</ResponseField>

<ResponseField name="project_id" type="string" required>
  Project the bug belongs to
</ResponseField>

<ResponseField name="title" type="string" required>
  Short bug title
</ResponseField>

<ResponseField name="description" type="string" required>
  Detailed description of the bug
</ResponseField>

<ResponseField name="reproduction_steps" type="string" required>
  Steps to reproduce the bug
</ResponseField>

<ResponseField name="severity" type="string" required>
  Severity level: `low`, `medium`, `high`, `critical`
</ResponseField>

<ResponseField name="category" type="string" required>
  Bug category (e.g., `ui`, `gameplay`, `performance`)
</ResponseField>

<ResponseField name="confidence" type="string" required>
  Detection confidence: `low`, `medium`, `high`
</ResponseField>

<ResponseField name="tags" type="string[]" required>
  Tags assigned to the bug
</ResponseField>

<ResponseField name="details" type="object">
  Additional bug-specific metadata, or `null`
</ResponseField>

<ResponseField name="status" type="string" required>
  Bug status: `active` or `archived`
</ResponseField>

<ResponseField name="suppress_reporting" type="boolean" required>
  Whether reporting for this bug is suppressed
</ResponseField>

<ResponseField name="occurrence_count" type="integer" required>
  Number of times this bug has been observed across runs
</ResponseField>

<ResponseField name="created_at" type="string" required>
  ISO 8601 timestamp when the bug was first reviewed
</ResponseField>

<ResponseField name="created_by" type="string">
  Who created/reviewed the bug
</ResponseField>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  curl -X GET "https://nunu.ai/api/v1/project/your-project-id/bugs?status=active&severity=high&page=0&page_size=20" \
    -H "X-Api-Key: YOUR_API_TOKEN"
  ```

  ```typescript JavaScript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  const response = await fetch(
    "https://nunu.ai/api/v1/project/your-project-id/bugs?status=active&severity=high",
    { headers: { "X-Api-Key": process.env.NUNU_API_TOKEN } }
  );
  const data = await response.json();
  ```

  ```python Python theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  import requests, os

  response = requests.get(
      "https://nunu.ai/api/v1/project/your-project-id/bugs",
      headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
      params={"status": "active", "severity": "high", "page": 0, "page_size": 20},
  )
  data = response.json()
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
  {
    "data": [
      {
        "id": "bug_8a1b2c3d",
        "project_id": "test",
        "title": "Inventory icon flickers when opening menu",
        "description": "When the inventory menu is opened quickly after a level transition, the inventory icon briefly flickers in and out.",
        "reproduction_steps": "1. Complete a level. 2. Press the inventory button immediately after the transition.",
        "severity": "medium",
        "category": "ui",
        "confidence": "high",
        "tags": ["ui", "menu"],
        "details": null,
        "status": "active",
        "suppress_reporting": false,
        "occurrence_count": 4,
        "created_at": "2026-04-01T10:00:00.000000+00:00",
        "created_by": "reviewer@example.com"
      }
    ],
    "pagination": {
      "page": 0,
      "page_size": 20,
      "total_count": 1,
      "total_pages": 1
    }
  }
  ```
</ResponseExample>


## OpenAPI

````yaml GET /project/{projectId}/bugs
openapi: 3.1.0
info:
  title: nunu.ai API
  description: >-
    The nunu.ai Public API allows you to programmatically interact with your
    projects, manage test runs, and upload builds.
  version: 1.0.0
servers:
  - url: https://nunu.ai/api/v1
security:
  - apiKeyAuth: []
paths:
  /project/{projectId}/bugs:
    parameters:
      - name: projectId
        in: path
        required: true
        schema:
          type: string
        description: >-
          The project ID. You can copy it from the project settings page or the
          project URL in the dashboard.
    get:
      tags:
        - Bugs
      summary: List Reviewed Bugs
      description: Retrieve a paginated list of reviewed bugs for your project.
      operationId: listReviewedBugs
      parameters:
        - name: status
          in: query
          description: Filter by status
          schema:
            type: string
            enum:
              - active
              - archived
              - all
            default: active
        - name: search
          in: query
          description: Free-text search across title/description/reproduction steps
          schema:
            type: string
        - name: severity
          in: query
          description: Filter by severity
          schema:
            type: string
            enum:
              - low
              - medium
              - high
              - critical
        - name: category
          in: query
          description: Filter by bug category
          schema:
            type: string
        - name: sort_by
          in: query
          description: Field to sort by
          schema:
            type: string
        - name: sort_order
          in: query
          description: Sort direction
          schema:
            type: string
            enum:
              - asc
              - desc
        - name: page
          in: query
          description: Page number (0-indexed)
          schema:
            type: integer
            default: 0
        - name: page_size
          in: query
          description: Results per page (1-100)
          schema:
            type: integer
            default: 20
            minimum: 1
            maximum: 100
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReviewedBugsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - bug review feature disabled or missing permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ListReviewedBugsResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ReviewedBugSummary'
        pagination:
          $ref: '#/components/schemas/Pagination'
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
        details:
          type: object
    ReviewedBugSummary:
      type: object
      properties:
        id:
          type: string
        project_id:
          type: string
        title:
          type: string
        description:
          type: string
        reproduction_steps:
          type: string
        severity:
          type: string
          enum:
            - low
            - medium
            - high
            - critical
        category:
          type: string
        confidence:
          type: string
          enum:
            - low
            - medium
            - high
        tags:
          type: array
          items:
            type: string
        details:
          type: object
          nullable: true
        status:
          type: string
          enum:
            - active
            - archived
        suppress_reporting:
          type: boolean
        occurrence_count:
          type: integer
        created_at:
          type: string
          format: date-time
        created_by:
          type: string
          nullable: true
    Pagination:
      type: object
      properties:
        page:
          type: integer
        page_size:
          type: integer
        total_count:
          type: integer
        total_pages:
          type: integer
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: API key for authentication

````