curl --request POST \
--url https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"author_email": "lenor@example.com",
"content": "We are looking into the issue.",
"comment_type": "note",
"mentions": [
{
"email": "daniel.kuhlman@example.com"
}
]
}
'import requests
url = "https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments"
payload = {
"author_email": "lenor@example.com",
"content": "We are looking into the issue.",
"comment_type": "note",
"mentions": [{ "email": "daniel.kuhlman@example.com" }]
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
author_email: 'lenor@example.com',
content: 'We are looking into the issue.',
comment_type: 'note',
mentions: [{email: 'daniel.kuhlman@example.com'}]
})
};
fetch('https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_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://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_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([
'author_email' => 'lenor@example.com',
'content' => 'We are looking into the issue.',
'comment_type' => 'note',
'mentions' => [
[
'email' => 'daniel.kuhlman@example.com'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <x-api-key>"
],
]);
$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://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments"
payload := strings.NewReader("{\n \"author_email\": \"lenor@example.com\",\n \"content\": \"We are looking into the issue.\",\n \"comment_type\": \"note\",\n \"mentions\": [\n {\n \"email\": \"daniel.kuhlman@example.com\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-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.post("https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"author_email\": \"lenor@example.com\",\n \"content\": \"We are looking into the issue.\",\n \"comment_type\": \"note\",\n \"mentions\": [\n {\n \"email\": \"daniel.kuhlman@example.com\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"author_email\": \"lenor@example.com\",\n \"content\": \"We are looking into the issue.\",\n \"comment_type\": \"note\",\n \"mentions\": [\n {\n \"email\": \"daniel.kuhlman@example.com\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"comment": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00002222",
"created_at": "2023-11-07T05:31:56Z",
"comment_type": "reply",
"content": "We are looking into the issue and will update you shortly.",
"author": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00001111",
"name": "Oliver Smith",
"email": "oliver@example.com",
"type": "user"
},
"attachments": [
{
"id": "aaaabbbb-cccc-dddd-eeee-ffff00003333",
"url": "https://example.com/attachments/screenshot.png",
"filename": "screenshot.png"
}
],
"mentions": [
{
"id": "aaaabbbb-cccc-dddd-eeee-ffff00005555",
"name": "Daniel Kuhlman",
"email": "daniel.kuhlman@example.com"
}
]
}
}Create comment
Creates a comment for a specific ticket.
curl --request POST \
--url https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <x-api-key>' \
--data '
{
"author_email": "lenor@example.com",
"content": "We are looking into the issue.",
"comment_type": "note",
"mentions": [
{
"email": "daniel.kuhlman@example.com"
}
]
}
'import requests
url = "https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments"
payload = {
"author_email": "lenor@example.com",
"content": "We are looking into the issue.",
"comment_type": "note",
"mentions": [{ "email": "daniel.kuhlman@example.com" }]
}
headers = {
"X-Api-Key": "<x-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Api-Key': '<x-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
author_email: 'lenor@example.com',
content: 'We are looking into the issue.',
comment_type: 'note',
mentions: [{email: 'daniel.kuhlman@example.com'}]
})
};
fetch('https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_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://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_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([
'author_email' => 'lenor@example.com',
'content' => 'We are looking into the issue.',
'comment_type' => 'note',
'mentions' => [
[
'email' => 'daniel.kuhlman@example.com'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <x-api-key>"
],
]);
$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://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments"
payload := strings.NewReader("{\n \"author_email\": \"lenor@example.com\",\n \"content\": \"We are looking into the issue.\",\n \"comment_type\": \"note\",\n \"mentions\": [\n {\n \"email\": \"daniel.kuhlman@example.com\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Api-Key", "<x-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.post("https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments")
.header("X-Api-Key", "<x-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"author_email\": \"lenor@example.com\",\n \"content\": \"We are looking into the issue.\",\n \"comment_type\": \"note\",\n \"mentions\": [\n {\n \"email\": \"daniel.kuhlman@example.com\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetodesk.com/api/external/v2/tickets/{ticket_id}/comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"author_email\": \"lenor@example.com\",\n \"content\": \"We are looking into the issue.\",\n \"comment_type\": \"note\",\n \"mentions\": [\n {\n \"email\": \"daniel.kuhlman@example.com\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"comment": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00002222",
"created_at": "2023-11-07T05:31:56Z",
"comment_type": "reply",
"content": "We are looking into the issue and will update you shortly.",
"author": {
"id": "aaaabbbb-cccc-dddd-eeee-ffff00001111",
"name": "Oliver Smith",
"email": "oliver@example.com",
"type": "user"
},
"attachments": [
{
"id": "aaaabbbb-cccc-dddd-eeee-ffff00003333",
"url": "https://example.com/attachments/screenshot.png",
"filename": "screenshot.png"
}
],
"mentions": [
{
"id": "aaaabbbb-cccc-dddd-eeee-ffff00005555",
"name": "Daniel Kuhlman",
"email": "daniel.kuhlman@example.com"
}
]
}
}{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Path Parameters
ID of the ticket. You can use either the ticket ID (UUID) or ticket number (sequential number) interchangeably. Refer to Getting Ticket ID section for detailed instructions.
Body
Email address of the person creating the comment.
"lenor@example.com"
Content for the comment.
"We are looking into the issue."
The type of the comment. Defaults to reply.
reply, note "note"
Optional list of users to mention in the comment. Mentions are only supported when comment_type is note. For inline placement, include @Full Name for each mentioned user in content.
Hide child attributes
Hide child attributes
Email address of the user to mention. The user must be active in the same organization.
"daniel.kuhlman@example.com"
Response
Created - Comment created successfully
Hide child attributes
Hide child attributes
"aaaabbbb-cccc-dddd-eeee-ffff00002222"
"reply"
"We are looking into the issue and will update you shortly."