For the complete documentation index, see llms.txt. This page is also available as Markdown.

Label

A label is a free tag on a ticket, defined per tenant and identified by its name. Tickets carry any number of them, and PATCH /v1/tickets/{ticketId} replaces the whole set at once.

autoAssign opens a label to automatic classification: only labels with it switched on are candidates, and then assignmentContext is what the classification reads — description stays the human-facing text.

List labels

get

Returns the tenant's labels, ordered by id unless sort says otherwise.

Filterableid, tenantId, name, description, color, autoAssign, assignmentContext, createdAt, updatedAt.

Sortableid, name, createdAt, updatedAt.

Searchable — nothing yet; use filter with contains on name.

Authorizations
AuthorizationstringRequired

Token issued by the central equipme authentication, sent as Bearer <token>.

Query parameters
filterstringOptional

JSON filter expression

searchstringOptional

Free-text term — no effect here

sortstringOptional

Comma-separated field:direction terms

fieldsstringOptional

Selection of fields and relations

Example: name,color
offsetintegerOptional

Number of entries to skip

Default: 0
limitintegerOptional

Page size, 1 to 100

Default: 100
Responses
200

OK

application/json
countintegerOptional
get/v1/labels
GET /api/v1/labels HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "count": 1,
  "data": [
    {
      "assignmentContext": "text",
      "autoAssign": true,
      "color": "#4a90d9",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "description": "text",
      "id": 12,
      "name": "hardware",
      "tenant": {
        "id": 1,
        "name": "text"
      },
      "tenantId": 1,
      "updatedAt": "2026-01-01T00:00:00.000Z"
    }
  ]
}

Create labels

post

Creates labels — several at once, since they are usually set up as a set. Each entry needs a name, which identifies the label within the tenant.

A name that already exists is kept as it is: the request succeeds and returns the existing label unchanged, rather than failing or overwriting its description and colour. Use PATCH to change one.

Authorizations
AuthorizationstringRequired

Token issued by the central equipme authentication, sent as Bearer <token>.

Body
objectOptional
or
Responses
201

Created

application/json
post/v1/labels
POST /api/v1/labels HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "data": [
    {
      "assignmentContext": "text",
      "autoAssign": true,
      "color": "#4a90d9",
      "createdAt": "2026-01-01T00:00:00.000Z",
      "description": "text",
      "id": 12,
      "name": "hardware",
      "tenant": {
        "id": 1,
        "name": "text"
      },
      "tenantId": 1,
      "updatedAt": "2026-01-01T00:00:00.000Z"
    }
  ]
}

Get a label

get

Returns a single label by its id.

Authorizations
AuthorizationstringRequired

Token issued by the central equipme authentication, sent as Bearer <token>.

Path parameters
labelIdintegerRequired

Label id

Example: 12
Query parameters
fieldsstringOptional

Selection of fields and relations

Example: name,color
Responses
200

OK

application/json
get/v1/labels/{labelId}
GET /api/v1/labels/{labelId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "assignmentContext": "text",
    "autoAssign": true,
    "color": "#4a90d9",
    "createdAt": "2026-01-01T00:00:00.000Z",
    "description": "text",
    "id": 12,
    "name": "hardware",
    "tenant": {
      "id": 1,
      "name": "text"
    },
    "tenantId": 1,
    "updatedAt": "2026-01-01T00:00:00.000Z"
  }
}

Delete a label

delete

Deletes a label and detaches it from every ticket that carried it. The tickets themselves are untouched. Answers with 204 and no body.

Authorizations
AuthorizationstringRequired

Token issued by the central equipme authentication, sent as Bearer <token>.

Path parameters
labelIdintegerRequired

Label id

Example: 12
Responses
204

No Content

No content

delete/v1/labels/{labelId}
DELETE /api/v1/labels/{labelId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Change a label

patch

Changes a label. The body follows JSON Merge Patch semantics: an absent field stays as it is, null clears it, a value sets it.

Renaming a label keeps it attached to its tickets — they refer to it by id, not by name.

Authorizations
AuthorizationstringRequired

Token issued by the central equipme authentication, sent as Bearer <token>.

Path parameters
labelIdintegerRequired

Label id

Example: 12
Body
objectOptional
or
Responses
200

OK

application/json
patch/v1/labels/{labelId}
PATCH /api/v1/labels/{labelId} HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2

{}
{
  "data": {
    "assignmentContext": "text",
    "autoAssign": true,
    "color": "#4a90d9",
    "createdAt": "2026-01-01T00:00:00.000Z",
    "description": "text",
    "id": 12,
    "name": "hardware",
    "tenant": {
      "id": 1,
      "name": "text"
    },
    "tenantId": 1,
    "updatedAt": "2026-01-01T00:00:00.000Z"
  }
}

Last updated

Was this helpful?