curl --request PUT \
--url https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "<string>"
}
'import requests
url = "https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}"
payload = { "text": "<string>" }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({text: '<string>'})
};
fetch('https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}', 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://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$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://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}"
payload := strings.NewReader("{\n \"text\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.put("https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"comments": [
{
"createdBy": {
"unavailable": true,
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"jobRoles": [
{
"workflowStep": {
"abbreviation": "<string>",
"id": 123,
"name": "<string>",
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
}
}
],
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"dateCreated": "2023-11-07T05:31:56Z",
"dateModified": "2023-11-07T05:31:56Z",
"id": "<string>",
"mentions": [
{
"mentionableGroup": {
"groupName": "<string>",
"groupReference": {
"uid": "3HYnHHLkTPJfMxBCDbPXFe"
}
},
"tag": "<string>",
"uidReference": {
"uid": "3HYnHHLkTPJfMxBCDbPXFe"
},
"userReferences": [
{
"unavailable": true,
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"jobRoles": [
{
"workflowStep": {
"abbreviation": "<string>",
"id": 123,
"name": "<string>",
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
}
}
],
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
}
]
}
],
"text": "<string>"
}
],
"createdBy": {
"unavailable": true,
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"jobRoles": [
{
"workflowStep": {
"abbreviation": "<string>",
"id": 123,
"name": "<string>",
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
}
}
],
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"dateCreated": "2023-11-07T05:31:56Z",
"dateEdited": "2023-11-07T05:31:56Z",
"dateModified": "2023-11-07T05:31:56Z",
"deleted": true,
"id": "<string>",
"references": {
"segmentId": "<string>",
"transGroupId": 1,
"commentedText": "<string>",
"conversationTitle": "<string>",
"conversationTitleOffset": 1,
"correlation": {
"role": "PARENT",
"uid": "<string>"
},
"jobPartUid": "<string>",
"taskId": "<string>"
},
"status": {
"by": {
"unavailable": true,
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"jobRoles": [
{
"workflowStep": {
"abbreviation": "<string>",
"id": 123,
"name": "<string>",
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
}
}
],
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"date": "2023-11-07T05:31:56Z"
},
"type": "<string>"
}Edit plain comment
curl --request PUT \
--url https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"text": "<string>"
}
'import requests
url = "https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}"
payload = { "text": "<string>" }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({text: '<string>'})
};
fetch('https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}', 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://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'text' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$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://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}"
payload := strings.NewReader("{\n \"text\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "<api-key>")
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.put("https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"text\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://cloud.memsource.com/web/api2/v3/jobs/{jobUid}/conversations/plains/{conversationId}/comments/{commentId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"text\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"comments": [
{
"createdBy": {
"unavailable": true,
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"jobRoles": [
{
"workflowStep": {
"abbreviation": "<string>",
"id": 123,
"name": "<string>",
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
}
}
],
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"dateCreated": "2023-11-07T05:31:56Z",
"dateModified": "2023-11-07T05:31:56Z",
"id": "<string>",
"mentions": [
{
"mentionableGroup": {
"groupName": "<string>",
"groupReference": {
"uid": "3HYnHHLkTPJfMxBCDbPXFe"
}
},
"tag": "<string>",
"uidReference": {
"uid": "3HYnHHLkTPJfMxBCDbPXFe"
},
"userReferences": [
{
"unavailable": true,
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"jobRoles": [
{
"workflowStep": {
"abbreviation": "<string>",
"id": 123,
"name": "<string>",
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
}
}
],
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
}
]
}
],
"text": "<string>"
}
],
"createdBy": {
"unavailable": true,
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"jobRoles": [
{
"workflowStep": {
"abbreviation": "<string>",
"id": 123,
"name": "<string>",
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
}
}
],
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"dateCreated": "2023-11-07T05:31:56Z",
"dateEdited": "2023-11-07T05:31:56Z",
"dateModified": "2023-11-07T05:31:56Z",
"deleted": true,
"id": "<string>",
"references": {
"segmentId": "<string>",
"transGroupId": 1,
"commentedText": "<string>",
"conversationTitle": "<string>",
"conversationTitleOffset": 1,
"correlation": {
"role": "PARENT",
"uid": "<string>"
},
"jobPartUid": "<string>",
"taskId": "<string>"
},
"status": {
"by": {
"unavailable": true,
"email": "<string>",
"firstName": "<string>",
"id": "<string>",
"jobRoles": [
{
"workflowStep": {
"abbreviation": "<string>",
"id": 123,
"name": "<string>",
"workflowLevel": 123,
"workflowStep": {
"id": "<string>",
"lqaEnabled": true,
"name": "<string>",
"order": 123,
"uid": "<string>"
}
}
}
],
"lastName": "<string>",
"uid": "<string>",
"userName": "<string>"
},
"date": "2023-11-07T05:31:56Z"
},
"type": "<string>"
}Authorizations
Get a token from auth/login endpoint and then pass it in the Authorization HTTP header in every subsequent API call. For more information visit our help center.
Path Parameters
UID of the job
ID of the plain conversation
ID of the comment to edit
Body
Edit comment request body
Text content of the comment. To trigger a mention notification, embed a tag using the exact wire format <@user:UID> for a specific user, <@group:GROUPNAME> for a predefined group (e.g. <@group:owners>, <@group:providers>), or <@group:WORKFLOW_STEP_UID> for a workflow step group. UID is the mentionable user's uid; GROUPNAME is the lowercase groupName field (not groupType) returned by the "List mentionable users" endpoint for non-workflow-step groups; WORKFLOW_STEP_UID is that same endpoint's groupReference.uid, since a workflow step's groupName is a human-readable display value and will not match the tag. Only uids/groupNames returned by that endpoint for this comment's job part are valid mention targets — any other value silently fails to produce a mention. Plain human-readable text such as "@owners" or "@username" is stored as inert text and does not resolve to a mention.
Response
Accepted
List of comments in the conversation
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Date the conversation was created
Date the conversation was last edited by a user
Date the conversation was last modified
Whether the conversation has been deleted
Unique identifier of the conversation
Show child attributes
Show child attributes
Show child attributes
Show child attributes
SEGMENT_TARGET
Was this page helpful?