Skip to content

Comments

Retrieve project discussions, including resolved threads and their replies. The REST API currently supports reading comments only.

Endpoints

List project comments # GET/api/v1/{hash}/comments

The key needs Read projects (project:read), and its owner needs View projects permission for the target project in the key's Team workspace. See Permissions.

Request

http
GET /api/v1/{hash}/comments
bash
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/comments"

The unversioned /api/{hash}/comments route is an alias. Use /api/v1 for new integrations.

There are no filtering or pagination parameters. The response includes threads from every board, including resolved threads, regardless of the token owner's personal comment filters. Reading comments does not mark them as read or change personal comment settings.

This request counts toward the overall workspace API quota of 60 requests per minute per purchased seat.

Response

Returns 200 OK with an array of threads. Threads and their nested replies retain their stored order. An empty project discussion returns [].

json
[
  {
    "id": "thread-1",
    "author": {
      "id": 42,
      "fullName": "Alex Morgan"
    },
    "content": "<p>Can we clarify this character's motivation?</p>",
    "createdAt": "2026-09-16T09:00:00.000Z",
    "updatedAt": null,
    "resolved": false,
    "position": {
      "id": "board-1",
      "type": "boards",
      "x": 120,
      "y": 240
    },
    "replies": [
      {
        "id": "reply-1",
        "author": {
          "id": 57,
          "fullName": null
        },
        "content": "<p>I'll add some context to the opening scene.</p>",
        "createdAt": "2026-09-16T09:15:00.000Z",
        "updatedAt": null
      }
    ]
  }
]

Fields shared by threads and replies:

FieldTypeDescription
idStringComment ID.
author.idNumberAuthor's user ID, retained even when their name is unavailable.
author.fullNameString or nullCurrent name for a workspace member or a guest of this project. null when the author no longer participates or their user record is unavailable.
contentStringComment content as HTML.
createdAtString or nullCreation timestamp, when available.
updatedAtString or nullLast edit timestamp, or null when no edit timestamp is stored.

Additional thread fields:

FieldTypeDescription
resolvedBooleanWhether the thread is resolved.
positionObjectBoard location: id is the board ID, type is boards, and x and y are canvas coordinates.
repliesArrayReplies in their stored order, or [] when there are none.

The response reflects the current project comments, including recent edits. It does not include personal read/unread state or project version metadata.

Common errors

StatusMeaning
401Missing or invalid API key.
403API access, token permission, workspace access, or project permission denied.
404Project not found.
429Workspace API quota exhausted.