/{organizationId}/work/todo/topics/{topicId}Get todo topic
Gets one todo topic and its available workflows
Path Parameters
organizationIdstringrequired topicIdstringrequired Authentication: X-API-Key
Request
curl --request GET 'https://cloud.campai.com/api/{organizationId}/work/todo/topics/{topicId}' \
--header 'X-API-Key: YOUR_API_KEY'Responses
This endpoint returns different response codes based on the request outcome.
200Successful response
Content-Type: application/json
ObjectId as string
createdAtdate-time | nulloptional updatedAtdate-time | nulloptional removedAtdate-time | nulloptional __ignoreTriggersstring | nulloptional ObjectId as string
namestringrequired minLength: 1
maxLength: 80
identifierstringrequired minLength: 1
maxLength: 4
lastSequenceNumberintegerrequired minimum: 0
maximum: 9007199254740991
colorstringrequired Options:
slategrayzincneutralstoneredorangeamberyellowlimegreenemeraldtealcyanskyblueindigovioletpurplefuchsiapinkrosedescriptionstringrequired maxLength: 10000
revisionintegerrequired minimum: 0
maximum: 9007199254740991
openCountintegerrequired minimum: 0
maximum: 9007199254740991
closedCountintegerrequired minimum: 0
maximum: 9007199254740991
archivedAtdate-time | nullrequired Additional properties are not allowed.
minItems: 2
maxItems: 100
minItems: 1
maxItems: 50
Response
{
"_id": "000000000000000000000001",
"organization": "000000000000000000000001",
"name": "string",
"identifier": "string",
"lastSequenceNumber": 0,
"color": "slate",
"description": "string",
"revision": 0,
"openCount": 0,
"closedCount": 0,
"archivedAt": "2026-06-15T22:30:00Z",
"archivedBy": {
"name": "string",
"type": "user",
"userId": "string",
"image": {
"resource": "string"
}
},
"customFields": {
"groups": [
{
"id": "string",
"label": "string",
"fields": [
{
"id": "string",
"type": "placeholder",
"name": "string"
}
]
}
]
},
"statuses": [
{
"_id": "000000000000000000000001",
"label": "string",
"color": "slate",
"role": "regular",
"order": 0,
"archivedAt": "2026-06-15T22:30:00Z"
}
],
"types": [
{
"_id": "000000000000000000000001",
"name": "string",
"emoji": "string",
"order": 0,
"archivedAt": "2026-06-15T22:30:00Z",
"statuses": [
"000000000000000000000001"
],
"statusTransitions": [
{
"fromStatus": "000000000000000000000001",
"toStatuses": [
"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": []
}404Not found
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": "NOT_FOUND",
"message": "Not found",
"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": []
}