Update work-item labels

Adds, removes, or replaces normalized labels and passes Jira-backed label changes through to Jira.

POST/api/v1/work-items/:id/labels

Authorization

work-items:linkapi key scoperequired
Required scope when calling with an API key.

Path parameters

idstringrequired
Canonical work-item ID

Example: work_01k2...

Request body

labelsarrayoptional
Replacement label set
addarrayoptional
Labels to add
removearrayoptional
Labels to remove
expected_versionnumberoptional
Optimistic work-item version guard
confirmbooleanrequired
Must be true
Example request
{
  "add": [
    "api"
  ],
  "remove": [
    "triage"
  ],
  "expected_version": 12,
  "confirm": true
}

Request

curl -X POST "https://www.digitalstack360.com/api/v1/work-items/work_01k2.../labels" \
  -H "Authorization: Bearer $DS_API_KEY" \
  -H "Idempotency-Key: work-42-labels-v1" \
  -H "Content-Type: application/json" \
  -d '{"add":["api"],"remove":["triage"],"expected_version":12,"confirm":true}'

Examples use a placeholder key from your environment. Store your key in $DS_API_KEY — never commit it.

Response

200 OK
{
  "data": {
    "work_item": {
      "id": "work_01k2...",
      "labels": [
        "api"
      ],
      "version": 13
    },
    "changed_fields": [
      "labels"
    ]
  }
}

Errors

401
missing_auth

No credentials provided

401
invalid_api_key

API key is invalid or revoked

400
bad_request

Missing or invalid request fields

403
scope_insufficient

Key lacks the required write scope

403
scope_insufficient

Key lacks work-items:link scope

400
label_not_allowed

Label value is not allowed