Update Comments
curl --request POST \
--url https://api.velt.dev/v2/commentannotations/comments/update \
--header 'Content-Type: application/json' \
--header 'x-velt-api-key: <x-velt-api-key>' \
--header 'x-velt-auth-token: <x-velt-auth-token>' \
--data '
{
"data": {
"organizationId": "<string>",
"documentId": "<string>",
"annotationId": "<string>",
"commentIds": [
123
],
"updatedData": {
"commentText": "<string>",
"commentHtml": "<string>",
"context": {},
"isCommentResolverUsed": true,
"isCommentTextAvailable": true,
"from": {},
"taggedUserContacts": [
{
"text": "<string>",
"userId": "<string>",
"contact": {
"email": "<string>",
"name": "<string>",
"userId": "<string>"
}
}
],
"attachments": [
{
"attachmentId": 123,
"name": "<string>",
"bucketPath": "<string>",
"size": 123,
"type": "<string>",
"url": "<string>",
"thumbnail": "<string>",
"mimeType": "<string>",
"metadata": {}
}
]
}
}
}
'import requests
url = "https://api.velt.dev/v2/commentannotations/comments/update"
payload = { "data": {
"organizationId": "<string>",
"documentId": "<string>",
"annotationId": "<string>",
"commentIds": [123],
"updatedData": {
"commentText": "<string>",
"commentHtml": "<string>",
"context": {},
"isCommentResolverUsed": True,
"isCommentTextAvailable": True,
"from": {},
"taggedUserContacts": [
{
"text": "<string>",
"userId": "<string>",
"contact": {
"email": "<string>",
"name": "<string>",
"userId": "<string>"
}
}
],
"attachments": [
{
"attachmentId": 123,
"name": "<string>",
"bucketPath": "<string>",
"size": 123,
"type": "<string>",
"url": "<string>",
"thumbnail": "<string>",
"mimeType": "<string>",
"metadata": {}
}
]
}
} }
headers = {
"x-velt-api-key": "<x-velt-api-key>",
"x-velt-auth-token": "<x-velt-auth-token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-velt-api-key': '<x-velt-api-key>',
'x-velt-auth-token': '<x-velt-auth-token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
data: {
organizationId: '<string>',
documentId: '<string>',
annotationId: '<string>',
commentIds: [123],
updatedData: {
commentText: '<string>',
commentHtml: '<string>',
context: {},
isCommentResolverUsed: true,
isCommentTextAvailable: true,
from: {},
taggedUserContacts: [
{
text: '<string>',
userId: '<string>',
contact: {email: '<string>', name: '<string>', userId: '<string>'}
}
],
attachments: [
{
attachmentId: 123,
name: '<string>',
bucketPath: '<string>',
size: 123,
type: '<string>',
url: '<string>',
thumbnail: '<string>',
mimeType: '<string>',
metadata: {}
}
]
}
}
})
};
fetch('https://api.velt.dev/v2/commentannotations/comments/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.velt.dev/v2/commentannotations/comments/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'organizationId' => '<string>',
'documentId' => '<string>',
'annotationId' => '<string>',
'commentIds' => [
123
],
'updatedData' => [
'commentText' => '<string>',
'commentHtml' => '<string>',
'context' => [
],
'isCommentResolverUsed' => true,
'isCommentTextAvailable' => true,
'from' => [
],
'taggedUserContacts' => [
[
'text' => '<string>',
'userId' => '<string>',
'contact' => [
'email' => '<string>',
'name' => '<string>',
'userId' => '<string>'
]
]
],
'attachments' => [
[
'attachmentId' => 123,
'name' => '<string>',
'bucketPath' => '<string>',
'size' => 123,
'type' => '<string>',
'url' => '<string>',
'thumbnail' => '<string>',
'mimeType' => '<string>',
'metadata' => [
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-velt-api-key: <x-velt-api-key>",
"x-velt-auth-token: <x-velt-auth-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.velt.dev/v2/commentannotations/comments/update"
payload := strings.NewReader("{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"annotationId\": \"<string>\",\n \"commentIds\": [\n 123\n ],\n \"updatedData\": {\n \"commentText\": \"<string>\",\n \"commentHtml\": \"<string>\",\n \"context\": {},\n \"isCommentResolverUsed\": true,\n \"isCommentTextAvailable\": true,\n \"from\": {},\n \"taggedUserContacts\": [\n {\n \"text\": \"<string>\",\n \"userId\": \"<string>\",\n \"contact\": {\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"userId\": \"<string>\"\n }\n }\n ],\n \"attachments\": [\n {\n \"attachmentId\": 123,\n \"name\": \"<string>\",\n \"bucketPath\": \"<string>\",\n \"size\": 123,\n \"type\": \"<string>\",\n \"url\": \"<string>\",\n \"thumbnail\": \"<string>\",\n \"mimeType\": \"<string>\",\n \"metadata\": {}\n }\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-velt-api-key", "<x-velt-api-key>")
req.Header.Add("x-velt-auth-token", "<x-velt-auth-token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.velt.dev/v2/commentannotations/comments/update")
.header("x-velt-api-key", "<x-velt-api-key>")
.header("x-velt-auth-token", "<x-velt-auth-token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"annotationId\": \"<string>\",\n \"commentIds\": [\n 123\n ],\n \"updatedData\": {\n \"commentText\": \"<string>\",\n \"commentHtml\": \"<string>\",\n \"context\": {},\n \"isCommentResolverUsed\": true,\n \"isCommentTextAvailable\": true,\n \"from\": {},\n \"taggedUserContacts\": [\n {\n \"text\": \"<string>\",\n \"userId\": \"<string>\",\n \"contact\": {\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"userId\": \"<string>\"\n }\n }\n ],\n \"attachments\": [\n {\n \"attachmentId\": 123,\n \"name\": \"<string>\",\n \"bucketPath\": \"<string>\",\n \"size\": 123,\n \"type\": \"<string>\",\n \"url\": \"<string>\",\n \"thumbnail\": \"<string>\",\n \"mimeType\": \"<string>\",\n \"metadata\": {}\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velt.dev/v2/commentannotations/comments/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-velt-api-key"] = '<x-velt-api-key>'
request["x-velt-auth-token"] = '<x-velt-auth-token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"annotationId\": \"<string>\",\n \"commentIds\": [\n 123\n ],\n \"updatedData\": {\n \"commentText\": \"<string>\",\n \"commentHtml\": \"<string>\",\n \"context\": {},\n \"isCommentResolverUsed\": true,\n \"isCommentTextAvailable\": true,\n \"from\": {},\n \"taggedUserContacts\": [\n {\n \"text\": \"<string>\",\n \"userId\": \"<string>\",\n \"contact\": {\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"userId\": \"<string>\"\n }\n }\n ],\n \"attachments\": [\n {\n \"attachmentId\": 123,\n \"name\": \"<string>\",\n \"bucketPath\": \"<string>\",\n \"size\": 123,\n \"type\": \"<string>\",\n \"url\": \"<string>\",\n \"thumbnail\": \"<string>\",\n \"mimeType\": \"<string>\",\n \"metadata\": {}\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Comment updated successfully.",
"data": {
"607395": {
"success": true,
"id": 607395,
"message": "Updated successfully"
}
}
}
}
Comments
Update Comments
POST
/
v2
/
commentannotations
/
comments
/
update
Update Comments
curl --request POST \
--url https://api.velt.dev/v2/commentannotations/comments/update \
--header 'Content-Type: application/json' \
--header 'x-velt-api-key: <x-velt-api-key>' \
--header 'x-velt-auth-token: <x-velt-auth-token>' \
--data '
{
"data": {
"organizationId": "<string>",
"documentId": "<string>",
"annotationId": "<string>",
"commentIds": [
123
],
"updatedData": {
"commentText": "<string>",
"commentHtml": "<string>",
"context": {},
"isCommentResolverUsed": true,
"isCommentTextAvailable": true,
"from": {},
"taggedUserContacts": [
{
"text": "<string>",
"userId": "<string>",
"contact": {
"email": "<string>",
"name": "<string>",
"userId": "<string>"
}
}
],
"attachments": [
{
"attachmentId": 123,
"name": "<string>",
"bucketPath": "<string>",
"size": 123,
"type": "<string>",
"url": "<string>",
"thumbnail": "<string>",
"mimeType": "<string>",
"metadata": {}
}
]
}
}
}
'import requests
url = "https://api.velt.dev/v2/commentannotations/comments/update"
payload = { "data": {
"organizationId": "<string>",
"documentId": "<string>",
"annotationId": "<string>",
"commentIds": [123],
"updatedData": {
"commentText": "<string>",
"commentHtml": "<string>",
"context": {},
"isCommentResolverUsed": True,
"isCommentTextAvailable": True,
"from": {},
"taggedUserContacts": [
{
"text": "<string>",
"userId": "<string>",
"contact": {
"email": "<string>",
"name": "<string>",
"userId": "<string>"
}
}
],
"attachments": [
{
"attachmentId": 123,
"name": "<string>",
"bucketPath": "<string>",
"size": 123,
"type": "<string>",
"url": "<string>",
"thumbnail": "<string>",
"mimeType": "<string>",
"metadata": {}
}
]
}
} }
headers = {
"x-velt-api-key": "<x-velt-api-key>",
"x-velt-auth-token": "<x-velt-auth-token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-velt-api-key': '<x-velt-api-key>',
'x-velt-auth-token': '<x-velt-auth-token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
data: {
organizationId: '<string>',
documentId: '<string>',
annotationId: '<string>',
commentIds: [123],
updatedData: {
commentText: '<string>',
commentHtml: '<string>',
context: {},
isCommentResolverUsed: true,
isCommentTextAvailable: true,
from: {},
taggedUserContacts: [
{
text: '<string>',
userId: '<string>',
contact: {email: '<string>', name: '<string>', userId: '<string>'}
}
],
attachments: [
{
attachmentId: 123,
name: '<string>',
bucketPath: '<string>',
size: 123,
type: '<string>',
url: '<string>',
thumbnail: '<string>',
mimeType: '<string>',
metadata: {}
}
]
}
}
})
};
fetch('https://api.velt.dev/v2/commentannotations/comments/update', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.velt.dev/v2/commentannotations/comments/update",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'data' => [
'organizationId' => '<string>',
'documentId' => '<string>',
'annotationId' => '<string>',
'commentIds' => [
123
],
'updatedData' => [
'commentText' => '<string>',
'commentHtml' => '<string>',
'context' => [
],
'isCommentResolverUsed' => true,
'isCommentTextAvailable' => true,
'from' => [
],
'taggedUserContacts' => [
[
'text' => '<string>',
'userId' => '<string>',
'contact' => [
'email' => '<string>',
'name' => '<string>',
'userId' => '<string>'
]
]
],
'attachments' => [
[
'attachmentId' => 123,
'name' => '<string>',
'bucketPath' => '<string>',
'size' => 123,
'type' => '<string>',
'url' => '<string>',
'thumbnail' => '<string>',
'mimeType' => '<string>',
'metadata' => [
]
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-velt-api-key: <x-velt-api-key>",
"x-velt-auth-token: <x-velt-auth-token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.velt.dev/v2/commentannotations/comments/update"
payload := strings.NewReader("{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"annotationId\": \"<string>\",\n \"commentIds\": [\n 123\n ],\n \"updatedData\": {\n \"commentText\": \"<string>\",\n \"commentHtml\": \"<string>\",\n \"context\": {},\n \"isCommentResolverUsed\": true,\n \"isCommentTextAvailable\": true,\n \"from\": {},\n \"taggedUserContacts\": [\n {\n \"text\": \"<string>\",\n \"userId\": \"<string>\",\n \"contact\": {\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"userId\": \"<string>\"\n }\n }\n ],\n \"attachments\": [\n {\n \"attachmentId\": 123,\n \"name\": \"<string>\",\n \"bucketPath\": \"<string>\",\n \"size\": 123,\n \"type\": \"<string>\",\n \"url\": \"<string>\",\n \"thumbnail\": \"<string>\",\n \"mimeType\": \"<string>\",\n \"metadata\": {}\n }\n ]\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-velt-api-key", "<x-velt-api-key>")
req.Header.Add("x-velt-auth-token", "<x-velt-auth-token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.velt.dev/v2/commentannotations/comments/update")
.header("x-velt-api-key", "<x-velt-api-key>")
.header("x-velt-auth-token", "<x-velt-auth-token>")
.header("Content-Type", "application/json")
.body("{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"annotationId\": \"<string>\",\n \"commentIds\": [\n 123\n ],\n \"updatedData\": {\n \"commentText\": \"<string>\",\n \"commentHtml\": \"<string>\",\n \"context\": {},\n \"isCommentResolverUsed\": true,\n \"isCommentTextAvailable\": true,\n \"from\": {},\n \"taggedUserContacts\": [\n {\n \"text\": \"<string>\",\n \"userId\": \"<string>\",\n \"contact\": {\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"userId\": \"<string>\"\n }\n }\n ],\n \"attachments\": [\n {\n \"attachmentId\": 123,\n \"name\": \"<string>\",\n \"bucketPath\": \"<string>\",\n \"size\": 123,\n \"type\": \"<string>\",\n \"url\": \"<string>\",\n \"thumbnail\": \"<string>\",\n \"mimeType\": \"<string>\",\n \"metadata\": {}\n }\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.velt.dev/v2/commentannotations/comments/update")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-velt-api-key"] = '<x-velt-api-key>'
request["x-velt-auth-token"] = '<x-velt-auth-token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"data\": {\n \"organizationId\": \"<string>\",\n \"documentId\": \"<string>\",\n \"annotationId\": \"<string>\",\n \"commentIds\": [\n 123\n ],\n \"updatedData\": {\n \"commentText\": \"<string>\",\n \"commentHtml\": \"<string>\",\n \"context\": {},\n \"isCommentResolverUsed\": true,\n \"isCommentTextAvailable\": true,\n \"from\": {},\n \"taggedUserContacts\": [\n {\n \"text\": \"<string>\",\n \"userId\": \"<string>\",\n \"contact\": {\n \"email\": \"<string>\",\n \"name\": \"<string>\",\n \"userId\": \"<string>\"\n }\n }\n ],\n \"attachments\": [\n {\n \"attachmentId\": 123,\n \"name\": \"<string>\",\n \"bucketPath\": \"<string>\",\n \"size\": 123,\n \"type\": \"<string>\",\n \"url\": \"<string>\",\n \"thumbnail\": \"<string>\",\n \"mimeType\": \"<string>\",\n \"metadata\": {}\n }\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"status": "success",
"message": "Comment updated successfully.",
"data": {
"607395": {
"success": true,
"id": 607395,
"message": "Updated successfully"
}
}
}
}
Use this API to update comments within a specific CommentAnnotation.
Endpoint
POST https://api.velt.dev/v2/commentannotations/comments/update
Headers
string
required
Your API key.
string
required
Your Auth Token.
Body
Params
object
required
Show properties
Show properties
string
required
Organization ID
string
required
Document ID
string
required
Comment Annotation ID
number[]
required
Comment IDs
object
required
Comment data
Show properties
Show properties
string
Comment content in plain text string
string
Comment content in HTML string
object
Custom key/value metadata object. This is used to store any additional information about the comment.
boolean
Use this for self-hosting comments data. Set this as true if you are comments resolver data provider in the SDK.
boolean
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.
User
required
User object from whom the comment is added
object[]
object[]
Array of attachments to include with the comment. See Attachment for full schema details.
Show properties
Show properties
number
required
Unique identifier for the attachment
string
File name of the attachment
string
Path to the file in storage bucket
number
File size in bytes
string
File type (e.g., “image”, “video”, “document”)
string
Download URL of the attachment
string
Thumbnail URL of the attachment
string
MIME type of the attachment (e.g., “image/png”, “video/mp4”)
object
Custom metadata for the attachment (e.g., dimensions, timestamps, etc.)
Example Requests
1. Update comment in a CommentAnnotation by organizationId, documentId, annotationId and commentId
{
"data": {
"organizationId": "yourOrganizationId",
"documentId": "yourDocumentId",
"annotationId": "yourAnnotationId",
"commentIds": [
153783,
607395
],
"updatedData": {
"commentText": "Sample Updated Comment",
"commentHtml": "<div>Hello Updated</div>"
}
}
}
2. Update comment with attachments
{
"data": {
"organizationId": "yourOrganizationId",
"documentId": "yourDocumentId",
"annotationId": "yourAnnotationId",
"commentIds": [
123456
],
"updatedData": {
"commentText": "Updated comment text with new attachments",
"commentHtml": "<p>Updated comment text with <em>new attachments</em></p>",
"attachments": [
{
"attachmentId": 100001,
"name": "updated-screenshot.png",
"bucketPath": "attachments/org-123/doc-456/updated-screenshot.png",
"size": 1536000,
"type": "image",
"url": "https://storage.googleapis.com/bucket/updated-screenshot.png",
"thumbnail": "https://storage.googleapis.com/bucket/updated-screenshot_thumb.png",
"mimeType": "image/png",
"metadata": {
"width": 1920,
"height": 1080,
"updatedAt": 1696122000000
}
}
]
}
}
}
Response
Success Response
{
"result": {
"status": "success",
"message": "Comment updated successfully.",
"data": {
"607395": {
"success": true,
"id": 607395,
"message": "Updated successfully"
}
}
}
}
Failure Response
{
"error": {
"message": "ERROR_MESSAGE",
"status": "INVALID_ARGUMENT"
}
}
{
"result": {
"status": "success",
"message": "Comment updated successfully.",
"data": {
"607395": {
"success": true,
"id": 607395,
"message": "Updated successfully"
}
}
}
}
Was this page helpful?
⌘I

