Skip to main content

Query All Tags

Returns every tag in use across the instance, with the same usage breakdown as querying a single tag.

Request​

GET ~/api/tags/all
Request
curl "https://{host}/{instance}/api/tags/all" \
-H "Authorization: Bearer <access-token>" \
-H "Accept: application/json"

Response​

The response is a JSON object, not an array. Each key is a tag name; each value carries the tag's stored form plus its counts.

200 OK
{
"acceptanceTestDetails": {
"tag": "AcceptanceTestDetails",
"colorName": "yellow500",
"count": 1,
"visibleCount": 1
},
"acceptanceTestDetails 2": {
"tag": "AcceptanceTestDetails 2",
"colorName": "blue500",
"count": 1,
"visibleCount": 1
},
"acceptanceTestDetails 3": {
"tag": "AcceptanceTestDetails 3",
"colorName": null,
"count": 1,
"visibleCount": 1
}
}
FieldTypeMeaning
tagstringThe tag as stored, with its original casing.
colorNamestringThe display colour assigned to the tag, e.g. yellow500. May be null.
countintegerTotal usages across the whole instance.
visibleCountintegerUsages on assets the calling member can see.
Read the value, not the key

The object keys are not the tag strings. They are passed through the API's camel-casing JSON serializer, which lowercases the first character — the tag AcceptanceTestDetails appears under the key acceptanceTestDetails.

The tag field inside each value is the authoritative tag string. That is what to display and what to pass to merge or remove. Keying off the object key will usually still work, because tag matching is case-insensitive, but you will render the wrong casing to your users.

Notes​

  • There is no paging on this endpoint. On an instance with a large, uncurated tag vocabulary the response can be substantial. Enable gzip (Accept-Encoding: gzip) and cache the result rather than calling it per page view.
  • visibleCount is relative to the calling member. Two members hitting this endpoint will get different numbers against the same count.
  • A tag with visibleCount of 0 and a non-zero count means the tag exists but only on assets outside the caller's scope visibility.

Finding Unused or Near-Duplicate Tags​

The typical vocabulary-cleanup workflow starts here: pull the full list, sort by count ascending to find one-off tags, and look for casing and spacing variants of the same intent (RegressionTests, Regression Tests, RegTests). Then collapse them with merge.