Menu

API reference · Media Planner

Change history

media_planner · changes · 1 operation

GET/v1/media-planner/plans/{plan_id}/changes

List the change history of a plan's campaigns

media_planner.changes.list

ReadIdempotentSince 2026-11-01

Lists the change history of a media plan's rows, newest first, paginated by cursor: who changed what and when, field by field with the value before and after (budget, status, dates, platform, currency, labels, link, Auto-Budget, carryover), plus creations, deletions and imports. source says where it came from (user, ai, autobudget, carryover, system). Pass campaign_id for the history of one row (it survives the row's deletion). Reordering and the daily cost sync are not history. Requires view access to the Media Planner. With Google Ads, LinkedIn or TikTok, their terms limit it through the API and the MCP: what they do not allow answers 403 platform_terms_restricted, and their records are left out of the response (the permissions guide lists what each platform allows).

Scope
media_planner:read
Permission
View the module
MCP tool
media_planner_changes_listOn the full surface; on the compact one, mb_execute_operation with id: "media_planner.changes.list".

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

Parameters

plan_idstringpathrequired

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

limitintegerqueryoptional

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

Default: 50

cursorstringqueryoptional

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

campaign_idstringqueryoptional

Only the history of this row (it survives the row's deletion).

Response

dataarray<object>
has_moreboolean
next_cursorstring

Errors

Example

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