Upserts a batch of tags in the caller's tenant in a single transaction:
- a record without
idcreates a new tag and publishes a tag-created domain event (ETagCreatedEvent); - a record with
idupdates thelabelandactiveflag of that existing tag (no event is published for updates).
Tags not mentioned in the request are left untouched — this is not a full replace, and tags cannot be deleted through this operation (use DELETE /tags/{tagId}). The response contains only the created/updated tags, in request order.
Authorization: requires the global:metadata:manage scope.
Errors (400): empty tags list; the same label used twice in one request; a blank label or a label longer than 255 characters; missing active; an id that does not exist in the tenant; a concurrent modification of the same tag. Duplicate labels are only checked within the request, not against tags that already exist. Any error rolls back the whole batch.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
400Invalid request (see description) — nothing is saved.
403The token lacks the global:metadata:manage scope.