Skip to main content
POST
Create tag

Authorizations

Authorization
string
header
required

Workspace API key (lora_sk_…) sent as Authorization: Bearer <api_key>. Each scoped operation names the scope it requires in its security requirement, for example shortcuts.write; a key without it receives 403 with code: insufficient_scope. GET /v1/qr also accepts anonymous requests and requires no scope.

Body

application/json

Payload to create a new tag

name
string
required

The tag name (3..50 chars). The slug is derived from this server-side and updates whenever name changes.

Required string length: 3 - 50
Example:

"Marketing"

color
enum<string>
default:DEFAULT

Tag color

Available options:
DEFAULT,
GRAY,
BROWN,
ORANGE,
YELLOW,
GREEN,
BLUE,
PURPLE,
PINK,
RED
Example:

"BLUE"

description
string | null

Optional one-line description of what the tag is for (up to 200 chars). Line breaks and repeated whitespace are collapsed to single spaces and the ends trimmed; an empty string or null clears it.

Example:

"Campaign links for the 2026 employer brand"

Response

The created tag.

A tag.

id
string
required

The tag's unique ID.

Pattern: ^[0-9abcdefghjkmnpqrstvwxyz]{8}$
Example:

"a1b2c3d4"

name
string
required
slug
string
required
color
enum<string>
required
Available options:
DEFAULT,
GRAY,
BROWN,
ORANGE,
YELLOW,
GREEN,
BLUE,
PURPLE,
PINK,
RED
workspaceId
string
required

ID of the workspace the tag belongs to.

creatorId
string
required

ID of the user who created the tag.

createdAt
string
required

ISO 8601 creation timestamp.

updatedAt
string
required

ISO 8601 timestamp of the last update.

description
string | null
required

What the tag is for, or null when it has none.

Example:

"Campaign links for the 2026 employer brand"