Skip to content
POST/{organizationId}/work/todo/items/list

List 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

POST/{organizationId}/work/todo/items/list
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

200
{
  "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

400
{
  "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

401
{
  "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

403
{
  "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

500
{
  "code": "INTERNAL_SERVER_ERROR",
  "message": "Internal server error",
  "issues": []
}