Menu

Referência da API · Knowledge Base

Itens

knowledge_base · items · 12 operações

GET/v1/knowledge-base/items

List Knowledge Base articles

knowledge_base.items.list

LeituraIdempotenteDesde 2026-11-01

Lists the articles of the organization's Knowledge Base that the caller can see, as summaries (title, excerpt of the first 280 characters, links, attachment metadata, tag ids, visibility, author, pinned, counts, is_favorite) — use knowledge_base.items.get for the full content. A restricted article (private, custom or agency) comes with excerpt null: its text is only read with get. Sort: created_desc (default), updated_desc, title_asc or most_viewed. Filters: search (title, text or author, ignoring case and accents), tag_id, pinned, favorites (the caller's), created_by_id and visibility. Visibility: public (everyone with access to the organization), private (only its creator), custom (its creator plus visible_to_user_ids) or agency (only people of the agency workspace with access to this Account; it exists only in Accounts). Private and restricted articles of other people never appear. Visibility and filters run on what each page reads (up to 500 articles per call), so a page can bring fewer than limit while has_more is true: follow next_cursor. Requires view access to the Knowledge Base.

Escopo
knowledge_base:read
Permissão
Ver o módulo
Tool do MCP
knowledge_base_items_listNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.list".

Custo declarado: até 503 leituras e 0 escritas por chamada (contam na cota diária).

Parâmetros

limitintegerqueryopcional

Articles per page (1 to 200; default 50).

Padrão: 50

cursorstringqueryopcional

The next_cursor of the previous page, exactly as it came (same sort and filters).

sortenumqueryopcional

created_desc (default), updated_desc, title_asc or most_viewed.

Valores: created_desc, updated_desc, title_asc, most_viewed · Padrão: "created_desc"

tag_idstringqueryopcional

Only the articles with this tag (an id of knowledge_base.tags.list).

pinnedbooleanqueryopcional

true = only pinned articles; false = only unpinned.

favoritesbooleanqueryopcional

true = only the caller's favorites.

created_by_idstringqueryopcional

Only the articles of this author (a user id of members.members.list).

visibilityenumqueryopcional

Only articles with this visibility: public, private, custom or agency.

Valores: public, private, custom, agency

searchstringqueryopcional

Words (any order, without case or accents) or a fragment of the title, the text or the author.

Resposta

dataarray<object>
has_moreboolean
next_cursorstring

Erros

Exemplo

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

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl "https://api.mb-suite.com/v1/knowledge-base/items" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/knowledge-base/items/{item_id}

Get a Knowledge Base article

knowledge_base.items.get

LeituraIdempotenteDesde 2026-11-01

Returns one article with its full content: sanitized HTML in content and plain text in content_plain_text, links, attachments (metadata and the in-app link; files are downloaded from the app), tag ids, visibility and visible_to_user_ids, author, pinned state, view and comment counts, manual order and whether it is one of the caller's favorites. Not found (kb_item_not_found) if the id does not exist or the article is private or restricted and the caller cannot see it. Reading does not count a view. Requires view access.

Escopo
knowledge_base:read
Permissão
Ver o módulo
Tool do MCP
knowledge_base_items_getNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.get".

Custo declarado: até 2 leituras e 0 escritas por chamada (contam na cota diária).

Parâmetros

item_idstringrotaobrigatório

The article's id (from knowledge_base.items.list).

Resposta

idstring
titlestring
linksarray<object>
attachmentsarray<object>
tag_idsarray<string>
visibilityenum

Valores: public, private, custom, agency

visible_to_user_idsarray<string>
created_by_idstring
created_atnumber
updated_atnumber
is_pinnedboolean
view_countnumber
comment_countnumber
is_favoriteboolean
contentstring
content_plain_textstring
excerptstring | null

List only: the first 280 characters of the plain text; null for a restricted article (private, custom or agency), whose text is read with knowledge_base.items.get.

created_by_namestring | null
created_by_photo_urlstring | null

Only in knowledge_base.items.get and the writes.

pinned_atnumber | null
pinned_by_idstring | null
ordernumber | null

Erros

Exemplo

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

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

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

Create a Knowledge Base article

knowledge_base.items.create

EscritaDesde 2026-11-01

