Flat, reusable labels you assign to articles across the knowledge base.
A tag is a free-form label scoped to your org. Articles attach to tags many-to-many. Tags are flat (no hierarchy) and reusable across knowledge bases and categories — use them to slice content by audience, surface area, or any orthogonal axis that doesn’t fit the category tree.
POST /article-tags, GET /article-tags, DELETE /article-tags/{id} manage the tag rows themselves — create reusable labels, list them, retire them.
Article tag assignments
GET /articles/{id}/tags returns the tags on one article. PUT /articles/{id}/tags replaces the full set of assignments in a single call.
There is no “add a single tag to an article” endpoint — assignments are replaced as a set. Send the full list of tag_ids you want the article to carry.
To clear all tags from an article, send {"tag_ids": []}. To add a single tag to an article that already has tags, first GET /articles/{id}/tags, append the new id, then PUT the full list back.
List endpoints (GET /articles) return tag_names inline on each article. Use that to avoid a follow-up tag lookup for every row.
DELETE /article-tags/{id} removes the tag and unassigns it from every article that carried it. Articles themselves are untouched. There is no soft-delete — recreate the tag and re-assign if you change your mind.