Skip to content
Dashboard

Get a comment by ID

client.feedback.comments.retrieve(stringid, CommentRetrieveParams { featurebaseVersion } params?, RequestOptionsoptions?): Comment { id, author, changelogId, 14 more }
GET/v2/comments/{id}

Retrieves a single comment by its unique identifier.

Returns the full comment object including:

  • Author information
  • Voting stats (upvotes, downvotes, score)
  • Privacy and moderation status
  • Threading information (parentCommentId)
  • Timestamps

Response

Returns a comment object with all fields populated.

Errors

  • 400 - Invalid comment ID format
  • 404 - Comment not found or doesn’t belong to your organization
ParametersExpand Collapse
id: string

Comment unique identifier

params: CommentRetrieveParams { featurebaseVersion }
featurebaseVersion?: "2026-01-01.nova" | "2025-12-12.clover"

API version for this request. Defaults to your organization’s configured API version if not specified.

One of the following:
"2026-01-01.nova"
"2025-12-12.clover"
ReturnsExpand Collapse
Comment { id, author, changelogId, 14 more }
id: string

Unique identifier

author: Author | null
id: string | null

Author unique identifier

name: string

Author display name

profilePicture: string | null

Author profile picture URL

type: "admin" | "customer" | "guest" | 3 more

Type of user who authored the comment

One of the following:
"admin"
"customer"
"guest"
"integration"
"bot"
"lead"
changelogId: string | null

Changelog ID this comment belongs to

content: string

Comment content in HTML format

createdAt: string

ISO 8601 timestamp when created

downvotes: number

Number of downvotes

inReview: boolean

Whether the comment is in review

isDeleted: boolean

Whether the comment is deleted

isPinned: boolean

Whether the comment is pinned

isPrivate: boolean

Whether the comment is private

isSpam: boolean

Whether the comment is spam

object: "comment"

Object type identifier

parentCommentId: string | null

Parent comment ID for replies, null for root comments

postId: string | null

Post ID this comment belongs to

score: number

Net score (upvotes - downvotes)

updatedAt: string

ISO 8601 timestamp when updated

upvotes: number

Number of upvotes

Get a comment by ID

import Featurebase from 'featurebase-node';

const client = new Featurebase({
  apiKey: process.env['FEATUREBASE_API_KEY'], // This is the default and can be omitted
});

const comment = await client.feedback.comments.retrieve('507f1f77bcf86cd799439011');

console.log(comment.id);
{
  "id": "507f1f77bcf86cd799439011",
  "author": {
    "id": "507f1f77bcf86cd799439011",
    "name": "John Doe",
    "profilePicture": "https://cdn.example.com/avatars/john.png",
    "type": "customer"
  },
  "changelogId": "507f1f77bcf86cd799439013",
  "content": "<p>This is a great idea!</p>",
  "createdAt": "2023-12-12T00:00:00.000Z",
  "downvotes": 0,
  "inReview": false,
  "isDeleted": false,
  "isPinned": false,
  "isPrivate": false,
  "isSpam": false,
  "object": "comment",
  "parentCommentId": "507f1f77bcf86cd799439014",
  "postId": "507f1f77bcf86cd799439012",
  "score": 5,
  "updatedAt": "2023-12-13T00:00:00.000Z",
  "upvotes": 5
}
Returns Examples
{
  "id": "507f1f77bcf86cd799439011",
  "author": {
    "id": "507f1f77bcf86cd799439011",
    "name": "John Doe",
    "profilePicture": "https://cdn.example.com/avatars/john.png",
    "type": "customer"
  },
  "changelogId": "507f1f77bcf86cd799439013",
  "content": "<p>This is a great idea!</p>",
  "createdAt": "2023-12-12T00:00:00.000Z",
  "downvotes": 0,
  "inReview": false,
  "isDeleted": false,
  "isPinned": false,
  "isPrivate": false,
  "isSpam": false,
  "object": "comment",
  "parentCommentId": "507f1f77bcf86cd799439014",
  "postId": "507f1f77bcf86cd799439012",
  "score": 5,
  "updatedAt": "2023-12-13T00:00:00.000Z",
  "upvotes": 5
}