Creates an article authored by the caller: title (up to 500 characters), content as HTML (sanitized: formatting, lists, links and images survive, scripts do not) or plain text (blank lines become paragraphs), up to 100,000 characters; links (each url must start with http:// or https://, otherwise invalid_input on links[n].url; the link's domain is filled in from the url when missing); tag_ids (ids from knowledge_base.tags.list; unknown ids are dropped); attachments (only files already uploaded to this organization's Knowledge Base storage, which the app does: an API client cannot upload files); visibility (default public) and, with custom, visible_to_user_ids (people without access to the organization are dropped). Visibility: public (everyone with access to the organization), private (only its creator), custom (its creator plus visible_to_user_ids) or agency (only people of the agency workspace with access to this Account; it exists only in Accounts). Passwords and keys do not belong in an article: if the text looks like it holds one, the article is saved anyway and warnings says content_looks_like_credential. Returns the new article. Requires full access to the Knowledge Base.

Escopo
knowledge_base:write
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_createNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.create".
Eventos que pode emitir
knowledge_base.article.created

Custo declarado: até 34 leituras e 1 escritas por chamada (contam na cota diária).

Parâmetros

titlestringcorpoobrigatório

The article's title.

contentstringcorpoopcional

The article: HTML (sanitized) or plain text (it becomes paragraphs). Never put a password here: credentials go to the Vault.

content_plain_textstringcorpoopcional

The plain-text version for search and previews (derived when missing); only together with content.

linksarray<object>corpoopcional

Links of the article (up to 50; replaces the list).

attachmentsarray<object>corpoopcional

Attachments (up to 50; replaces the list).

tag_idsarray<string>corpoopcional

Tags (ids of knowledge_base.tags.list, up to 30).

visibilityenumcorpoopcional

public (default: everyone in the organization), private (only its author), custom (its author and visible_to_user_ids) or agency (only the workspace's people).

Valores: public, private, custom, agency

visible_to_user_idsarray<string>corpoopcional

With visibility custom: who else sees it (user ids of members.members.list).

Resposta

item_idstring
itemobject
warningsarray<string>

Only when there is something to warn: content_looks_like_credential means the text looks like it holds a password, an API key or a private key; tell the person to move it to the Vault (vault.items.create), which keeps it encrypted, and to remove it from the article.

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "TITLE"
}'

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "title": "TITLE"
}'
PATCH/v1/knowledge-base/items/{item_id}

Update a Knowledge Base article

knowledge_base.items.update

EscritaIdempotenteDesde 2026-11-01

Changes one or more fields of an article the caller can see, sent inside updates: title, content (HTML or plain text; content_plain_text only together with content, otherwise it is derived), links, tag_ids and attachments (each replaces the whole list: keep an existing attachment by sending its id), visibility and visible_to_user_ids. Anyone with full access can edit the content; only the article's creator or an owner/admin can change its visibility (403 kb_visibility_change_denied); sending the visibility it already has is not a change. Unknown fields are rejected. Idempotent: sending what the article already has changes nothing (changed: false). If the new text looks like it holds a password or a key, warnings says content_looks_like_credential. Returns the article.

Escopo
knowledge_base:write
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_updateNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.update".

Custo declarado: até 35 leituras e 1 escritas por chamada (contam na cota diária).

Parâmetros

item_idstringrotaobrigatório

The article's id (from knowledge_base.items.list).

updatesobjectcorpoobrigatório

The fields to change; only what is sent changes.

Resposta

itemobject
changedboolean
warningsarray<string>

Only when there is something to warn: content_looks_like_credential means the text looks like it holds a password, an API key or a private key; tell the person to move it to the Vault (vault.items.create), which keeps it encrypted, and to remove it from the article.

Erros

Exemplo

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

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

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

Delete a Knowledge Base article

knowledge_base.items.delete

IrreversívelDesde 2026-11-01

Deletes an article together with its comments. Only its creator or an owner/admin can delete it (403 kb_delete_denied). It stays 30 days in the trash with its comments, where an owner or admin can restore it (platform.trash.restore); its attached files are kept for the restore. A private or restricted article appears in the trash without its title. Outside the app it needs a dry run (which counts the comments) and a confirm_token, except a REST DELETE with a key allowed to delete.

