Task History
Keyset-paginated status moves of a task, newest first. The first page (no cursor) also
carries total; follow meta.next_cursor until it is null. Comments are
GET /tasks/{id}/comments.
GET
/api/v1/tasks/{task_id}/historyAuthorization
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
dataTaskHistoryPage | anyShow propertiesHide properties
Any of:
TaskHistoryPage
transitionsTaskTransition[]requiredShow propertiesHide properties
Array of
TaskTransitionidstringtask_idstringrequiredactionstringdefault: "task.status_changed"
from_statusTaskStatus | anyShow propertiesHide properties
Any of:
TaskStatus
stringany
anyto_statusTaskStatus | anyShow propertiesHide properties
Any of:
TaskStatus
stringany
anychanged_fieldsstring[]field_changesFieldChange[]Show propertiesHide properties
Array of
FieldChangefieldstringrequiredbeforeanyafteranybefore_knownbooleandefault: true
changed_variant_fieldsstring[]actor_idstring | anyShow propertiesHide properties
Any of:
string
stringany
anyatstring<date-time>includedUserIncludesPeople 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/history" \
-H "Authorization: Bearer YOUR_TOKEN"const response = await fetch("/api/v1/tasks/string/history", {
method: "GET",
headers: {
"Authorization": "Bearer YOUR_TOKEN"
}
});import requests
response = requests.get(
"/api/v1/tasks/string/history",
headers={
"Authorization": "Bearer YOUR_TOKEN"
},
)Response
{
"success": true,
"data": {
"transitions": [
{
"id": "string",
"task_id": "string",
"action": "task.status_changed",
"from_status": "backlog",
"to_status": "backlog",
"changed_fields": [
"string"
],
"field_changes": [
{
"field": "string",
"before": null,
"after": null,
"before_known": true
}
],
"changed_variant_fields": [
"string"
],
"actor_id": "string",
"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": {}
}
]
}