Skip to content

Create a board tag

POST
/boards/{board}/tags
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).

board
required
integer

Board id.

Media typeapplication/json
object
name
required
string
>= 2 characters <= 40 characters
color
required

Hex color.

string
description
string | null
>= 3 characters <= 250 characters
Example
{
"name": "frontend",
"color": "#52eb00",
"description": "Front-end work"
}

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
>= 2 characters <= 40 characters
description
string | null
>= 3 characters <= 250 characters
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."
]
}
}