Menu

Referência da API · Media Planner

Comentários

media_planner · comments · 6 operações

GET/v1/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments

List the comments of a campaign

media_planner.comments.list

LeituraIdempotenteDesde 2026-11-01

Lists the internal comments of a row of a media plan (campaign, platform or account row), oldest first, paginated by cursor: content (sanitized HTML), author, mentioned member uids, and edit date. Comments from before the unified comment system carry author_id instead of created_by_id. Requires view access to the Media Planner.

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

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

Parâmetros

plan_idstringrotaobrigatório

Media plan id (from media_planner.plans.list).

campaign_idstringrotaobrigatório

Row id inside the plan: a campaign, a platform row or an account row (from media_planner.campaigns.list).

limitintegerqueryopcional

How many items this page brings at most (see the maximum and the default in the schema).

Padrão: 50

cursorstringqueryopcional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

Resposta

dataarray<object>
has_moreboolean
next_cursorstring

Erros

Exemplo

curl "https://api.mb-suite.com/v1/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments" \
  -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/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/media-planner/plans/{plan_id}/comments

List the comments of every row of a plan

media_planner.comments.list_plan

LeituraIdempotenteDesde 2026-11-01

Lists in one call the internal comments of every row of a media plan (campaign, platform or account rows), paginated by cursor (limit up to 200): each comment with its content (sanitized HTML), author, mentioned member uids and dates, plus campaign_id and campaign_name, the row it is on. Ordered by row and then by comment id, a stable order for paging but not a chronological one: sort by created_at if you need it. Comments of a deleted row are not listed (they come back when the row is restored from the trash, as in media_planner.comments.list); because of that, a page can bring fewer than limit while has_more is true: follow next_cursor. Use it to find a comment by id or to read a whole plan's notes instead of calling media_planner.comments.list once per row. Reads only that plan's comments (the page plus one) and the rows of the page; not found (media_plan_not_found) if the plan is not in this organization, and 400 invalid_cursor for a cursor that is not from this list. Requires view access to the Media Planner.

Escopo
media_planner:read
Permissão
Ver o módulo
Tool do MCP
media_planner_comments_list_planNa superfície completa; na compacta, mb_execute_operation com id: "media_planner.comments.list_plan".

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

Parâmetros

plan_idstringrotaobrigatório

Media plan id (from media_planner.plans.list).

limitintegerqueryopcional

How many items this page brings at most (see the maximum and the default in the schema).

Padrão: 50

cursorstringqueryopcional

The next_cursor of the previous page, exactly as it came (only for the same list and filters); without it, the first page.

Resposta

dataarray<object>
has_moreboolean
next_cursorstring

Erros

Exemplo

curl "https://api.mb-suite.com/v1/media-planner/plans/{plan_id}/comments" \
  -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/media-planner/plans/{plan_id}/comments" \
  -H "Authorization: Bearer $MB_TEST_KEY"
POST/v1/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments

Comment on a campaign

media_planner.comments.create

EscritaDesde 2026-11-01

Adds an internal comment to a row of a media plan (simple HTML or text, sanitized; up to 10,000 characters). mentions are member uids to notify (only members of this organization or of its workspace get the notice, with a link to the campaign). Returns the comment. Requires full access to the Media Planner.

Escopo
media_planner:write
Permissão
Editar no módulo
Tool do MCP
media_planner_comments_createNa superfície completa; na compacta, mb_execute_operation com id: "media_planner.comments.create".

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

Parâmetros

plan_idstringrotaobrigatório

Media plan id (from media_planner.plans.list).

campaign_idstringrotaobrigatório

Row id inside the plan: a campaign, a platform row or an account row (from media_planner.campaigns.list).

contentstringcorpoobrigatório

Simple HTML or text (sanitized).

mentionsarray<string>corpoopcional

Uids of members to notify (members.members.list; in an account, also the workspace's). Others are not saved: they come back in ignored_mentions.

Padrão: []

Resposta

comment_idstring

The new comment's id.

commentobject

The comment.

ignored_mentionsarray<string>

Mentioned uids that are not members of the organization or its workspace: not saved nor notified.

Erros

Exemplo

curl -X POST "https://api.mb-suite.com/v1/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "content": "CONTENT"
}'

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/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "content": "CONTENT"
}'
PATCH/v1/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments/{comment_id}

