Edit a comment
Modifies the fields of an existing comment. Only the original author can modify comments. The request body should specify the fields to update, such as content, status, or context. Omitted fields will remain unchanged. The status field accepts the following values: resolved, open, orphaned.
curl --request PATCH \
--url https://api.superthread.com/v1/{team_id}/comments/{comment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "Sounds great!",
"content_format": "html",
"schema": 1,
"context": "new highlighted text"
}
'import requests
url = "https://api.superthread.com/v1/{team_id}/comments/{comment_id}"
payload = {
"content": "Sounds great!",
"content_format": "html",
"schema": 1,
"context": "new highlighted text"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
content: 'Sounds great!',
content_format: 'html',
schema: 1,
context: 'new highlighted text'
})
};
fetch('https://api.superthread.com/v1/{team_id}/comments/{comment_id}', 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.superthread.com/v1/{team_id}/comments/{comment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'content' => 'Sounds great!',
'content_format' => 'html',
'schema' => 1,
'context' => 'new highlighted text'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.superthread.com/v1/{team_id}/comments/{comment_id}"
payload := strings.NewReader("{\n \"content\": \"Sounds great!\",\n \"content_format\": \"html\",\n \"schema\": 1,\n \"context\": \"new highlighted text\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <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.patch("https://api.superthread.com/v1/{team_id}/comments/{comment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"content\": \"Sounds great!\",\n \"content_format\": \"html\",\n \"schema\": 1,\n \"context\": \"new highlighted text\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superthread.com/v1/{team_id}/comments/{comment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"content\": \"Sounds great!\",\n \"content_format\": \"html\",\n \"schema\": 1,\n \"context\": \"new highlighted text\"\n}"
response = http.request(request)
puts response.read_body{
"comment": {
"id": "42",
"content": "Good point!",
"is_internal": true,
"schema": 1,
"page_id": "431",
"card_id": "433",
"user_id": "u-dsu0j19",
"user": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"user_updated": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"team_id": "u-dsu0j19",
"time_created": 1608742037016,
"time_updated": 1608742037016,
"reactions": [
{
"id": "sweat_smile",
"unicode": "<string>",
"members": [
{
"user_id": "<string>",
"time_created": 1608742037016,
"variation": "<string>"
}
]
}
],
"health_update_metadata": {
"previous": "on_track",
"new": "on_track",
"time": 1608742037016
},
"context": "attach context to a comment",
"participants": [
"<string>"
],
"children": {
"cursor": "dmsjqh9d8w1hdjosjaasda",
"count": 14,
"child_comments": [
{
"id": "42",
"content": "Good point!",
"is_internal": true,
"schema": 1,
"page_id": "431",
"card_id": "433",
"user_id": "u-dsu0j19",
"user": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"user_updated": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"team_id": "u-dsu0j19",
"time_created": 1608742037016,
"time_updated": 1608742037016,
"reactions": [
{
"id": "sweat_smile",
"unicode": "<string>",
"members": [
{
"user_id": "<string>",
"time_created": 1608742037016,
"variation": "<string>"
}
]
}
],
"health_update_metadata": {
"previous": "on_track",
"new": "on_track",
"time": 1608742037016
},
"parent_id": "1"
}
]
}
}
}{
"error": {
"id": "err5f744ab",
"code": 403,
"sec": "SEC:000-00014",
"message": "You do not have access to this resource",
"date": 1608742037016
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Team ID is an alphanumerical string that identifies a Team. This is externally referred to as a "Workspace".
Comment ID is a numerical string that identifies a Comment.
Body
Comment fields that need to be updated. All omitted fields are left unmodified.
102400"Sounds great!"
Format of the content field. When set to 'markdown', the server converts the content from GitHub Flavored Markdown to HTML before storage. Defaults to 'html'.
html, markdown 1
"new highlighted text"
resolved, open, orphaned Metadata about a health status update
Show child attributes
Show child attributes
Response
updated comment response
Show child attributes
Show child attributes
curl --request PATCH \
--url https://api.superthread.com/v1/{team_id}/comments/{comment_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "Sounds great!",
"content_format": "html",
"schema": 1,
"context": "new highlighted text"
}
'import requests
url = "https://api.superthread.com/v1/{team_id}/comments/{comment_id}"
payload = {
"content": "Sounds great!",
"content_format": "html",
"schema": 1,
"context": "new highlighted text"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
content: 'Sounds great!',
content_format: 'html',
schema: 1,
context: 'new highlighted text'
})
};
fetch('https://api.superthread.com/v1/{team_id}/comments/{comment_id}', 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.superthread.com/v1/{team_id}/comments/{comment_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'content' => 'Sounds great!',
'content_format' => 'html',
'schema' => 1,
'context' => 'new highlighted text'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.superthread.com/v1/{team_id}/comments/{comment_id}"
payload := strings.NewReader("{\n \"content\": \"Sounds great!\",\n \"content_format\": \"html\",\n \"schema\": 1,\n \"context\": \"new highlighted text\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <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.patch("https://api.superthread.com/v1/{team_id}/comments/{comment_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"content\": \"Sounds great!\",\n \"content_format\": \"html\",\n \"schema\": 1,\n \"context\": \"new highlighted text\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superthread.com/v1/{team_id}/comments/{comment_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"content\": \"Sounds great!\",\n \"content_format\": \"html\",\n \"schema\": 1,\n \"context\": \"new highlighted text\"\n}"
response = http.request(request)
puts response.read_body{
"comment": {
"id": "42",
"content": "Good point!",
"is_internal": true,
"schema": 1,
"page_id": "431",
"card_id": "433",
"user_id": "u-dsu0j19",
"user": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"user_updated": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"team_id": "u-dsu0j19",
"time_created": 1608742037016,
"time_updated": 1608742037016,
"reactions": [
{
"id": "sweat_smile",
"unicode": "<string>",
"members": [
{
"user_id": "<string>",
"time_created": 1608742037016,
"variation": "<string>"
}
]
}
],
"health_update_metadata": {
"previous": "on_track",
"new": "on_track",
"time": 1608742037016
},
"context": "attach context to a comment",
"participants": [
"<string>"
],
"children": {
"cursor": "dmsjqh9d8w1hdjosjaasda",
"count": 14,
"child_comments": [
{
"id": "42",
"content": "Good point!",
"is_internal": true,
"schema": 1,
"page_id": "431",
"card_id": "433",
"user_id": "u-dsu0j19",
"user": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"user_updated": {
"user_id": "uDsu0j19",
"type": "user",
"source": {
"type": "oauth",
"client_id": "oczapier",
"import_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"agent_id": "bf1b9f76-3f95-42fc-bd7f-050b2f5f4197",
"email_addr": "somebody@example.com",
"email_verified": false,
"on_behalf_of": "<string>"
}
},
"team_id": "u-dsu0j19",
"time_created": 1608742037016,
"time_updated": 1608742037016,
"reactions": [
{
"id": "sweat_smile",
"unicode": "<string>",
"members": [
{
"user_id": "<string>",
"time_created": 1608742037016,
"variation": "<string>"
}
]
}
],
"health_update_metadata": {
"previous": "on_track",
"new": "on_track",
"time": 1608742037016
},
"parent_id": "1"
}
]
}
}
}{
"error": {
"id": "err5f744ab",
"code": 403,
"sec": "SEC:000-00014",
"message": "You do not have access to this resource",
"date": 1608742037016
}
}