Get comments
curl --request GET \
--url https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments \
--header 'Authorization: Bearer <token>' \
--header 'X-External-User-ID: <x-external-user-id>'import requests
url = "https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments"
headers = {
"X-External-User-ID": "<x-external-user-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-External-User-ID': '<x-external-user-id>', Authorization: 'Bearer <token>'}
};
fetch('https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/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://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-External-User-ID: <x-external-user-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-External-User-ID", "<x-external-user-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments")
.header("X-External-User-ID", "<x-external-user-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-External-User-ID"] = '<x-external-user-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"threads": [
{
"id": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"comment": {
"id": "<string>",
"author": {
"type": "ai",
"userId": "<string>",
"name": "<string>"
},
"content": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"editedAt": "2023-11-07T05:31:56Z"
},
"replies": [
{
"id": "<string>",
"author": {
"type": "ai",
"userId": "<string>",
"name": "<string>"
},
"content": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"editedAt": "2023-11-07T05:31:56Z"
}
]
}
],
"pagination": {
"limit": 123,
"offset": 123,
"totalThreads": 123,
"hasMore": true
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Evaluation
Get comments
Returns comments on a version — AI-generated and human review — grouped into paginated threads. Each thread has one top-level comment plus its replies in chronological order.
GET
/
v1
/
promotions
/
{promotionId}
/
versions
/
{versionId}
/
comments
Get comments
curl --request GET \
--url https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments \
--header 'Authorization: Bearer <token>' \
--header 'X-External-User-ID: <x-external-user-id>'import requests
url = "https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments"
headers = {
"X-External-User-ID": "<x-external-user-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-External-User-ID': '<x-external-user-id>', Authorization: 'Bearer <token>'}
};
fetch('https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/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://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"X-External-User-ID: <x-external-user-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-External-User-ID", "<x-external-user-id>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments")
.header("X-External-User-ID", "<x-external-user-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://public-api.adclear.ai/v1/promotions/{promotionId}/versions/{versionId}/comments")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-External-User-ID"] = '<x-external-user-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"threads": [
{
"id": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"comment": {
"id": "<string>",
"author": {
"type": "ai",
"userId": "<string>",
"name": "<string>"
},
"content": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"editedAt": "2023-11-07T05:31:56Z"
},
"replies": [
{
"id": "<string>",
"author": {
"type": "ai",
"userId": "<string>",
"name": "<string>"
},
"content": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"editedAt": "2023-11-07T05:31:56Z"
}
]
}
],
"pagination": {
"limit": 123,
"offset": 123,
"totalThreads": 123,
"hasMore": true
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}{
"error": {
"code": "VALIDATION_ERROR",
"message": "<string>",
"details": [
{
"type": "field_error",
"field": "<string>",
"message": "<string>"
}
]
},
"correlationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}Authorizations
API key passed as Bearer token
Headers
Identifier of the acting user in the calling system (e.g. a Workfront user id). Recorded against every audited action this request performs.
Acting user email. Only meaningful on keys with act-on-behalf enabled, where it is resolved to the matching Adclear user and is mandatory on writes. Ignored on ordinary keys.
Query Parameters
Maximum number of threads to return (1–100, default 20)
Example:
"20"
Number of threads to skip (default 0)
Example:
"0"
Response
Comment threads for the version
Was this page helpful?