Edit a campaign comment

media_planner.comments.update

EscritaIdempotenteDesde 2026-11-01

Replaces the content (and the mentions) of a comment of a campaign. Only its author can edit it (403 comment_author_only); only newly added mentions are notified. Returns the updated comment. Requires full access to the Media Planner.

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

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

Parâmetros

plan_idstringrotaobrigatório

Media plan id (from media_planner.plans.list).

campaign_idstringrotaobrigatório

Row id inside the plan: a campaign, a platform row or an account row (from media_planner.campaigns.list).

comment_idstringrotaobrigatório

Comment id (from media_planner.comments.list).

contentstringcorpoobrigatório

The new text: simple HTML or text (sanitized).

mentionsarray<string>corpoopcional

The full list of mentions of the edited comment, uids of members (only new ones are notified; others come back in ignored_mentions).

Padrão: []

Resposta

commentobject

The comment as it is now.

ignored_mentionsarray<string>

Mentioned uids that are not members of the organization or its workspace: not saved nor notified.

Erros

Exemplo

curl -X PATCH "https://api.mb-suite.com/v1/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments/{comment_id}" \
  -H "Authorization: Bearer $MB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "content": "CONTENT"
}'

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/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments/{comment_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "content": "CONTENT"
}'
DELETE/v1/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments/{comment_id}

Delete a campaign comment

media_planner.comments.delete

IrreversívelDesde 2026-11-01

Deletes a comment of a campaign, of this plan or of a previous one (the history). Its author or an owner/admin of the organization can delete it (403 comment_delete_denied otherwise). It goes to the 30-day trash, where an owner or admin can restore it (platform.trash.restore). Outside the app it needs a dry run and a confirm_token, except a REST DELETE with a key allowed to delete. Requires full access to the Media Planner.

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
media_planner:write e «Permitir exclusões» (media_planner:delete no OAuth)
Permissão
Editar no módulo
Tool do MCP
media_planner_comments_deleteNa superfície completa; na compacta, mb_execute_operation com id: "media_planner.comments.delete".

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

Parâmetros

plan_idstringrotaobrigatório

Media plan id (from media_planner.plans.list).

campaign_idstringrotaobrigatório

Row id inside the plan: a campaign, a platform row or an account row (from media_planner.campaigns.list).

comment_idstringrotaobrigatório

Comment id (from media_planner.comments.list).

Resposta

oktrue

Always true.

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/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments/{comment_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/media-planner/plans/{plan_id}/campaigns/{campaign_id}/comments/{comment_id}" \
  -H "Authorization: Bearer $MB_TEST_KEY"
GET/v1/media-planner/plans/{plan_id}/comments/history

Comments on the same real campaign in previous plans

media_planner.comments.history

LeituraIdempotenteDesde 2026-11-01

Returns what was said about the same real campaign in the organization's previous plans: the comments of the rows linked to the same ad-platform campaign (campaign_id of a linked row of this plan, or mapped_campaign_id directly) in plans that started before this one, grouped by plan (most recent first), paginated by cursor (limit = plans per page, up to 20). Empty when the row is not linked. Requires view access to the Media Planner.

Escopo
media_planner:read
Permissão
Ver o módulo
Tool do MCP
media_planner_comments_historyNa superfície completa; na compacta, mb_execute_operation com id: "media_planner.comments.history".

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

Parâmetros

plan_idstringrotaobrigatório

The current plan: the history comes from plans that started before it.

campaign_idstringqueryopcional

A linked row of the plan (its real campaign id is looked up).

mapped_campaign_idstringqueryopcional

The real campaign id on the ad platform (instead of campaign_id).

limitintegerqueryopcional

Previous plans per page.

Padrão: 6

cursorstringqueryopcional

next_cursor of the previous page of this same history.

Resposta

dataarray<object>
has_moreboolean
next_cursorstring

Erros

Exemplo

curl "https://api.mb-suite.com/v1/media-planner/plans/{plan_id}/comments/history" \
  -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/media-planner/plans/{plan_id}/comments/history" \
  -H "Authorization: Bearer $MB_TEST_KEY"