List comments
<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>
Returns the app's open comment threads with all their comments, newest first. Set include_resolved to true to include resolved threads too.
Threads are ordered by when they were created, newest first. A page holds up to limit threads, 500 by default. While has_more is true, request the next page with cursor set to next_cursor, and send nothing else beside it. A cursor works for 24 hours, only on this app. A thread created after you start paging shows up on a fresh first page, not in later pages.
Screenshot links in the response work for one hour. Call this again for fresh ones, or use Create comment screenshot link for a link that lasts a year.
This is limited to 600 requests per minute per app, shared by List comments and List mentionable users. A signed-in session has its own limit, and every personal access token for the workspace shares one. Some workspaces have a different limit. Every request that counts against the limit gets X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (Unix time in seconds) headers, and a 429 also gets Retry-After in seconds. If the limiter itself is unavailable, requests go through without these headers.
<Note>Call this as an editor of the app, with a personal access token sent as a Bearer token or from a signed-in session. A read-only token works here. Workspace API keys aren't accepted.</Note>
<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time.</Warning>
Path parameters
ID of the app.
ID of the app.
Query parameters
Set to true to include resolved threads. Defaults to false.
Set to true to include resolved threads. Defaults to false.
Threads per page, 1 to 500. Defaults to 500.
Threads per page, 1 to 500. Defaults to 500.
next_cursor from the previous page. Send it on its own: it carries include_resolved and limit, so sending either beside it returns a 400.
next_cursor from the previous page. Send it on its own: it carries include_resolved and limit, so sending either beside it returns a 400.
Response
One page of the app's comment threads, newest first.
Example response
{
"items": [
{
"comment": {
"content": "Make this button match the header color.",
"created_date": "2026-10-05T09:14:22.512000Z",
"id": "68e2b7c4d4f0a9001c3e5a1c",
"reactions": {},
"sender_id": "6820f41be7b91d003c45a20a",
"sender_name": "Dana Levi"
},
"reactor_names": {},
"replies": [],
"thread": {
"anchor": {
"element_tag": "button",
"source_location": "pages/Pricing.jsx:42:8"
},
"created_date": "2026-10-05T09:14:22.512000Z",
"id": "68e2b7c1d4f0a9001c3e5a17",
"last_activity_at": "2026-10-05T09:14:22.512000Z",
"message_count": 0,
"page_path": "/pricing",
"unread": true
}
}
],
"next_cursor": "gAAAAABn7vJ0q2kX"
}Changes
Changed in 1 of the 28 revisions of this API.1
- ○
endpoint added
endpoint-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ○
Of the 28 revisions, 1 has no diff computed.