Create a board tag
POST
/boards/{board}/tags
const url = 'https://projects.work.optidata.cloud/api/boards/1/tags';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"frontend","color":"#52eb00","description":"Front-end work"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://projects.work.optidata.cloud/api/boards/1/tags \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "frontend", "color": "#52eb00", "description": "Front-end work" }'Creates a tag scoped to this board. The response also includes a rendered HTML snippet used by the Optiwork web client (safe to ignore in API integrations).
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”board
required
integer
Board id.
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
name
required
string
color
required
Hex color.
string
description
string | null
Example
{ "name": "frontend", "color": "#52eb00", "description": "Front-end work"}Responses
Section titled “ Responses ”The created tag.
Media typeapplication/json
object
tag
A label. board_id null means a common (tenant-wide) tag.
object
id
integer
board_id
integer | null
name
string
description
string | null
color
Hex color (e.g. #52eb00).
string
created_at
string format: date-time
updated_at
string format: date-time
tag_list_item_html
Server-rendered HTML snippet for the Optiwork web client. Safe to ignore.
string
Example
{ "tag": { "id": 88, "board_id": 42, "name": "frontend", "description": "Front-end work", "color": "#52eb00", "created_at": "2026-07-20T14:00:00.000000Z", "updated_at": "2026-07-20T14:00:00.000000Z" }, "tag_list_item_html": "<li>…</li>"}Missing, invalid or expired bearer passport.
Media typeapplication/json
object
error
string
Example
{ "error": "JWT passport exception: Missing bearer token in request"}The authenticated user lacks the required board permission.
Media typeapplication/json
object
message
string
Example
{ "message": "This action is unauthorized."}Resource not found, or a nested resource does not belong to its parent in the path.
Media typeapplication/json
object
message
string
Example
{ "message": "Not found."}Validation failed.
Media typeapplication/json
object
message
First validation error message.
string
errors
Map of field name → list of error messages.
object
key
additional properties
Array<string>
Example
{ "message": "The name field is required.", "errors": { "name": [ "The name field is required." ] }}