Skip to main content

Comments API

Unified comment system for discussions across products, issues, and access requests.

Endpoints Overview

MethodEndpointDescription
GET/catalog/spaces/{slug}/products/{product_id}/commentsList product comments
POST/catalog/spaces/{slug}/products/{product_id}/commentsCreate product comment
PUT/catalog/spaces/{slug}/products/{product_id}/comments/{id}Update product comment
DELETE/catalog/spaces/{slug}/products/{product_id}/comments/{id}Delete product comment
GET/requests/{request_id}/commentsList request comments
POST/requests/{request_id}/commentsCreate request comment
POST/issues/tickets/{ticket_id}/commentsCreate ticket comment
PATCH/issues/comments/{comment_id}Update ticket comment
DELETE/issues/comments/{comment_id}Delete ticket comment

Product Comments

List Comments

GET /catalog/spaces/{slug}/products/{product_id}/comments

Query Parameters

ParameterTypeDescription
pageintegerPage number (default: 1)
sizeintegerItems per page (default: 20)
searchstringSearch in comment content

Response

[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"content_markdown": "This table is great for tracking user events!",
"user": {
"id": "...",
"full_name": "Alice Johnson",
"avatar_url": "..."
},
"parent_id": null,
"replies": [
{
"id": "...",
"content_markdown": "@bob.smith agreed, we use it daily.",
"user": {...},
"parent_id": "550e8400-e29b-41d4-a716-446655440000",
"replies": [],
"created_at": "2026-01-15T11:00:00Z"
}
],
"created_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-01-15T10:30:00Z"
}
]

Create Comment

POST /catalog/spaces/{slug}/products/{product_id}/comments

Request Body

{
"content_markdown": "Great documentation! @jane.doe can you review?",
"parent_id": null
}
FieldTypeRequiredDescription
content_markdownstringYesMarkdown content with @mention support
parent_iduuidNoParent comment ID for replies

@Mentions

Use @username format in content to mention users. Mentioned users receive notifications.

{
"content_markdown": "Hey @alice.johnson, this needs your attention."
}

Update Comment

PUT /catalog/spaces/{slug}/products/{product_id}/comments/{comment_id}

Only the comment author can update their comment.

Request Body

{
"content_markdown": "Updated content here"
}

Delete Comment

DELETE /catalog/spaces/{slug}/products/{product_id}/comments/{comment_id}

Only the author or space admins can delete comments.

Response

{
"message": "Comment deleted successfully"
}

Issue Comments

Create Ticket Comment

POST /issues/tickets/{ticket_id}/comments

Request Body

{
"content_markdown": "Investigating issue now. @bob.smith found the root cause.",
"reply_to_id": null
}
FieldTypeRequiredDescription
content_markdownstringYesComment content
reply_to_iduuidNoParent comment for threaded replies

Update Ticket Comment

PATCH /issues/comments/{comment_id}
{
"content_markdown": "Updated investigation findings."
}

Delete Ticket Comment

DELETE /issues/comments/{comment_id}

Returns 204 No Content on success.


Access Request Comments

List Request Comments

GET /requests/{request_id}/comments

Response

Returns a list of comments on the access request with user details.


Create Request Comment

POST /requests/{request_id}/comments

Request Body

{
"content_markdown": "Approved. @manager.name please confirm."
}

Error Responses

StatusDescription
400Invalid comment content or parent ID
403Not authorized to edit/delete comment
404Comment or parent entity not found