Signal API
Tags as MarkdownUse a clean Markdown version of this page with an agent or local tooling.

Tags

Create and manage workspace tags used to organize projects.

Authentication and scopeSend Authorization: Bearer ceyo_platform_... on every request. The API key selects the workspace, so paths never require a workspace identifier.
Project organizationTags are workspace-scoped and assigned to projects through tag_ids. Deleting a tag also removes it from every assigned project.
GET
/tags

Returns the paginated workspace tag catalog used by project tag_ids.

Parameters

Query parameters

pageinteger

1-based page number.

OptionalDefault: 1
per_pageinteger

Tags per page. Minimum 1, maximum 100.

OptionalDefault: 25
Response

Response envelope

tags:Tag[]pagination:Pagination
tagsTag[]

Tags ordered case-insensitively by name, then ID.

paginationPagination

Pagination metadata for the tag catalog.

Object

Tag

iduuid

Tag identifier.

namestring

Tag display name.

colorstring

Tag display color.

Object

Pagination

pageinteger

Current 1-based page.

per_pageinteger

Number of records requested per page.

totalinteger

Total records matching the request.

total_pagesinteger

Total available pages.

Request and response

Example requestcURL
curl --request GET \
  --url 'https://api.signal.ceyo.ai/v1/tags?page=1&per_page=25' \
  --header 'Authorization: Bearer ceyo_platform_...'
Example responseJSON
{
  "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
Errors

Error response envelope

errorError

Structured error payload.

Errors

Error

codestring

Stable snake_case code suitable for programmatic handling.

messagestring

Human-readable explanation of the failure.

detailsobject | array | null

Structured validation or request context when available.

request_idstring

Identifier to provide when requesting support.

Example error responseJSON
{
  "error": {
    "code": "validation_failed",
    "message": "One or more fields are invalid.",
    "details": {
      "name": [
        "must be present"
      ]
    },
    "request_id": "req_01K1JQY1RQQ7N3C5H1K6J0P8AT"
  }
}
Errors

Status codes

400invalid_request

A path value, query parameter, or JSON body is malformed.

401invalid_api_key

The Bearer API key is absent or invalid.

403forbidden

The API key cannot perform this operation.

422validation_failed

One or more fields are invalid, or package_id does not identify an active package of the required type.

429rate_limit_exceeded

Too many requests were made.

POST
/tags

Creates a workspace tag for assignment to projects.

Request

Request body

namestring

Required unique tag name. Maximum: 25 characters.

colorstring

Optional supported tag color. Defaults to #0057FF.

Response

Response envelope

tag:Tag

The newly created tag.

Object

Tag

iduuid

Tag identifier.

namestring

Tag display name.

colorstring

Tag display color.

Request and response

Example requestcURL
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"
}'
Example responseJSON
{
  "tag": {
    "id": "589dfbca-f4e2-420a-a288-f9b4c9ea1593",
    "name": "Retail",
    "color": "#0057FF"
  }
}
ErrorsResponse format and status codes
Errors

Error response envelope

errorError

Structured error payload.

Errors

Error

codestring

Stable snake_case code suitable for programmatic handling.

messagestring

Human-readable explanation of the failure.

detailsobject | array | null

Structured validation or request context when available.

request_idstring

Identifier to provide when requesting support.

Example error responseJSON
{
  "error": {
    "code": "validation_failed",
    "message": "One or more fields are invalid.",
    "details": {
      "name": [
        "must be present"
      ]
    },
    "request_id": "req_01K1JQY1RQQ7N3C5H1K6J0P8AT"
  }
}
Errors

Status codes

400invalid_request

A path value, query parameter, or JSON body is malformed.

401invalid_api_key

The Bearer API key is absent or invalid.

403forbidden

The API key cannot perform this operation.

422validation_failed

One or more fields are invalid, or package_id does not identify an active package of the required type.

429rate_limit_exceeded

Too many requests were made.

DELETE
/tags/{tag_id}

Deletes a workspace tag and removes it from assigned projects.

Parameters

Path parameters

tag_iduuid

Workspace tag identifier.

Required
204 No ContentA successful deletion returns no response body.
ErrorsResponse format and status codes
Errors

Error response envelope

errorError

Structured error payload.

Errors

Error

codestring

Stable snake_case code suitable for programmatic handling.

messagestring

Human-readable explanation of the failure.

detailsobject | array | null

Structured validation or request context when available.

request_idstring

Identifier to provide when requesting support.

Example error responseJSON
{
  "error": {
    "code": "validation_failed",
    "message": "One or more fields are invalid.",
    "details": {
      "name": [
        "must be present"
      ]
    },
    "request_id": "req_01K1JQY1RQQ7N3C5H1K6J0P8AT"
  }
}
Errors

Status codes

400invalid_request

A path value, query parameter, or JSON body is malformed.

401invalid_api_key

The Bearer API key is absent or invalid.

403forbidden

The API key cannot perform this operation.

404not_found

The requested project or location was not found.

429rate_limit_exceeded

Too many requests were made.