Tags
Create and manage workspace tags used to organize projects.
Authorization: Bearer ceyo_platform_... on every request. The API key selects the workspace, so paths never require a workspace identifier.tag_ids. Deleting a tag also removes it from every assigned project.GETList tags
/tagsReturns the paginated workspace tag catalog used by project tag_ids.
List tags
/tagsQuery parameters
pageinteger1-based page number.
per_pageintegerTags per page. Minimum 1, maximum 100.
Response envelope
tags:Tag[],pagination:Pagination}tagsTag[]Tags ordered case-insensitively by name, then ID.
paginationPaginationPagination metadata for the tag catalog.
Tag
iduuidTag identifier.
namestringTag display name.
colorstringTag display color.
Pagination
pageintegerCurrent 1-based page.
per_pageintegerNumber of records requested per page.
totalintegerTotal records matching the request.
total_pagesintegerTotal available pages.
Request and response
curl --request GET \
--url 'https://api.signal.ceyo.ai/v1/tags?page=1&per_page=25' \
--header 'Authorization: Bearer ceyo_platform_...'{
"tags": [
{
"id": "589dfbca-f4e2-420a-a288-f9b4c9ea1593",
"name": "Retail",
"color": "#0057FF"
}
],
"pagination": {
"page": 1,
"per_page": 25,
"total": 1,
"total_pages": 1
}
}ErrorsResponse format and status codes+
Error response envelope
errorErrorStructured error payload.
Error
codestringStable snake_case code suitable for programmatic handling.
messagestringHuman-readable explanation of the failure.
detailsobject | array | nullStructured validation or request context when available.
request_idstringIdentifier to provide when requesting support.
{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid.",
"details": {
"name": [
"must be present"
]
},
"request_id": "req_01K1JQY1RQQ7N3C5H1K6J0P8AT"
}
}Status codes
400invalid_requestA path value, query parameter, or JSON body is malformed.
401invalid_api_keyThe Bearer API key is absent or invalid.
403forbiddenThe API key cannot perform this operation.
422validation_failedOne or more fields are invalid, or package_id does not identify an active package of the required type.
429rate_limit_exceededToo many requests were made.
POSTCreate tag
/tagsCreates a workspace tag for assignment to projects.
Create tag
/tagsRequest body
namestringRequired unique tag name. Maximum: 25 characters.
colorstringOptional supported tag color. Defaults to #0057FF.
Response envelope
tag:Tag}The newly created tag.
Tag
iduuidTag identifier.
namestringTag display name.
colorstringTag display color.
Request and response
curl --request POST \
--url 'https://api.signal.ceyo.ai/v1/tags' \
--header 'Authorization: Bearer ceyo_platform_...' \
--header 'Content-Type: application/json' \
--data '{
"name": "Retail",
"color": "#0057FF"
}'{
"tag": {
"id": "589dfbca-f4e2-420a-a288-f9b4c9ea1593",
"name": "Retail",
"color": "#0057FF"
}
}ErrorsResponse format and status codes+
Error response envelope
errorErrorStructured error payload.
Error
codestringStable snake_case code suitable for programmatic handling.
messagestringHuman-readable explanation of the failure.
detailsobject | array | nullStructured validation or request context when available.
request_idstringIdentifier to provide when requesting support.
{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid.",
"details": {
"name": [
"must be present"
]
},
"request_id": "req_01K1JQY1RQQ7N3C5H1K6J0P8AT"
}
}Status codes
400invalid_requestA path value, query parameter, or JSON body is malformed.
401invalid_api_keyThe Bearer API key is absent or invalid.
403forbiddenThe API key cannot perform this operation.
422validation_failedOne or more fields are invalid, or package_id does not identify an active package of the required type.
429rate_limit_exceededToo many requests were made.
DELETEDelete tag
/tags/{tag_id}Deletes a workspace tag and removes it from assigned projects.
Delete tag
/tags/{tag_id}Path parameters
tag_iduuidWorkspace tag identifier.
ErrorsResponse format and status codes+
Error response envelope
errorErrorStructured error payload.
Error
codestringStable snake_case code suitable for programmatic handling.
messagestringHuman-readable explanation of the failure.
detailsobject | array | nullStructured validation or request context when available.
request_idstringIdentifier to provide when requesting support.
{
"error": {
"code": "validation_failed",
"message": "One or more fields are invalid.",
"details": {
"name": [
"must be present"
]
},
"request_id": "req_01K1JQY1RQQ7N3C5H1K6J0P8AT"
}
}Status codes
400invalid_requestA path value, query parameter, or JSON body is malformed.
401invalid_api_keyThe Bearer API key is absent or invalid.
403forbiddenThe API key cannot perform this operation.
404not_foundThe requested project or location was not found.
429rate_limit_exceededToo many requests were made.