Remove Tags
Removes the specified tags from every asset they exist on. Because a tag has no existence independent of the assets carrying it, removing it from every asset removes it from the instance.
Request
POST ~/api/tags/command/remove
Payload
{
"removeFrom": ["RegressionTests", "RegTests"]
}
| Field | Type | Required | Description |
|---|---|---|---|
removeFrom | string[] | yes | The tags to remove. Each is stripped from every visible asset carrying it. |
field | string | no | A custom tag attribute to operate on instead of TaggedWith. |
curl -X POST "https://{host}/{instance}/api/tags/command/remove" \
-H "Authorization: Bearer <access-token>" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{ "removeFrom": ["RegressionTests", "RegTests"] }'
Earlier reference material showed the merge payload — MergeTo plus
MergeFrom — for this endpoint. That shape is wrong here: the endpoint binds
removeFrom and field, and a request using the merge fields is rejected
with 400 Bad Request. If you built an integration from the old example,
it stopped at the door — correct the payload to removeFrom.
Behavior
- Tags in
removeFromthat do not exist are ignored rather than erroring. - The operation writes to every affected asset, so it appears in asset history and activity stream output attributed to the calling member.
- Other tags on those assets are untouched.
Permissions and Scope
Remove requires the ManageTags privilege, and acts only on assets the caller can see and
edit — the same limitation described for merge.
Removal rewrites the TaggedWith attribute on every matching asset and cannot be batch-reversed.
If you may need the association back, capture it first — query the affected assets and their
tags through query.v1 and keep the result.
If your goal is to rename rather than purge, use merge instead: it preserves the association under a new name.
Related Topics
- Merge tags
- Query all tags — verify the tag is gone afterwards
- Tags overview