Com uma API key, este DELETE roda direto: o registro fica 30 dias na lixeira e a resposta traz o seu trash_item_id. Com um token OAuth, e pelo MCP, pede dry_run → confirm_token.

Escopo
knowledge_base:write e «Permitir exclusões» (knowledge_base:delete no OAuth)
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_deleteNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.delete".
Eventos que pode emitir
knowledge_base.article.deleted

Custo declarado: até 305 leituras e 302 escritas por chamada (contam na cota diária).

Parâmetros

item_idstringrotaobrigatório

The article's id (from knowledge_base.items.list).

Resposta

oktrue
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.

Erros

Exemplo

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

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X DELETE "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/knowledge-base/items/bulk/delete

Delete many Knowledge Base articles

knowledge_base.items.bulk.delete

IrreversívelEm massa · até 50Desde 2026-11-01

Deletes up to 50 articles with their comments; each one goes to the 30-day trash and can be restored on its own. Ids that do not exist or that the caller cannot see come back in not_found; articles the caller can see but did not create (and the caller is not an owner/admin) are skipped and come back in denied. Returns how many were deleted and their ids. Outside the app it requires a dry run (which lists what will be deleted and what will be skipped) and a confirm_token.

Pede confirmação: primeiro dry_run: true (prévia e confirm_token, válido por 10 minutos e por uma única execução), depois o mesmo corpo com confirm_token. Em algumas poucas, só com certos dados: a descrição diz quando. Por que e como: Prévia e confirmação.

Escopo
knowledge_base:write e «Permitir exclusões» (knowledge_base:delete no OAuth)
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_bulk_deleteNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.bulk.delete".
Eventos que pode emitir
knowledge_base.article.deleted

Custo declarado: até 1000 leituras e 1000 escritas por chamada (contam na cota diária).

Parâmetros

item_idsarray<string>corpoobrigatório

Article ids (1 to 50), from knowledge_base.items.list.

Resposta

deletednumber
deleted_idsarray<string>
not_foundarray<string>
deniedarray<string>
trash_item_idsarray<string>

The trash items this deletion left, one per record: the item_id of platform.trash.restore (POST /trash/{item_id}/restore).

trash_expires_atnumber

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

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/bulk/delete" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "item_ids": [
    "ITEM_ID"
  ],
  "dry_run": true
}'

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/bulk/delete" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "item_ids": [
    "ITEM_ID"
  ],
  "dry_run": true
}'
POST/v1/knowledge-base/items/{item_id}/pin

Pin a Knowledge Base article

knowledge_base.items.pin

EscritaIdempotenteDesde 2026-11-01

Pins an article at the top of the Knowledge Base for everyone who can see it (pinning is shared, unlike favorites). Idempotent: pinning an article that is already pinned changes nothing (changed: false). Returns the article. Requires full access.

Escopo
knowledge_base:write
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_pinNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.pin".
Eventos que pode emitir
knowledge_base.article.updated

Custo declarado: até 2 leituras e 1 escritas por chamada (contam na cota diária).

Parâmetros

item_idstringrotaobrigatório

The article's id (from knowledge_base.items.list).

Resposta

itemobject
changedboolean

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}/pin" \
  -H "Authorization: Bearer $MB_API_KEY"

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}/pin" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/knowledge-base/items/{item_id}/unpin

Unpin a Knowledge Base article

knowledge_base.items.unpin

EscritaIdempotenteDesde 2026-11-01

Removes an article from the pinned strip, for everyone. Idempotent: unpinning an article that is not pinned changes nothing (changed: false). Returns the article. Requires full access.

Escopo
knowledge_base:write
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_unpinNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.unpin".
Eventos que pode emitir
knowledge_base.article.updated

Custo declarado: até 2 leituras e 1 escritas por chamada (contam na cota diária).

Parâmetros

item_idstringrotaobrigatório

The article's id (from knowledge_base.items.list).

Resposta

itemobject
changedboolean

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}/unpin" \
  -H "Authorization: Bearer $MB_API_KEY"

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}/unpin" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/knowledge-base/items/{item_id}/favorite

Add an article to the caller's favorites

knowledge_base.items.favorite

EscritaIdempotenteDesde 2026-11-01

