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." ] }}