Create a comment
Adds a new comment to a specified team resource. The request body must include the content field, with optional fields for context, page_id, or card_id.
curl --request POST \
--url https://api.superthread.com/v1/{team_id}/comments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "Good point!",
"content_format": "html",
"is_internal": true,
"schema": 1,
"card_id": "431",
"page_id": "5",
"context": "highlighted text"
}
'import requests
url = "https://api.superthread.com/v1/{team_id}/comments"
payload = {
"content": "Good point!",
"content_format": "html",
"is_internal": True,
"schema": 1,
"card_id": "431",
"page_id": "5",
"context": "highlighted text"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
content: 'Good point!',
content_format: 'html',
is_internal: true,
schema: 1,
card_id: '431',
page_id: '5',
context: 'highlighted text'
})
};
fetch('https://api.superthread.com/v1/{team_id}/comments', 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",
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([
'content' => 'Good point!',
'content_format' => 'html',
'is_internal' => true,
'schema' => 1,
'card_id' => '431',
'page_id' => '5',
'context' => '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"
payload := strings.NewReader("{\n \"content\": \"Good point!\",\n \"content_format\": \"html\",\n \"is_internal\": true,\n \"schema\": 1,\n \"card_id\": \"431\",\n \"page_id\": \"5\",\n \"context\": \"highlighted text\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.superthread.com/v1/{team_id}/comments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"content\": \"Good point!\",\n \"content_format\": \"html\",\n \"is_internal\": true,\n \"schema\": 1,\n \"card_id\": \"431\",\n \"page_id\": \"5\",\n \"context\": \"highlighted text\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superthread.com/v1/{team_id}/comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"content\": \"Good point!\",\n \"content_format\": \"html\",\n \"is_internal\": true,\n \"schema\": 1,\n \"card_id\": \"431\",\n \"page_id\": \"5\",\n \"context\": \"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".
Body
Comment object that needs to be created
102400"Good point!"
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 Whether the comment is internal. Internal comments are visible only to members and hidden from guests and guest-readers.
1
"431"
"5"
"highlighted text"
Metadata about a health status update
Show child attributes
Show child attributes
Response
comment created
Show child attributes
Show child attributes
curl --request POST \
--url https://api.superthread.com/v1/{team_id}/comments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "Good point!",
"content_format": "html",
"is_internal": true,
"schema": 1,
"card_id": "431",
"page_id": "5",
"context": "highlighted text"
}
'import requests
url = "https://api.superthread.com/v1/{team_id}/comments"
payload = {
"content": "Good point!",
"content_format": "html",
"is_internal": True,
"schema": 1,
"card_id": "431",
"page_id": "5",
"context": "highlighted text"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
content: 'Good point!',
content_format: 'html',
is_internal: true,
schema: 1,
card_id: '431',
page_id: '5',
context: 'highlighted text'
})
};
fetch('https://api.superthread.com/v1/{team_id}/comments', 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",
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([
'content' => 'Good point!',
'content_format' => 'html',
'is_internal' => true,
'schema' => 1,
'card_id' => '431',
'page_id' => '5',
'context' => '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"
payload := strings.NewReader("{\n \"content\": \"Good point!\",\n \"content_format\": \"html\",\n \"is_internal\": true,\n \"schema\": 1,\n \"card_id\": \"431\",\n \"page_id\": \"5\",\n \"context\": \"highlighted text\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.superthread.com/v1/{team_id}/comments")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"content\": \"Good point!\",\n \"content_format\": \"html\",\n \"is_internal\": true,\n \"schema\": 1,\n \"card_id\": \"431\",\n \"page_id\": \"5\",\n \"context\": \"highlighted text\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superthread.com/v1/{team_id}/comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"content\": \"Good point!\",\n \"content_format\": \"html\",\n \"is_internal\": true,\n \"schema\": 1,\n \"card_id\": \"431\",\n \"page_id\": \"5\",\n \"context\": \"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
}
}