/{organizationId}/work/todo/items/listList todo items
Lists root todos or the direct children of one todo
Required permissions:
todoItem.read
Path Parameters
organizationIdstringrequired Request Body required
Content-Type: application/json
parentItemIdstring | nulloptional maxItems: 50
maxItems: 100
maxItems: 100
maxItems: 3
withoutContextbooleanoptional Default: false
searchTermstringoptional minLength: 2
maxLength: 100
A stringified json object representing a property filter
searchAllLevelsbooleanoptional Default: false
groupByStatusbooleanoptional Default: false
offsetintegeroptional Default: 0
minimum: 0
maximum: 9007199254740991
limitintegeroptional Default: 20
minimum: 1
maximum: 20
returnCountbooleanoptional Default: false
Default: {"column":"createdAt","order":"desc"}
Authentication: X-API-Key
Request
curl --request POST 'https://cloud.campai.com/api/{organizationId}/work/todo/items/list' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"parentItemId": "string",
"topicIds": [
"string"
],
"statusIds": [
"string"
]
}'Responses
This endpoint returns different response codes based on the request outcome.
200Successful response
Content-Type: application/json
countintegerrequired minimum: 0
maximum: 9007199254740991
Response
{
"items": [
{
"_id": "000000000000000000000001",
"organization": "000000000000000000000001",
"parentItem": "000000000000000000000001",
"childrenCount": 0,
"childrenCompletedCount": 0,
"commentsCount": 0,
"topic": {
"_id": "000000000000000000000001",
"name": "string",
"identifier": "string",
"color": "slate"
},
"type": {
"_id": "000000000000000000000001",
"name": "string",
"emoji": "string"
},
"status": {
"_id": "000000000000000000000001",
"label": "string",
"color": "slate",
"role": "regular"
},
"context": {
"type": "team",
"teamId": "000000000000000000000001",
"name": "string"
},
"project": {
"_id": "000000000000000000000001",
"name": "string",
"color": "slate"
},
"sequenceNumber": 1,
"title": "string",
"description": "string",
"customFields": {},
"attachmentCount": 0,
"assignees": [
{
"id": "string",
"actor": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"completedAt": "2026-06-15T22:30:00Z",
"timeSpentMinutes": 0
}
],
"tags": "string",
"dueDate": "2026-06-15T22:30:00Z",
"reviewer": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"reviews": [
{
"_id": "000000000000000000000001",
"round": 1,
"reviewer": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"requestedAt": "2026-06-15T22:30:00Z",
"requestedBy": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"workCompletedAt": "2026-06-15T22:30:00Z",
"decision": "pending",
"decidedAt": "2026-06-15T22:30:00Z",
"decidedBy": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"note": "string"
}
],
"statusBeforeReview": {
"_id": "000000000000000000000001",
"label": "string",
"color": "slate",
"role": "regular"
},
"workCompletedAt": "2026-06-15T22:30:00Z",
"completedAt": "2026-06-15T22:30:00Z"
}
],
"count": 0,
"nextCursor": {
"column": "title",
"value": "string",
"itemId": "000000000000000000000001"
},
"statusGroups": [
{
"statusId": "000000000000000000000001",
"items": [
{
"_id": "000000000000000000000001",
"organization": "000000000000000000000001",
"parentItem": "000000000000000000000001",
"childrenCount": 0,
"childrenCompletedCount": 0,
"commentsCount": 0,
"topic": {
"_id": "000000000000000000000001",
"name": "string",
"identifier": "string",
"color": "slate"
},
"type": {
"_id": "000000000000000000000001",
"name": "string",
"emoji": "string"
},
"status": {
"_id": "000000000000000000000001",
"label": "string",
"color": "slate",
"role": "regular"
},
"context": {
"type": "team",
"teamId": "000000000000000000000001",
"name": "string"
},
"project": {
"_id": "000000000000000000000001",
"name": "string",
"color": "slate"
},
"sequenceNumber": 1,
"title": "string",
"description": "string",
"customFields": {},
"attachmentCount": 0,
"assignees": [
{
"id": "string",
"actor": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"completedAt": "2026-06-15T22:30:00Z",
"timeSpentMinutes": 0
}
],
"tags": "string",
"dueDate": "2026-06-15T22:30:00Z",
"reviewer": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"reviews": [
{
"_id": "000000000000000000000001",
"round": 1,
"reviewer": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"requestedAt": "2026-06-15T22:30:00Z",
"requestedBy": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"workCompletedAt": "2026-06-15T22:30:00Z",
"decision": "pending",
"decidedAt": "2026-06-15T22:30:00Z",
"decidedBy": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"note": "string"
}
],
"statusBeforeReview": {
"_id": "000000000000000000000001",
"label": "string",
"color": "slate",
"role": "regular"
},
"workCompletedAt": "2026-06-15T22:30:00Z",
"completedAt": "2026-06-15T22:30:00Z"
}
],
"count": 0,
"nextCursor": {
"column": "title",
"value": "string",
"itemId": "000000000000000000000001"
}
}
]
}400Invalid input data
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "BAD_REQUEST",
"message": "Invalid input data",
"issues": []
}401Authorization not provided
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "UNAUTHORIZED",
"message": "Authorization not provided",
"issues": []
}403Insufficient access
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "FORBIDDEN",
"message": "Insufficient access",
"issues": []
}500Internal server error
Content-Type: application/json
The error information
messagestringrequired The error message
codestringrequired The error code
An array of issues that were responsible for the error
Response
{
"code": "INTERNAL_SERVER_ERROR",
"message": "Internal server error",
"issues": []
}