Appearance
Aggregated comments across all project components
GET
/projects/{projectId}/comments
Returns paginated comments from all components in the project, with triage status counts. Different row shape from component comments — includes component_id/component_name but omits some triage attribution fields. Uses Project#paginated_comments (NOT CommentQueryService).
Authorizations
cookieAuth
Type
API Key (cookie: _vulcan_session)
or
tokenAuth
Personal access token authentication. Send via Authorization header: Authorization: Token vulcan_xxx. Tokens are SHA-256 hashed server-side (never stored in plaintext). Scopes: read (GET), write (mutations), admin (everything). Create tokens via Settings → API Tokens in the web UI.
Type
HTTP (token)
Parameters
Query Parameters
triage_status
Filter comments by triage disposition. Defaults to "pending" — the triage table opens on undispositioned comments. Use "all" to return comments in any status.
Type
string
Valid values
"all""pending""concur""concur_with_comment""non_concur""duplicate""informational""needs_clarification""withdrawn""addressed_by"Example
"pending"Default
"pending"page
Page number for paginated results (1-based).
Type
integer
Example
1Minimum
1Default
1per_page
Number of items to return per page.
Type
integer
Example
25Minimum
1Maximum
1000Default
25section
Filter by requirement section (fixtext, check_content, etc.).
Type
string
Example
"fixtext"component_id
Filter to a specific component within the project.
Type
integer
author_id
Filter by comment author.
Type
integer
q
Text search within comment content.
Type
string
resolved
Filter by resolved state (true/false/all).
Type
string
Valid values
"true""false""all"Example
"false"Responses
Paginated project comment rows with status counts
application/json
JSON "rows": [ { "id": 26, "rule_displayed_name": "PHOS-03-000038", "component_id": 1, "component_name": "Photon OS 3", "triage_status": "pending", "comment": "This requirement needs clarification.", "responses_count": 0, "reactions": { "up": 0, "down": 0, "mine": null } } ], "pagination": { "page": 1, "per_page": 25, "total": 3 }, "status_counts": { "pending": 1, "concur": 1, "informational": 1 }
{
}