Get Ticket Comments
curl --request POST \
--url 'https://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_COMMENTS' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool": "ZENDESK_GET_TICKET_COMMENTS",
"parameters": {
"ticketId": "<string>",
"paginationParameters": {
"pageCursor": "<string>",
"limit": 123
}
}
}
'import requests
url = "https://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_COMMENTS"
payload = {
"tool": "ZENDESK_GET_TICKET_COMMENTS",
"parameters": {
"ticketId": "<string>",
"paginationParameters": {
"pageCursor": "<string>",
"limit": 123
}
}
}
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({
tool: 'ZENDESK_GET_TICKET_COMMENTS',
parameters: {
ticketId: '<string>',
paginationParameters: {pageCursor: '<string>', limit: 123}
}
})
};
fetch('https://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_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://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_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([
'tool' => 'ZENDESK_GET_TICKET_COMMENTS',
'parameters' => [
'ticketId' => '<string>',
'paginationParameters' => [
'pageCursor' => '<string>',
'limit' => 123
]
]
]),
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://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_COMMENTS"
payload := strings.NewReader("{\n \"tool\": \"ZENDESK_GET_TICKET_COMMENTS\",\n \"parameters\": {\n \"ticketId\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\",\n \"limit\": 123\n }\n }\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://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_COMMENTS")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool\": \"ZENDESK_GET_TICKET_COMMENTS\",\n \"parameters\": {\n \"ticketId\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\",\n \"limit\": 123\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_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 \"tool\": \"ZENDESK_GET_TICKET_COMMENTS\",\n \"parameters\": {\n \"ticketId\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\",\n \"limit\": 123\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"records": [
{
"id": 360000400857,
"type": "Comment",
"author_id": 360000020441,
"body": "Temporary ticket created while documenting ActionKit responses. Deleted right after.",
"html_body": "<div class=\"zd-comment\" dir=\"auto\"><p dir=\"auto\">Temporary ticket created while documenting ActionKit responses. Deleted right after.</p></div>",
"plain_body": "Temporary ticket created while documenting ActionKit responses. Deleted right after.",
"public": true,
"attachments": [],
"audit_id": 360000380729,
"via": {
"channel": "api",
"source": {
"from": {},
"to": {},
"rel": null
}
},
"created_at": "2026-10-16T05:54:37Z",
"metadata": {
"system": {
"client": "axios/0.24.0",
"ip_address": "203.0.113.10",
"transaction_id": "01M51MDM0R597S5YPXMHR46ANH",
"location": "Example City, United States",
"latitude": 39.0469,
"longitude": -77.4903
},
"custom": {},
"notifications_suppressed_for": [
360000020441
]
}
},
{
"id": 360000760993,
"type": "Comment",
"author_id": 360000040777,
"body": "Test comment from the ActionKit docs.",
"html_body": "<div class=\"zd-comment\" dir=\"auto\">Test comment from the ActionKit docs.</div>",
"plain_body": "Test comment from the ActionKit docs.",
"public": true,
"attachments": [],
"audit_id": 360000740913,
"via": {
"channel": "api",
"source": {
"from": {},
"to": {},
"rel": null
}
},
"created_at": "2026-10-16T05:54:39Z",
"metadata": {
"system": {
"client": "axios/0.24.0",
"ip_address": "203.0.113.10",
"transaction_id": "01M51MDP6JZJAPBNFB7G1T3MV2",
"location": "Example City, United States",
"latitude": 39.0469,
"longitude": -77.4903
},
"custom": {},
"notifications_suppressed_for": [
360000020441
]
}
}
],
"nextPageCursor": null
}Tools
Get Ticket Comments
POST
/
projects
/
{project_id}
/
tools
/
#ZENDESK_GET_TICKET_COMMENTS
Get Ticket Comments
curl --request POST \
--url 'https://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_COMMENTS' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool": "ZENDESK_GET_TICKET_COMMENTS",
"parameters": {
"ticketId": "<string>",
"paginationParameters": {
"pageCursor": "<string>",
"limit": 123
}
}
}
'import requests
url = "https://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_COMMENTS"
payload = {
"tool": "ZENDESK_GET_TICKET_COMMENTS",
"parameters": {
"ticketId": "<string>",
"paginationParameters": {
"pageCursor": "<string>",
"limit": 123
}
}
}
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({
tool: 'ZENDESK_GET_TICKET_COMMENTS',
parameters: {
ticketId: '<string>',
paginationParameters: {pageCursor: '<string>', limit: 123}
}
})
};
fetch('https://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_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://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_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([
'tool' => 'ZENDESK_GET_TICKET_COMMENTS',
'parameters' => [
'ticketId' => '<string>',
'paginationParameters' => [
'pageCursor' => '<string>',
'limit' => 123
]
]
]),
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://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_COMMENTS"
payload := strings.NewReader("{\n \"tool\": \"ZENDESK_GET_TICKET_COMMENTS\",\n \"parameters\": {\n \"ticketId\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\",\n \"limit\": 123\n }\n }\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://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_COMMENTS")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool\": \"ZENDESK_GET_TICKET_COMMENTS\",\n \"parameters\": {\n \"ticketId\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\",\n \"limit\": 123\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://actionkit.useparagon.com/projects/{project_id}/tools/#ZENDESK_GET_TICKET_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 \"tool\": \"ZENDESK_GET_TICKET_COMMENTS\",\n \"parameters\": {\n \"ticketId\": \"<string>\",\n \"paginationParameters\": {\n \"pageCursor\": \"<string>\",\n \"limit\": 123\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"records": [
{
"id": 360000400857,
"type": "Comment",
"author_id": 360000020441,
"body": "Temporary ticket created while documenting ActionKit responses. Deleted right after.",
"html_body": "<div class=\"zd-comment\" dir=\"auto\"><p dir=\"auto\">Temporary ticket created while documenting ActionKit responses. Deleted right after.</p></div>",
"plain_body": "Temporary ticket created while documenting ActionKit responses. Deleted right after.",
"public": true,
"attachments": [],
"audit_id": 360000380729,
"via": {
"channel": "api",
"source": {
"from": {},
"to": {},
"rel": null
}
},
"created_at": "2026-10-16T05:54:37Z",
"metadata": {
"system": {
"client": "axios/0.24.0",
"ip_address": "203.0.113.10",
"transaction_id": "01M51MDM0R597S5YPXMHR46ANH",
"location": "Example City, United States",
"latitude": 39.0469,
"longitude": -77.4903
},
"custom": {},
"notifications_suppressed_for": [
360000020441
]
}
},
{
"id": 360000760993,
"type": "Comment",
"author_id": 360000040777,
"body": "Test comment from the ActionKit docs.",
"html_body": "<div class=\"zd-comment\" dir=\"auto\">Test comment from the ActionKit docs.</div>",
"plain_body": "Test comment from the ActionKit docs.",
"public": true,
"attachments": [],
"audit_id": 360000740913,
"via": {
"channel": "api",
"source": {
"from": {},
"to": {},
"rel": null
}
},
"created_at": "2026-10-16T05:54:39Z",
"metadata": {
"system": {
"client": "axios/0.24.0",
"ip_address": "203.0.113.10",
"transaction_id": "01M51MDP6JZJAPBNFB7G1T3MV2",
"location": "Example City, United States",
"latitude": 39.0469,
"longitude": -77.4903
},
"custom": {},
"notifications_suppressed_for": [
360000020441
]
}
}
],
"nextPageCursor": null
}Provider API: Zendesk Support API (v2).
Authorizations
Your Paragon User Token (JWT), which you can generate using your project's signing keys.
Path Parameters
Your Paragon Project ID. You can copy your Project ID from your dashboard URL or by clicking Copy Project ID under the Environment switcher.
Body
application/json
Response
200 - application/json
A page of comments on a ticket. nextPageCursor is the Zendesk after_cursor when more results are available and null on the last page. Pass it as paginationParameters.pageCursor to load the next page.