---
title: "List triage issues for an app"
method: GET
path: "/app/{appId}/triageIssue"
tags: ["triage"]
---

# List triage issues for an app

`GET /app/{appId}/triageIssue`

## Request

- Base URL: `https://api.runway.team`
- URL: `https://api.runway.team/app/{appId}/triageIssue`
- Auth: API key in header `X-API-Key`

Returns a page of triage issues for the app. Requires Triage to be enabled on the app. Results are paginated: use `hasMore` and `total` in the response to page through with `limit` and `offset`.

## Path parameters

- `appId` string, required

## Query parameters

- `version` string
- `statusGroup` 'open' | 'closed'
- `status` 'new' | 'assigned' | 'fixRequested' | 'fixApproved' | 'reopened' | 'fixMerged' | 'fixRejected' | 'notAPriority'
- `source` 'runway' | 'pmTicket' | 'userReviews' | 'betaFeedback' | 'regressionTesting' | 'healthMetrics'
- `owner` string
- `reporter` string
- `destination` string
- `search` string
- `limit` integer
- `offset` integer

## Response `200`

A paginated list of triage issues for the app, filtered by the supplied query parameters

- object
  - `issues` TriageIssueEntity[], required
    - `id` string: Unique identifier for the issue
    - `appId` string
    - `title` string: Title for the issue. Always present: issues without their own title fall back to the text of their first source, then to "Triage issue <id>" — matching what the Runway UI displays.
    - `state` 'new' | 'assigned' | 'fixRequested' | 'fixApproved' | 'reopened' | 'fixMerged' | 'fixRejected' | 'notAPriority': Current state of the issue
    - `reporter` string, nullable: Email of the user who reported the issue
    - `assigneeUserIds` string[]: Emails of the people assigned. Agents are listed in assigneeAgentIds, not here
    - `assigneeAgentIds` string[]: Ids of the agents the issue is assigned to
    - `suggestedAssigneeUserIds` string[]: Additional candidates surfaced by the auto-assign automation
    - `sources` TriageIssueSource[]: The signals that contributed to this issue (Runway-reported, PM ticket, user reviews, regression test failures, health metrics, beta feedback)
      - `type` 'runway' | 'pmTicket' | 'userReviews' | 'betaFeedback' | 'regressionTesting' | 'healthMetrics', required: Origin of the source signal
      - `description` string: Human-readable description for this source (e.g. the reported message for `runway`, the failed test case for `regressionTesting`, the ticket description for `pmTicket`)
      - `version` string: Version string the source applies to, when known
      - `build` string: Build identifier the source applies to, when known
    - `relatedIssueIds` string[]
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `hasMore` boolean, required: Whether more issues exist beyond the current page
  - `total` integer, required: Total number of matching issues across all pages
  - `openCount` integer, required: Number of issues in an open state matching every filter except statusGroup
  - `closedCount` integer, required: Number of issues in a closed state matching every filter except statusGroup

## Other responses

- `400`: Bad request response
- `404`: Resource not found response

---

[API](https://skmtc.dev/runway/apis/runway-rest-api.md) - [All operations](https://skmtc.dev/runway/apis/runway-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/runway/apis/runway-rest-api/revisions/081109863a9a?raw)
