Menu

API reference · Knowledge Base

Tags

knowledge_base · tags · 4 operations

GET/v1/knowledge-base/tags

List Knowledge Base tags

knowledge_base.tags.list

ReadIdempotentSince 2026-11-01

Lists the tags used to classify Knowledge Base articles (name, hex color, order), in the order the app shows them, up to 200. Use their ids in tag_ids when creating or updating articles, in knowledge_base.items.bulk.update_tags, and to filter knowledge_base.items.list by tag_id. Requires view access to the Knowledge Base.

Scope
knowledge_base:read
Permission
View the module
MCP tool
knowledge_base_tags_listOn the full surface; on the compact one, mb_execute_operation with id: "knowledge_base.tags.list".

Declared cost: up to 200 reads and 0 writes per call (they count against the daily quota).

Parameters

No parameters.

Response

dataarray<object>
has_morefalse

Always false: every tag comes in one page.

Errors

Example

curl "https://api.mb-suite.com/v1/knowledge-base/tags" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl "https://api.mb-suite.com/v1/knowledge-base/tags" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/knowledge-base/tags

Create a Knowledge Base tag

knowledge_base.tags.create

WriteSince 2026-11-01

Creates a tag with a name (up to 100 characters) and a hex color (#rrggbb or #rgb), placed last in the order. Names do not repeat inside an organization, ignoring case and accents: an existing name is 409 kb_tag_name_taken with existing_tag_id (use that tag). Up to 200 tags per organization (409 limit_reached, details.resource kb_tags). Returns the tag with its id. Requires full access to the Knowledge Base.

Scope
knowledge_base:write
Permission
Edit in the module
MCP tool
knowledge_base_tags_createOn the full surface; on the compact one, mb_execute_operation with id: "knowledge_base.tags.create".

Declared cost: up to 201 reads and 1 writes per call (they count against the daily quota).

Parameters

namestringbodyrequired

The tag's name.

colorstringbodyrequired

A hex color, #rrggbb.

Response

tag_idstring
tagobject

Errors

Example

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/tags" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "color": "COLOR"
}'

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/tags" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "name": "NAME",
  "color": "COLOR"
}'
PATCH/v1/knowledge-base/tags/{tag_id}

Rename, recolor or move a Knowledge Base tag

knowledge_base.tags.update

WriteIdempotentSince 2026-11-01

Changes the name, the color (#rrggbb or #rgb) or the position (order) of a tag, sent inside updates; the articles that have it keep it. A name already used by another tag is 409 kb_tag_name_taken. Idempotent: sending what the tag already has changes nothing (changed: false). Returns the tag. Requires full access.

Scope
knowledge_base:write
Permission
Edit in the module
MCP tool
knowledge_base_tags_updateOn the full surface; on the compact one, mb_execute_operation with id: "knowledge_base.tags.update".

Declared cost: up to 202 reads and 1 writes per call (they count against the daily quota).

Parameters

tag_idstringpathrequired

The tag's id (from knowledge_base.tags.list).

updatesobjectbodyrequired

The fields to change.

Response

tagobject
changedboolean

Errors

Example

curl -X PATCH "https://api.mb-suite.com/v1/knowledge-base/tags/{tag_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X PATCH "https://api.mb-suite.com/v1/knowledge-base/tags/{tag_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "updates": {}
}'
DELETE/v1/knowledge-base/tags/{tag_id}

Delete a Knowledge Base tag

knowledge_base.tags.delete

IrreversibleSince 2026-11-01

Deletes a tag and removes it from every article that has it (the articles themselves are not touched otherwise). The tag stays 30 days in the trash; restoring it brings the tag back and puts it back on all the articles that had it and still exist. Up to 5,000 articles: with more, the deletion stops before writing anything with 409 too_many_tagged_articles (delete it from the app). Returns how many articles were updated. Outside the app it needs a dry run (which counts the articles) and a confirm_token, except a REST DELETE with a key allowed to delete. Requires full access.

With an API key, this DELETE runs directly: the record stays 30 days in the trash and the response carries its trash_item_id. With an OAuth token, and through the MCP, it needs dry_run → confirm_token.

Scope
knowledge_base:write and “Allow deletions” (knowledge_base:delete in OAuth)
Permission
Edit in the module
MCP tool
knowledge_base_tags_deleteOn the full surface; on the compact one, mb_execute_operation with id: "knowledge_base.tags.delete".

Declared cost: up to 5002 reads and 5001 writes per call (they count against the daily quota).

Parameters

tag_idstringpathrequired

The tag's id (from knowledge_base.tags.list).

Response

oktrue
items_updatednumber
trash_item_idstring

The trash item this deletion left: the item_id of platform.trash.restore (POST /trash/{item_id}/restore). Missing if nothing went to the trash.

trash_item_idsarray<string>

Only when the deletion left more than one copy: all of them, the first being trash_item_id.

trash_expires_atnumber

When the copy leaves the trash for good (epoch ms): 30 days after the deletion.

Errors

Example

curl -X DELETE "https://api.mb-suite.com/v1/knowledge-base/tags/{tag_id}" \
  -H "Authorization: Bearer $MB_API_KEY"

Try it with your test API key

With a test API key the request always goes to your practice organization: example data you can reset.

curl -X DELETE "https://api.mb-suite.com/v1/knowledge-base/tags/{tag_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"