- You can add comments on an elemement, text or page.
- You can provide HTML or text content.
- Additional filters can be applied using location IDs.
Endpoint
POST https://api.velt.dev/v2/commentannotations/add
Headers
Your API key.
Your Auth Token.
Body
Params
Show properties
Show properties
Organization ID
Document ID
Show properties
Show properties
Custom Annotation ID. If not provided, Velt will generate a unique ID for the annotation.
Target Element
Show properties
Show properties
Element DOM Id
Target Text. Provide this if you want to add comment annotation on the provided text content.
Occurrence. Provide this if you want to add comment annotation on a text content.
Select All Content. Provide this if you want to select and add comment annotation on the entire text content of the target elementId.
Array of Comment Data
Show properties
Show properties
Custom Comment ID. If not provided, Velt will generate a unique ID for the comment.
Comment content in plain text string. To tag users, wrap their userId in double curly braces like
{{userId}}. The frontend will replace this with the user’s name.Comment content in HTML string. To tag users, wrap their userId in double curly braces like
{{userId}}. The frontend will replace this with the user’s name.Custom key/value metadata object. This is used to store any additional information about the comment.
Use this for self-hosting comments data. Set this as true if you are comments resolver data provider in the SDK.
Use this for self-hosting comments data. Set this as true if this comment will have text content. Sometimes, comments might only have attachments and in that case, set this as false.
When enabled, adding comments via the REST API will trigger in-app notifications, email notifications to relevant users and also trigger webhooks matching the SDK’s native notification behavior. Default: false.
User object from whom the comment is added
Created At timestamp (in milliseconds since epoch).
Last Updated timestamp (in milliseconds since epoch).
Array of tagged user contacts. Use this field to provide information about users tagged in the comment. Each userId wrapped in
{{userId}} in commentText or commentHtml should have a corresponding entry here so the frontend can replace it with the user’s name.Show properties
Show properties
User ID of the tagged user. This should match the userId used in
{{userId}} syntax within commentText or commentHtml.Status
Show properties
Show properties
Status ID
Status Name
Type. Must be one of:
default, ongoing, or terminal.Text and comment pin color
Background color on the status indicator
Raw SVG of the icon. Either
svg or iconUrl is required.Icon URL. Either
svg or iconUrl is required.User object to whom the comment is assigned
Custom key/value metadata object
Created At timestamp (in milliseconds since epoch).
Last Updated timestamp (in milliseconds since epoch).
Example Requests
Add comment annotation by organizationId, documentId and location
Copy
Ask AI
{
"data": {
"organizationId": "yourOrganizationId",
"documentId": "yourDocumentId",
"commentAnnotations": [
{
"location": {
"id": "yourLocationId",
"locationName": "yourLocationName"
},
"targetElement": {
"elementId": "yourElementId",
"targetText": "Your Target Text",
"occurrence": 1,
"selectAllContent": false
},
"commentData": [
{
"commentText": "Sample Comment",
"commentHtml": "<div>Sample Comment</div>",
"from": {
"userId": "yourUserId",
"name": "yourUserName",
"email": "yourUserEmail",
}
}
]
}
]
}
}
Add comment annotation with user tagging
Copy
Ask AI
{
"data": {
"organizationId": "acme-corp",
"documentId": "design-mockup-v2",
"commentAnnotations": [
{
"commentData": [
{
"triggerNotification": true,
"commentText": "Hey {{user_sarah_chen}}, can you review this color scheme? I think we should use a darker shade for better contrast.",
"commentHtml": "<p>Hey {{user_sarah_chen}}, can you review this color scheme? I think we should use a darker shade for better contrast.</p>",
"from": {
"userId": "user_john_smith",
"name": "John Smith",
"email": "john.smith@acme-corp.com"
},
"taggedUserContacts": [
{
"userId": "user_sarah_chen",
"contact": {
"userId": "user_sarah_chen",
"name": "Sarah Chen",
"email": "sarah.chen@acme-corp.com"
}
}
]
}
]
}
]
}
}
{{user_sarah_chen}} in the commentText will be replaced with “Sarah Chen” on the frontend, displaying as “Hey Sarah Chen, can you review this color scheme? I think we should use a darker shade for better contrast.”
Response
Success Response
Copy
Ask AI
{
"result": {
"status": "success",
"message": "Comment Annotation(s) added successfully.",
"data": {
"-O0mpUziLcBwzREvZKs6": {
"success": true,
"annotationId": "-O0mpUziLcBwzREvZKs6",
"commentIds": [
126535
],
"message": "Added Successfully"
}
}
}
}
Failure Response
Copy
Ask AI
{
"error": {
"message": "ERROR_MESSAGE",
"status": "INVALID_ARGUMENT"
}
}
Copy
Ask AI
{
"result": {
"status": "success",
"message": "Comment Annotation(s) added successfully.",
"data": {
"-O0mpUziLcBwzREvZKs6": {
"success": true,
"annotationId": "-O0mpUziLcBwzREvZKs6",
"commentIds": [
126535
],
"message": "Added Successfully"
}
}
}
}

