---
title: "List an issue's comments"
method: GET
path: "/v1/issues/{idOrNumber}/comments"
tags: ["Issues"]
---

# List an issue's comments

`GET /v1/issues/{idOrNumber}/comments`

## Request

- Base URL: `https://docs.grepr.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.grepr.ai/v1/issues/{idOrNumber}/comments`
- Auth: one of:
  - API key in header `GREPR-API-KEY`
  - OpenID Connect (`https://grepr-prod.us.auth0.com/.well-known/openid-configuration`)

Returns an issue's comments, newest first.

## Path parameters

- `idOrNumber` string, required

## Query parameters

- `cursor` string
- `limit` integer

## Response `200`

Comments retrieved

- IssueCommentsPage: A page of an issue's comments, newest first.
  - `items` IssueComment[]: The comments on this page.
    - `author` IssueActor: Who made a change to an issue. An agent is named by its own id and the investigation it acted in, never by the service account it authenticated as, since several agents may share one.
      - `agentId` string: The agent, for an agent actor; null otherwise.
      - `id` string: The person's user id, the agent's execution principal (its service account's token subject), or `system` for the server.
      - `investigationId` string: The investigation the agent acted in, for an agent actor; null otherwise.
      - `kind` 'PERSON' | 'AGENT' | 'SYSTEM': A person, an agent, or the server.
    - `body` string: The markdown body.
    - `channel` 'REST' | 'MCP' | 'SYSTEM': How a change reached the server.
    - `createdAt` string, date-time: When it was written.
    - `editedAt` string, date-time: When its author last changed the body, or null.
    - `guidance` boolean: Whether it is guidance, which agents weigh as advice.
    - `guidanceSetAt` string, date-time: When it was marked guidance, or null.
    - `guidanceSetBy` string: The user id of the person who marked it guidance, or null.
    - `id` string: The comment id.
    - `issueId` string: The issue it is on.
    - `lockedFieldProposal` string: The locked field the comment proposes changing, as named in a `FIELD_LOCKED` error (`priority`, `label:cost`), or null.
  - `nextCursor` string: Pass back as `cursor` for the next, older page; null on the last page.

## Other responses

- `400`: Malformed cursor
- `401`: Unauthorized
- `404`: Issue not found

---

[API](https://skmtc.dev/grepr/apis/grepr-api.md) - [All operations](https://skmtc.dev/grepr/apis/grepr-api/llms.txt) - [OpenAPI document](https://skmtc.dev/grepr/apis/grepr-api/revisions/2a5ce03a0bf0?raw)