Marks an article as a favorite of the caller only (each person has their own favorites; filter them with favorites=true in knowledge_base.items.list). It does not change the article for anyone else nor its update date. Idempotent (changed: false when it already was). Returns the article. Requires full access.

Escopo
knowledge_base:write
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_favoriteNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.favorite".

Custo declarado: até 2 leituras e 1 escritas por chamada (contam na cota diária).

Parâmetros

item_idstringrotaobrigatório

The article's id (from knowledge_base.items.list).

Resposta

itemobject
changedboolean

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}/favorite" \
  -H "Authorization: Bearer $MB_API_KEY"

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}/favorite" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/knowledge-base/items/{item_id}/unfavorite

Remove an article from the caller's favorites

knowledge_base.items.unfavorite

EscritaIdempotenteDesde 2026-11-01

Removes an article from the caller's favorites (nobody else's). Idempotent (changed: false when it was not a favorite). Returns the article. Requires full access.

Escopo
knowledge_base:write
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_unfavoriteNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.unfavorite".

Custo declarado: até 2 leituras e 1 escritas por chamada (contam na cota diária).

Parâmetros

item_idstringrotaobrigatório

The article's id (from knowledge_base.items.list).

Resposta

itemobject
changedboolean

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}/unfavorite" \
  -H "Authorization: Bearer $MB_API_KEY"

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/{item_id}/unfavorite" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/knowledge-base/items/reorder

Set the manual order of articles

knowledge_base.items.reorder

EscritaIdempotenteDesde 2026-11-01

Sets the shared manual order of the Knowledge Base (the "Manual" sort of the app): ordered_ids in the new order, up to 500; each article's order becomes its index. All or nothing: an id that does not exist or that the caller cannot see stops the whole reorder (404 kb_item_not_found with the missing ids), and a repeated id is 400. Articles not sent keep their position value. Returns how many were ordered. Requires full access.

Escopo
knowledge_base:write
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_reorderNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.reorder".

Custo declarado: até 502 leituras e 500 escritas por chamada (contam na cota diária).

Parâmetros

ordered_idsarray<string>corpoobrigatório

The article ids in their new manual order (up to 500).

Resposta

countnumber

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/reorder" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "ordered_ids": [
    "ORDERED_ID"
  ]
}'

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/reorder" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "ordered_ids": [
    "ORDERED_ID"
  ]
}'
POST/v1/knowledge-base/items/bulk/tags

Add or remove tags on many articles

knowledge_base.items.bulk.update_tags

EscritaEm massa · até 50IdempotenteDesde 2026-11-01

Adds add_tag_ids and removes remove_tag_ids on up to 50 articles at once, like the selection bar of the app (the other tags of each article stay). Unknown tag ids to add are dropped; a tag in both lists is 400. Ids that do not exist or that the caller cannot see come back in not_found. Returns how many articles were updated. Outside the app it requires a dry run and a confirm_token.

Pede confirmação: primeiro dry_run: true (prévia e confirm_token, válido por 10 minutos e por uma única execução), depois o mesmo corpo com confirm_token. Em algumas poucas, só com certos dados: a descrição diz quando. Por que e como: Prévia e confirmação.

Escopo
knowledge_base:write
Permissão
Editar no módulo
Tool do MCP
knowledge_base_items_bulk_update_tagsNa superfície completa; na compacta, mb_execute_operation com id: "knowledge_base.items.bulk.update_tags".
Eventos que pode emitir
knowledge_base.article.updated

Custo declarado: até 83 leituras e 100 escritas por chamada (contam na cota diária).

Parâmetros

item_idsarray<string>corpoobrigatório

Article ids (1 to 50), from knowledge_base.items.list.

add_tag_idsarray<string>corpoopcional

Tags to add (ids of knowledge_base.tags.list).

remove_tag_idsarray<string>corpoopcional

Tags to remove.

Resposta

updatednumber
not_foundarray<string>

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/bulk/tags" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "item_ids": [
    "ITEM_ID"
  ],
  "dry_run": true
}'

Testar com a sua API key de teste

Com uma API key de teste o pedido vai sempre para a sua organização de prática: dados de exemplo que você pode reiniciar.

curl -X POST "https://api.mb-suite.com/v1/knowledge-base/items/bulk/tags" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "item_ids": [
    "ITEM_ID"
  ],
  "dry_run": true
}'