List Comments
Keyset-paginated comments on a task, newest first. The first page (no cursor) also carries
total; follow meta.next_cursor until it is null. Status moves are GET /tasks/{id}/history.
Deleted comments stay in the feed with an empty body so the client can mark the gap.
GET
/api/v1/tasks/{task_id}/commentsAuthorization
AuthorizationBearer token · headerrequiredor
AuthorizationOAuth2 access token · headerrequiredPath parameters
task_idstringrequiredQuery parameters
limitintegermin 1 · max 100 · default: 20
cursorstring | anyopaque keyset cursor from the previous page
Responses
200Successful Response
successbooleandefault: true
dataCommentsPage | anyShow propertiesHide properties
Any of:
CommentsPage
commentsComment[]requiredShow propertiesHide properties
Array of
Commentidstringschema_versionintegerdefault: 1
entity_typeEntityTyperequiredAllowed:
taskentity_idstringrequiredauthor_idstringrequiredbodystringrequiredmentioned_user_idsstring[]reactionsobjectcreated_atstring<date-time>updated_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anydeleted_atstring<date-time> | anyShow propertiesHide properties
Any of:
string<date-time>
string<date-time>any
anyincludedUserIncludesPeople referenced by the payload, keyed by id — same contract as `CreativeIncludes`.
Comment authors, mentions and reactors on the comments feed, transition actors on the
history one.
Show propertiesHide properties
usersobjectmetaCursorMetarequired`total` is served on the first page only (no cursor).
Show propertiesHide properties
next_cursorstring | anyShow propertiesHide properties
Any of:
string
stringany
anytotalinteger | anyShow propertiesHide properties
Any of:
integer
integerany
anyany
anymessagestring | anyShow propertiesHide properties
Any of:
string
stringany
anyerrorsstring[] | anyShow propertiesHide properties
Any of:
string[]
Array of
stringstringany
any422Validation Error
detailValidationError[]Show propertiesHide properties
Array of
ValidationErrorlocstring | integer[]requiredShow propertiesHide properties
Array of
string | integerAny of:
string
stringinteger
integermsgstringrequiredtypestringrequiredinputanyctxobjectRequest
curl -X GET "/api/v1/tasks/string/comments" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("/api/v1/tasks/string/comments", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.get(
"/api/v1/tasks/string/comments",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"success": true,
"data": {
"comments": [
{
"id": "string",
"schema_version": 1,
"entity_type": "task",
"entity_id": "string",
"author_id": "string",
"body": "string",
"mentioned_user_ids": [
"string"
],
"reactions": {
"property1": [
"string"
],
"property2": [
"string"
]
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"deleted_at": "2019-08-24T14:15:22Z"
}
],
"included": {
"users": {
"property1": {
"id": "string",
"name": "string",
"email": "string",
"image_url": "string"
},
"property2": {
"id": "string",
"name": "string",
"email": "string",
"image_url": "string"
}
}
},
"meta": {
"next_cursor": "string",
"total": 0
}
},
"message": "string",
"errors": [
"string"
]
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string",
"input": null,
"ctx": {}
}
]
}