Get comments
comment and its replies in chronological order. Threads are ordered oldest first. The promotionId and versionId in the path must belong to your workspace, or the request returns 404.
Query parameters
Page through with
offset. Keep requesting until pagination.hasMore is false.
Comment fields
Author
Pagination fields
For cross-cutting errors (401, 403, 429, 502), see Errors & rate limits.
Import comments
Use this endpoint to push external review feedback (roots, replies, and action responses) onto the current latest version of a promotion. Each item is processed independently: one failure does not roll back the rest. SendexternalCommentId on every item if you need safe sequential retries. If you omit it, a retry after an ambiguous failure may create duplicates. Two simultaneous duplicate requests can still race.
Imported comments may not appear in Get comments immediately. Wait briefly before using GET to resolve parentCommentId.
Author identity
Every human author must includeauthor.email. The email must match an active Adclear user who belongs to your organization. Optional trace fields (displayName, sourceUserId, sourceRole) are accepted for logging but are not stored and never affect permissions.
If the author cannot be resolved, the item is rejected with AUTHOR_UNAVAILABLE. The same message is used whether the email is unknown or the user is not a member, so the endpoint cannot be used to probe Adclear accounts.
Item types
Supported
action values: agree_to_action, agree_will_action, dismiss, dispute, relevant_not_required, reply.
To reply to an AI evaluation finding, use the commentId that each comment-backed issue carries in the evaluation-completed webhook as parentCommentId. Comment indexing is asynchronous, so a reply sent immediately after the webhook may be rejected with PARENT_NOT_FOUND; wait briefly and retry.
Location (roots only)
location must already be collapsed to a single point, timestamp, or exact text snippet. The server does not accept rectangles or time ranges, so collapse them before sending:
- A region or bounding box → its centre point, as
xRatio/yRatio. - A time range → its start, as
timeSeconds.
location entirely to create an unanchored thread, which appears in the comment sidebar rather than on the asset.
Per-item result codes
Whole-request errors use the standard envelope:
404 when the promotion or version is not found, 409 when the version is not the latest, and 502 when author identity lookup is temporarily unavailable (no items are written).