Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_performance"
⟨76 unchanged words⟩ still hold Meta link clicks or all clicks.basis_notepurchases.basis_note explains how the two counts differ.
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_performance"
⟨76 unchanged words⟩ still hold Meta link clicks or all clicks. basis_note explains how the two counts differ.
Authorization not required, issuer https://plainrouter.com
Authorization not required, issuer https://plainrouter.com
Changed the definition of "actions.rules.list" and "list_actions"
⟨10 unchanged words⟩ ,"type":"string"},"page":{"maximum":10000000000000000,"minimum":1,"type":"integer"},"per_page ⟨28 unchanged words⟩
⟨52 unchanged words⟩ ,"type":"integer"},"page":{"maximum":10000000000000000,"minimum":1,"type":"integer"},"status ⟨35 unchanged words⟩
Changed the definition of "dry_run_actions" and "propose-actions"
⟨277 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"
Certificate changed, valid to 2027-01-08
Authorization not required, issuer https://plainrouter.com
Authorization not required, issuer https://plainrouter.com
Changed the definition of "actions.rules.list", "dry_run_actions", "get_account_inventory" and 3 more
{"properties":{"cursor":{"description":"Continue using rules.next_cursor; use actions.rules.show for detail.","type":"string"},"page":{"minimum":1,"type":"integer"},"per_page":{"default":25,"maximum":100,"minimum":1,"type": ⟨21 unchanged words⟩
⟨922 unchanged words⟩ "minItems":1,"type":"array"},"cursor":{"description":"Continue using next_cursor. Read saved proposal actions with get_action_batch to avoid another write; dry runs repeat the same inputs.","minimum":0,"type":"integer"},"evidence":{"items":{"additionalProperties":false," ⟨39 unchanged words⟩
Certificate changed, valid to 2027-01-08
Authorization not required, issuer https://plainrouter.com
Changed the definition of "actions.rules.list", "dry_run_actions", "get_account_inventory" and 12 more
ListActionactionRulesrules
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
Changed the definition of "get_account_state", "get_performance", "get_signal_health" and 1 more
SandboxGetAccountaccountStatestate
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
Changed the definition of "dry_run_actions", "get_action", "get_action_batch" and 2 more
⟨950 unchanged words⟩ ":["get_account_state","get_signal_health","get_performance","get_inventory_metrics","get-creative-library","staged-asset-manifest"],"type":"string"} ⟨39 unchanged words⟩
Get one proposed action for the authorized workspace and advertising account. counted_evidence contains frozen target figures and coverage captured at proposal time; null means not captured. The figures inform and never gate.Changed the definition of "get_action", "get_action_batch" and "list_actions"
⟨533 unchanged words⟩ rule, revision, run and decision."},"policy_result":{"properties":{"evaluated_at":{"type":"string"},"id":{"type":"string"},"outcome":{"enum":["allowed","approval_required","blocked"],"type":"string"},"phase":{"enum":["proposal","approval","execution"],"type":"string"},"policy_id":{"type":"string"},"policy_version":{"type":"integer"},"reason_details":{"items":{"type":"string"},"type":["array","null"]},"reasons":{"items":{"type":"string"},"type":"array"},"requested_minor":{"type":["integer","null"]}},"required":["id","policy_id","policy_version","phase","outcome","reasons","reason_details","requested_minor","evaluated_at"],"type":["object","null"]},"policy_results":{"items":{"properties":{"evaluated_at":{"type":"string"},"id":{"type":"string"},"outcome":{"enum":["allowed","approval_required","blocked"],"type":"string"},"phase":{"enum":["proposal","approval","execution"],"type":"string"},"policy_id":{"type":"string"},"policy_version":{"type":"integer"},"reason_details":{"items":{"type":"string"},"type":["array","null"]},"reasons":{"items":{"type":"string"},"type":"array"},"requested_minor":{"type":["integer","null"]}},"required":["id","policy_id","policy_version","phase","outcome","reasons","reason_details","requested_minor","evaluated_at"],"type":"object"},"type":"array"},"proposer":{"properties":{"name":{"description ⟨21 unchanged words⟩ ,"type":"object"}},"required":["policy_result","policy_results","batch_status","disposition"],"type":"object" ⟨4 unchanged words⟩
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_action", "get_action_batch" and "list_actions"
⟨484 unchanged words⟩ run_id","decision_id"],"type":"object"},{"description":"System evidence from a completed Test cites its Test, verdict and selected winner member.","properties":{"test_id":{"type":"string"},"verdict_id":{"type":"string"},"winner_member_id":{"type":"string"}},"required":["test_id","verdict_id","winner_member_id"],"type":"object"}],"description":"System evidence cites either the ⟨49 unchanged words⟩
⟨487 unchanged words⟩ run_id","decision_id"],"type":"object"},{"description":"System evidence from a completed Test cites its Test, verdict and selected winner member.","properties":{"test_id":{"type":"string"},"verdict_id":{"type":"string"},"winner_member_id":{"type":"string"}},"required":["test_id","verdict_id","winner_member_id"],"type":"object"}
Authorization not required, issuer https://plainrouter.com
Authorization not required, issuer https://plainrouter.com
Added "list_workspaces"; removed "actions.rules.show"; changed the definition of "actions.rules.list", "dry_run_actions", "get_account_inventory" and 11 more
⟨8 unchanged words⟩ 100,"minimum":1,"type":"integer"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"type":"object"}
⟨980 unchanged words⟩ ":["human_supplied"],"type":"string"},"workspace_id":{"minimum":1,"type":"integer"}},"required":["actions","rationale"," ⟨5 unchanged words⟩
Authorization not required, issuer https://plainrouter.com
Authorization not required, issuer https://plainrouter.com
Added "actions.rules.list" and "actions.rules.show"; removed "get-creative-library" and "launch.creatives.index"; changed the definition of "get_action", "get_action_batch" and "list_actions"
⟨272 unchanged words⟩ ,"type":"object"},"evidence":{"descriptionanyOf":"PlainRouter inverse evidence cites the original action and its counted outcome.",[{"properties":{"original_action_id":{"type":"string ⟨184 unchanged words⟩ ["original_action_id","outcome"],"type":"object"},{"properties":{"decision_id":{"type":"string"},"revision_id":{"type":"string"},"rule_id":{"type":"string"},"run_id":{"type":"string"}},"required":["rule_id","revision_id","run_id","decision_id"],"type":"object"}],"description":"System evidence cites either the original action and its counted outcome or the rule, revision, run and decision."},"proposer":{"properties":{"name" ⟨33 unchanged words⟩
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_action", "get_action_batch" and "list_actions"
⟨478 unchanged words⟩ "object"},"proposer":{"properties":{"idname":{"typedescription":["string","nullPlainRouter for a system proposer; omitted for people and agents."]},"name":{"type":"string"},"type":{"enum" ⟨3 unchanged words⟩ type":"string"}},"required":["type","id","name"],"type":"object"}},"required" ⟨8 unchanged words⟩
Changed the definition of "get_action", "get_action_batch", "get_action_decision_receipt" and 1 more
⟨112 unchanged words⟩ "},{"type":"array"}]},"inverse":{"properties":{"batch_id":{"type":"string"},"reason_code":{"type":"string"},"status":{"enum":["proposed","inverse_not_proposed"],"type":"string"}},"required":["status"],"type":"object"},"metrics":{"anyOf":[{"properties":{" ⟨133 unchanged words⟩ ","outcome_checked_at","compensation_reason_code","recovery_disposition","late_restored"],"type":"object"},"evidence":{"description":"PlainRouter inverse evidence cites the original action and its counted outcome.","properties":{"original_action_id":{"type":"string"},"outcome":{"description":"Write-once outcome. Resume baseline is the rest of the ad account on the post-change days. Other action types retain their existing payloads.","properties":{"baseline":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"}},"type":"object"},{"type":"array"}]},"inverse":{"properties":{"batch_id":{"type":"string"},"reason_code":{"type":"string"},"status":{"enum":["proposed","inverse_not_proposed"],"type":"string"}},"required":["status"],"type":"object"},"metrics":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"loss_threshold_percent":{"type":"string"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"},"verdict":{"enum":["held","lost","not_judged",null],"type":["string","null"]}},"type":"object"},{"type":"array"}]},"observed_at":{"type":"string"},"reason":{"type":["string","null"]},"reason_code":{"type":["string","null"]},"status":{"enum":["measurable","not_measurable","unavailable"],"type":"string"}},"type":"object"}},"required":["original_action_id","outcome"],"type":"object"},"proposer":{"properties":{"id":{"type":["string","null"]},"name":{"type":"string"},"type":{"enum":["user","agent","system"],"type":"string"}},"required":["type","id","name
Changed the definition of "get_action", "get_action_batch", "get_action_decision_receipt" and 1 more
⟨32 unchanged words⟩ "type":["string","null"]},"outcome_payload":{"description":"Write-once outcome. Resume baseline is the rest of the ad account on the post-change days. Other action types retain their existing payloads.","properties":{"baseline":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"}},"type":"object"},{"type":"array"}]},"metrics":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"loss_threshold_percent":{"type":"string"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"},"verdict":{"enum":["held","lost","not_judged",null],"type":["string","null"]}},"type":"object"},{"type":"array"}]},"observed_at":{"type":"string"},"reason":{"type":["string","null"]},"reason_code":{"type":["string","null"]},"status":{"enum":["measurable","not_measurable","unavailable"],"type":"string"}},"type":["object","null"]},"outcome_reason_code":{"type":["string","null" ⟨39 unchanged words⟩
Certificate changed, valid to 2026-12-29
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_inventory_metrics"
Read daily Meta metrics beside counted PlainRouter arrivals for mirrored campaigns, ad sets andoptionalads.changeobject_metricshistorycontainsfromaccount-timezonethedailyMetacomparisons;inventoryunmatched_arrivalsmirrorisfor
Certificate changed, valid to 2026-12-29
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_performance"
⟨22 unchanged words⟩ Purchase counts under the account attribution setting besidePlainRouterPlainrouter accepted server-side Purchase counts, with its completed ⟨46 unchanged words⟩
Changed the definition of "get_account_state"
⟨6 unchanged words⟩ , connection, Signal destination, and currently availableread-onlyaccount capabilities. This read-only inspection tool does not change the account.
Added "get_account_inventory" and "get_inventory_metrics"; removed "launch.creatives.show" and "launch.creatives.store"; changed the definition of "propose-actions"
⟨8 unchanged words⟩ creative-duplication actions for the approved ad account. Inthis releaseAsk,canonical pause,everyresume,policy-allowedincrease_budget,changeandwaitsdecrease_budgetforactionatypespersonexecute
Changed the definition of "get_performance"
Admissible proposal evidence:comparingreconciliation meta_reported is the existing Meta-reported conversions count compared withgateway-verifiedgateway_verified acceptedconversions,conversions.plusThe separate purchases block shows Meta-reported Purchase counts under thelatestaccount attribution setting beside PlainRouter accepted server-side Purchase counts, with its completed account-local window start and end dates and no purchase gap or status. Includes stored daily Meta spend and delivery metrics. platform_claimed_clicks ⟨25 unchanged words⟩
Changed the definition of "propose-actions"
⟨7 unchanged words⟩ or creative-duplication actions for the approved ad account.CanonicalIn this release, canonical pause, resume, increase_budget, and decrease_budgetactionsaction types executethroughonlytheaftergovernedapipelinepersonafterapprovesworkspacethe
Added "launch.creatives.index", "launch.creatives.show" and "launch.creatives.store"; removed "duplicate-ad-with-creative", "show_spend_cap_approval" and "upload-asset"; changed the definition of "get_action", "get_action_batch", "get_performance" and 2 more
⟨15 unchanged words⟩ ,"failed","rolled_back","rollback_incomplete","blocked","halted"],"type":"string"},"disposition":{ ⟨75 unchanged words⟩
⟨18 unchanged words⟩ ,"failed","rolled_back","rollback_incomplete","blocked","halted"],"type":"string"},"disposition":{ ⟨85 unchanged words⟩ ","failed","rolled_back","rollback_incomplete","blocked","halted
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_account_state", "get_action", "get_action_batch" and 5 more
{"properties":{"account_id":{"description":"Advertising account ID.RequiredSignalswhenreads use the workspacehasMetamoredestinationthanwhenoneomitted;activeotheraccount.tools may require an ID when multiple accounts are active.","minimum":1,"type":"integer"} ⟨2 unchanged words⟩
Changed the definition of "get_signal_health"
⟨55 unchanged words⟩ Offered only where the workspace plan keeps thathistory.history and the workspace is set to keep it.","enum":[12],"type":"integer ⟨2 unchanged words⟩
Authorization not required, issuer https://plainrouter.com
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_signal_health"
⟨38 unchanged words⟩ 90,"minimum":7,"type":"integer"},"months":{"description":"Trailing window of 12 calendar months, in place of days. Offered only where the workspace plan keeps that history.","enum":[12],"type":"integer"}},"type":"object"}
Changed the definition of "get_signal_health"
⟨38 unchanged words⟩ 90,"minimum":7,"type":"integer"},"months":{"description":"Trailing window of 12 calendar months, in place of days. Offered only where the workspace plan keeps that history.","enum":[12],"type":"integer"}},"type":"object"}
Authorization not required, issuer https://plainrouter.com
Added "dry_run_actions"; removed "revoke_grant"
Dry Run Actions — Preview policy decisions and execution diffs for a proposed Action batch without writing it.
Revoke Grant — Revoke an active workspace grant. The caller must hold the revoke_grant scope in the same workspace or be the human delegator of the granted agent.
Changed the definition of "propose-actions"
before
{"properties":{"account_id":{"minimum":1,"type":"integer"},"actions":{"items":{"anyOf":[{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["increase_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["decrease_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["pause"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["resume"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["replace_creative"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["shift_spend"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["rollback"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_campaign"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_ad_set"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_ad"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"asset_type":{"enum":["image"],"type":"string"},"content_sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"filename":{"maxLength":255,"type":"string"},"mime_type":{"maxLength":255,"type":["string","null"]},"size_bytes":{"minimum":1,"type":["integer","null"]},"staged_asset_id":{"maxLength":255,"type":"string"}},"required":["staged_asset_id","asset_type","filename","content_sha256"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["upload_asset"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["adjust_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"status":{"enum":["active","paused"],"type":"string"}},"required":["status"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["set_status"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"asset_id":{"maxLength":255,"type":"string"},"name_suffix":{"maxLength":100,"type":["string","null"]},"status":{"enum":["paused"],"type":"string"}},"required":["asset_id","status"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["duplicate_ad_with_creative"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"}]},"maxItems":25,"minItems":1,"type":"array"},"evidence":{"items":{"additionalProperties":false,"properties":{"action_index":{"minimum":0,"type":"integer"},"fields_used":{"items":{"maxLength":255,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"source_tool":{"enum":["get_account_state","get_signal_health","get_performance","get-creative-library","staged-asset-manifest"],"type":"string"}},"required":["source_tool","fields_used"],"type":"object"},"maxItems":3,"minItems":1,"type":"array"},"idempotency_key":{"maxLength":64,"type":"string"},"rationale":{"maxLength":4000,"type":"string"},"target_source":{"enum":["human_supplied"],"type":"string"}},"required":["actions","rationale","idempotency_key","evidence","target_source"],"type":"object"}Added "get_action", "get_action_batch", "get_action_decision_receipt" and 2 more; removed "get_arrivals_comparison" and "get_install_instructions"; changed the definition of "propose-actions" (12 tools before, 15 now)
before
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"actions":{"description":"One to twenty-five typed action objects.","items":{"anyOf":[{"additionalProperties":false,"properties":{"params":{"additionalProperties":false,"properties":{"new_daily_budget_minor":{"description":"New daily budget in the account currency minor unit.","minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"description":"Plain-language reason and expected outcome for this action.","type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"description":"Platform-native entity ID.","type":"string"},"name":{"description":"Optional human-readable entity name.","type":"string"},"type":{"enum":["ad_account","campaign","ad_set","ad"],"type":"string"}},"required":["type","id"],"type":"object"},"type":{"description":"Action type.","enum":["adjust_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"additionalProperties":false,"properties":{"params":{"additionalProperties":false,"properties":{"status":{"description":"New delivery status.","enum":["active","paused"],"type":"string"}},"required":["status"],"type":"object"},"rationale":{"description":"Plain-language reason and expected outcome for this action.","type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"description":"Platform-native entity ID.","type":"string"},"name":{"description":"Optional human-readable entity name.","type":"string"},"type":{"enum":["ad_account","campaign","ad_set","ad"],"type":"string"}},"required":["type","id"],"type":"object"},"type":{"description":"Action type.","enum":["set_status"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"additionalProperties":false,"properties":{"params":{"additionalProperties":false,"properties":{"asset_id":{"description":"Creative-library asset reference.","type":"string"},"name_suffix":{"description":"Optional suffix for the duplicated ad name.","type":"string"},"status":{"description":"Required paused delivery status for the new ad.","enum":["paused"],"type":"string"}},"required":["asset_id","status"],"type":"object"},"rationale":{"description":"Plain-language reason and expected outcome for this action.","type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"description":"Platform-native entity ID.","type":"string"},"name":{"description":"Optional human-readable entity name.","type":"string"},"type":{"enum":["ad_account","campaign","ad_set","ad"],"type":"string"}},"required":["type","id"],"type":"object"},"type":{"description":"Action type.","enum":["duplicate_ad_with_creative"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"additionalProperties":false,"properties":{"params":{"additionalProperties":false,"properties":{"asset_type":{"description":"Creative type.","enum":["image","video"],"type":"string"},"content_sha256":{"description":"Content digest.","pattern":"^[a-f0-9]{64}$","type":"string"},"filename":{"description":"Original staged filename.","type":"string"},"mime_type":{"description":"Detected MIME type for a staged upload.","type":"string"},"size_bytes":{"description":"Staged asset size in bytes.","minimum":1,"type":"integer"},"staged_asset_id":{"description":"Durable staged asset reference.","type":"string"}},"required":["staged_asset_id","asset_type","filename","content_sha256"],"type":"object"},"rationale":{"description":"Plain-language reason and expected outcome for this action.","type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"description":"Platform-native entity ID.","type":"string"},"name":{"description":"Optional human-readable entity name.","type":"string"},"type":{"enum":["ad_account","campaign","ad_set","ad"],"type":"string"}},"required":["type","id"],"type":"object"},"type":{"description":"Action type.","enum":["upload_asset"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"}]},"maxItems":25,"minItems":1,"type":"array"},"evidence":{"description":"One to three approved server-re-read evidence citations; action-bound sources require action_index.","items":{"additionalProperties":false,"properties":{"action_index":{"description":"Required action-array index for an action-bound evidence source.","minimum":0,"type":"integer"},"fields_used":{"description":"Exact dot-paths from the cited tool response used in the rationale.","items":{"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"source_tool":{"description":"Read tool that returned the cited evidence.","enum":["get_account_state","get_signal_health","get_performance","get-creative-library","staged-asset-manifest"],"type":"string"}},"required":["source_tool","fields_used"],"type":"object"},"maxItems":3,"minItems":1,"type":"array"},"idempotency_key":{"description":"Stable key reused when retrying the same proposal.","type":"string"},"rationale":{"description":"Why this batch should be considered together.","type":"string"},"target_source":{"description":"How the target was selected. Human-supplied establishes selection only, never current target state.","enum":["human_supplied"],"type":"string"}},"required":["actions","rationale","idempotency_key","evidence","target_source"],"type":"object"}Authorization not required, issuer https://plainrouter.com
Authorization not required, issuer https://plainrouter.com
Added "get_arrivals_comparison" and "get_install_instructions" (10 tools before, 12 now)
Get Arrivals Comparison — Return counted arrivals beside platform-claimed clicks for the authorized workspace and selected trailing window.
Get Install Instructions — Return managed-hostname Path A installation material and first-arrival state for the authorized workspace. Returns no same-origin forwarding material.
Authorization not required, issuer https://plainrouter.com
Changed the definition of "duplicate-ad-with-creative", "get-creative-library", "get_account_state" and 4 more
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"asset_id":{"description":"Asset ID returned by ⟨73 unchanged words⟩
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"asset_type":{"default":"all","description": ⟨46 unchanged words⟩
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_account_state", "get_performance" and "get_signal_health"
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"}},"type":"object"}
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"days":{"default":7,"description":"Number ⟨17 unchanged words⟩
Authorization not required, issuer https://plainrouter.com
Authorization not required, issuer https://plainrouter.com
Authorization not required, issuer https://plainrouter.com
Certificate recorded, valid to 2026-11-05
Authorization not required, issuer https://plainrouter.com
Changed the definition of "get_performance"
Admissible proposal evidence comparing Meta-reported conversions with gateway-verified accepted conversions,fromplus the latest stored dailyreconciliationMetareports.spend and delivery metrics.
First tool surface recorded: 4 tools (server version 0.3.2)
Certificate recorded, valid to 2026-11-05
Authorization not required, issuer https://plainrouter.com
First tool surface recorded: 10 tools (server version 0.3.2)
Showing the latest 69 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨277 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength" ⟨49 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"properties":{"asset_type":{"enum":["image ⟨95 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"properties":{"new_daily_budget_minor":{"minimum":1," ⟨57 unchanged words⟩ ,"type":"string"},"params":{"additionalProperties":false,"properties":{"status":{"enum":["active ⟨57 unchanged words⟩ 255,"type":"string"},"params":{"additionalProperties":false,"properties":{"asset_id":{"maxLength":255, ⟨193 unchanged words⟩
⟨89 unchanged words⟩ ":"string"},"limit":{"default":10025,"description":"Maximumobjects tocompletereturnobjects, from 1 to200.200; defaults to 25 and may return fewer to fit the JSON budget. Account summary totals are present on every page.","maximum":200,"minimum":1,"type ⟨23 unchanged words⟩
⟨30 unchanged words⟩ ,"batch_id":{"type":"string"},"cursor":{"description":"Continue using next_cursor with the same account and filters.","minimum":0,"type":"integer"},"limit":{"default":25,"maximum":100,"minimum":1,"type":"integer"},"workspace_id":{"description":"Workspace ID returned by ⟨16 unchanged words⟩
⟨26 unchanged words⟩ "minimum":1,"type":"integer"},"cursor":{"description":"Continue using next_cursor with the same account and filters.","minimum":0,"type":"integer"},"limit":{"default":25,"maximum":100,"minimum":1,"type":"integer"},"page":{"minimum":1,"type":"integer ⟨36 unchanged words⟩
⟨922 unchanged words⟩ "minItems":1,"type":"array"},"cursor":{"description":"Continue using next_cursor. Read saved proposal actions with get_action_batch to avoid another write; dry runs repeat the same inputs.","minimum":0,"type":"integer"},"evidence":{"items":{"additionalProperties":false," ⟨39 unchanged words⟩ idempotency_key":{"maxLength":64,"type":"string"},"limit":{"default":25,"description":"Maximum complete result actions; the shared JSON byte budget can return fewer.","maximum":100,"minimum":1,"type":"integer"},"rationale":{"maxLength":4000,"type ⟨19 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}
GetAccountaccountInventoryinventory
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
GetAccountaccountStatestate
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
GetActionaction
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
GetActionactionBatchbatch
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
GetActionactionDecisiondecisionReceiptreceipt
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
GetActionactionPolicypolicy
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
GetInventoryinventoryMetricsmetrics
⟨42 unchanged words⟩ campaign ID.","type":"string"},"cursor":{"description":"Continue all three collections using next_cursor with the same filters and include_changes.","type":"string"},"end_date":{"description":"Inclusive end date in ⟨13 unchanged words⟩ the effective date window.","type":"boolean"},"limit":{"default":25,"description":"Maximum rows per collection; byte budgets may return fewer.","maximum":100,"minimum":1,"type":"integer"},"start_date":{"description":"Inclusive start ⟨28 unchanged words⟩
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
GetPerformanceperformance
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
GetSignalsignalHealthhealth
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
ListActionsactions
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
ListWorkspacesworkspaces
{"properties":{"cursor":{"description":"Continue using next_cursor in this credential scope.","minimum":0,"type":"integer"},"limit":{"default":25,"description":"Maximum workspaces; the projection budget may return fewer.","maximum":100,"minimum":1,"type":"integer"}},"type":"object"}
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
ProposeActionsactions
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}
VerifySignalsignalIngestioningestion
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}
SandboxGetPerformanceperformance
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
SandboxGetSignalsignalHealthhealth
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
ValidateSandboxsandboxEventevent
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}
Get a proposed action batch for the authorized workspace and advertising account. Each action’s counted_evidence contains frozen proposal-time target figures and coverage; null means not captured.Get the persisted decision receipt for an authorized proposed action. Version 3 receipts include counted_evidence frozen at proposal time with account-currency values, coverage and the other-currency exclusion. Existing receipts are unchanged.⟨72 unchanged words⟩ duplicate write. Legacy set_status and adjust_budget never run. Meta target proposals freeze counted_evidence over the last seven completed account-local days for display only. Evidence may cite get_inventory_metrics leaf fields for the proposed target: Meta inline link clicks, counted arrivals and Purchase count/value at that target’s own level. Spend, impressions, child-object rows, containers, ratios and other action types are refused.
⟨950 unchanged words⟩ ":["get_account_state","get_signal_health","get_performance","get_inventory_metrics","get-creative-library","staged-asset-manifest"],"type":"string"} ⟨39 unchanged words⟩
⟨536 unchanged words⟩ rule, revision, run and decision."},"policy_result":{"properties":{"evaluated_at":{"type":"string"},"id":{"type":"string"},"outcome":{"enum":["allowed","approval_required","blocked"],"type":"string"},"phase":{"enum":["proposal","approval","execution"],"type":"string"},"policy_id":{"type":"string"},"policy_version":{"type":"integer"},"reason_details":{"items":{"type":"string"},"type":["array","null"]},"reasons":{"items":{"type":"string"},"type":"array"},"requested_minor":{"type":["integer","null"]}},"required":["id","policy_id","policy_version","phase","outcome","reasons","reason_details","requested_minor","evaluated_at"],"type":["object","null"]},"policy_results":{"items":{"properties":{"evaluated_at":{"type":"string"},"id":{"type":"string"},"outcome":{"enum":["allowed","approval_required","blocked"],"type":"string"},"phase":{"enum":["proposal","approval","execution"],"type":"string"},"policy_id":{"type":"string"},"policy_version":{"type":"integer"},"reason_details":{"items":{"type":"string"},"type":["array","null"]},"reasons":{"items":{"type":"string"},"type":"array"},"requested_minor":{"type":["integer","null"]}},"required":["id","policy_id","policy_version","phase","outcome","reasons","reason_details","requested_minor","evaluated_at"],"type":"object"},"type":"array"},"proposer":{"properties":{"name":{"description ⟨21 unchanged words⟩ ,"type":"object"}},"required":["policy_result","policy_results","batch_status","disposition"],"type":"object" ⟨38 unchanged words⟩
⟨534 unchanged words⟩ rule, revision, run and decision."},"policy_result":{"properties":{"evaluated_at":{"type":"string"},"id":{"type":"string"},"outcome":{"enum":["allowed","approval_required","blocked"],"type":"string"},"phase":{"enum":["proposal","approval","execution"],"type":"string"},"policy_id":{"type":"string"},"policy_version":{"type":"integer"},"reason_details":{"items":{"type":"string"},"type":["array","null"]},"reasons":{"items":{"type":"string"},"type":"array"},"requested_minor":{"type":["integer","null"]}},"required":["id","policy_id","policy_version","phase","outcome","reasons","reason_details","requested_minor","evaluated_at"],"type":["object","null"]},"policy_results":{"items":{"properties":{"evaluated_at":{"type":"string"},"id":{"type":"string"},"outcome":{"enum":["allowed","approval_required","blocked"],"type":"string"},"phase":{"enum":["proposal","approval","execution"],"type":"string"},"policy_id":{"type":"string"},"policy_version":{"type":"integer"},"reason_details":{"items":{"type":"string"},"type":["array","null"]},"reasons":{"items":{"type":"string"},"type":"array"},"requested_minor":{"type":["integer","null"]}},"required":["id","policy_id","policy_version","phase","outcome","reasons","reason_details","requested_minor","evaluated_at"],"type":"object"},"type":"array"},"proposer":{"properties":{"name":{"description ⟨21 unchanged words⟩ ,"type":"object"}},"required":["policy_result","policy_results","batch_status","disposition"],"type":"object" ⟨10 unchanged words⟩
⟨485 unchanged words⟩ run_id","decision_id"],"type":"object"},{"description":"System evidence from a completed Test cites its Test, verdict and selected winner member.","properties":{"test_id":{"type":"string"},"verdict_id":{"type":"string"},"winner_member_id":{"type":"string"}},"required":["test_id","verdict_id","winner_member_id"],"type":"object"}],"description":"System evidence cites either the ⟨55 unchanged words⟩
⟨103 unchanged words⟩ 200,"minimum":1,"type":"integer"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"required":["account_id"],"type":"object"}
⟨26 unchanged words⟩ ","minimum":1,"type":"integer"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"type":"object"}
⟨30 unchanged words⟩ "},"action_id":{"type":"string"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"required":["action_id"],"type":"object"}
⟨30 unchanged words⟩ "},"batch_id":{"type":"string"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"required":["batch_id"],"type":"object"}
⟨30 unchanged words⟩ "},"action_id":{"type":"string"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"required":["action_id"],"type":"object"}
⟨26 unchanged words⟩ ","minimum":1,"type":"integer"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"type":"object"}
⟨76 unchanged words⟩ in YYYY-MM-DD format.","type":"string"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"required":["account_id"],"type":"object"}
⟨45 unchanged words⟩ 90,"minimum":1,"type":"integer"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"type":"object"}
⟨82 unchanged words⟩ "enum":[12],"type":"integer"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"type":"object"}
⟨47 unchanged words⟩ rolled_back","blocked"],"type":"string"},"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"type":"object"}
⟨980 unchanged words⟩ ":["human_supplied"],"type":"string"},"workspace_id":{"minimum":1,"type":"integer"}},"required":["actions","rationale"," ⟨5 unchanged words⟩
{"properties":{"workspace_id":{"description":"Workspace ID returned by list_workspaces. Required when this credential reaches multiple workspaces.","minimum":1,"type":"integer"}},"type":"object"}
List Workspaces — List the workspaces and effective access tiers in this credential scope.
Show Action Rule — Read a stored performance rule and its immutable revisions, with author type only.
⟨275 unchanged words⟩ ,"type":"object"},"evidence":{"descriptionanyOf":"PlainRouter inverse evidence cites the original action and its counted outcome.",[{"properties":{"original_action_id":{"type":"string ⟨184 unchanged words⟩ ["original_action_id","outcome"],"type":"object"},{"properties":{"decision_id":{"type":"string"},"revision_id":{"type":"string"},"rule_id":{"type":"string"},"run_id":{"type":"string"}},"required":["rule_id","revision_id","run_id","decision_id"],"type":"object"}],"description":"System evidence cites either the original action and its counted outcome or the rule, revision, run and decision."},"proposer":{"properties":{"name" ⟨67 unchanged words⟩
⟨273 unchanged words⟩ ,"type":"object"},"evidence":{"descriptionanyOf":"PlainRouter inverse evidence cites the original action and its counted outcome.",[{"properties":{"original_action_id":{"type":"string ⟨184 unchanged words⟩ ["original_action_id","outcome"],"type":"object"},{"properties":{"decision_id":{"type":"string"},"revision_id":{"type":"string"},"rule_id":{"type":"string"},"run_id":{"type":"string"}},"required":["rule_id","revision_id","run_id","decision_id"],"type":"object"}],"description":"System evidence cites either the original action and its counted outcome or the rule, revision, run and decision."},"proposer":{"properties":{"name" ⟨39 unchanged words⟩
List Action Rules — List stored performance rules available to this workspace key. This does not evaluate them.
Show Action Rule — Read a stored performance rule and its immutable revisions, with author type only.
Get Creative Library — Return Meta image and video assets with the ads and last-30-day performance historically associated with each asset.
Index Creatives — List creatives in the workspace bound to the authenticated execution token.
⟨481 unchanged words⟩ "object"},"proposer":{"properties":{"idname":{"typedescription":["string","nullPlainRouter for a system proposer; omitted for people and agents."]},"name":{"type":"string"},"type":{"enum" ⟨3 unchanged words⟩ type":"string"}},"required":["type","id","name"],"type":"object"}},"required" ⟨42 unchanged words⟩
⟨479 unchanged words⟩ "object"},"proposer":{"properties":{"idname":{"typedescription":["string","nullPlainRouter for a system proposer; omitted for people and agents."]},"name":{"type":"string"},"type":{"enum" ⟨3 unchanged words⟩ type":"string"}},"required":["type","id","name"],"type":"object"}},"required" ⟨14 unchanged words⟩
⟨115 unchanged words⟩ "},{"type":"array"}]},"inverse":{"properties":{"batch_id":{"type":"string"},"reason_code":{"type":"string"},"status":{"enum":["proposed","inverse_not_proposed"],"type":"string"}},"required":["status"],"type":"object"},"metrics":{"anyOf":[{"properties":{" ⟨133 unchanged words⟩ ","outcome_checked_at","compensation_reason_code","recovery_disposition","late_restored"],"type":"object"},"evidence":{"description":"PlainRouter inverse evidence cites the original action and its counted outcome.","properties":{"original_action_id":{"type":"string"},"outcome":{"description":"Write-once outcome. Resume baseline is the rest of the ad account on the post-change days. Other action types retain their existing payloads.","properties":{"baseline":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"}},"type":"object"},{"type":"array"}]},"inverse":{"properties":{"batch_id":{"type":"string"},"reason_code":{"type":"string"},"status":{"enum":["proposed","inverse_not_proposed"],"type":"string"}},"required":["status"],"type":"object"},"metrics":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"loss_threshold_percent":{"type":"string"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"},"verdict":{"enum":["held","lost","not_judged",null],"type":["string","null"]}},"type":"object"},{"type":"array"}]},"observed_at":{"type":"string"},"reason":{"type":["string","null"]},"reason_code":{"type":["string","null"]},"status":{"enum":["measurable","not_measurable","unavailable"],"type":"string"}},"type":"object"}},"required":["original_action_id","outcome"],"type":"object"},"proposer":{"properties":{"id":{"type":["string","null"]},"name":{"type":"string"},"type":{"enum":["user","agent","system"],"type":"string"}},"required":["type","id","name"],"type":"object"}},"required" ⟨42 unchanged words⟩
⟨94 unchanged words⟩ "},{"type":"array"}]},"inverse":{"properties":{"batch_id":{"type":"string"},"reason_code":{"type":"string"},"status":{"enum":["proposed","inverse_not_proposed"],"type":"string"}},"required":["status"],"type":"object"},"metrics":{"anyOf":[{"properties":{" ⟨152 unchanged words⟩
⟨113 unchanged words⟩ "},{"type":"array"}]},"inverse":{"properties":{"batch_id":{"type":"string"},"reason_code":{"type":"string"},"status":{"enum":["proposed","inverse_not_proposed"],"type":"string"}},"required":["status"],"type":"object"},"metrics":{"anyOf":[{"properties":{" ⟨133 unchanged words⟩ ","outcome_checked_at","compensation_reason_code","recovery_disposition","late_restored"],"type":"object"},"evidence":{"description":"PlainRouter inverse evidence cites the original action and its counted outcome.","properties":{"original_action_id":{"type":"string"},"outcome":{"description":"Write-once outcome. Resume baseline is the rest of the ad account on the post-change days. Other action types retain their existing payloads.","properties":{"baseline":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"}},"type":"object"},{"type":"array"}]},"inverse":{"properties":{"batch_id":{"type":"string"},"reason_code":{"type":"string"},"status":{"enum":["proposed","inverse_not_proposed"],"type":"string"}},"required":["status"],"type":"object"},"metrics":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"loss_threshold_percent":{"type":"string"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"},"verdict":{"enum":["held","lost","not_judged",null],"type":["string","null"]}},"type":"object"},{"type":"array"}]},"observed_at":{"type":"string"},"reason":{"type":["string","null"]},"reason_code":{"type":["string","null"]},"status":{"enum":["measurable","not_measurable","unavailable"],"type":"string"}},"type":"object"}},"required":["original_action_id","outcome"],"type":"object"},"proposer":{"properties":{"id":{"type":["string","null"]},"name":{"type":"string"},"type":{"enum":["user","agent","system"],"type":"string"}},"required":["type","id","name"],"type":"object"}},"required" ⟨14 unchanged words⟩
⟨35 unchanged words⟩ "type":["string","null"]},"outcome_payload":{"description":"Write-once outcome. Resume baseline is the rest of the ad account on the post-change days. Other action types retain their existing payloads.","properties":{"baseline":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"}},"type":"object"},{"type":"array"}]},"metrics":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"loss_threshold_percent":{"type":"string"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"},"verdict":{"enum":["held","lost","not_judged",null],"type":["string","null"]}},"type":"object"},{"type":"array"}]},"observed_at":{"type":"string"},"reason":{"type":["string","null"]},"reason_code":{"type":["string","null"]},"status":{"enum":["measurable","not_measurable","unavailable"],"type":"string"}},"type":["object","null"]},"outcome_reason_code":{"type":["string","null" ⟨39 unchanged words⟩ ","null"]}},"required":["receipt_status","outcome_payload","outcome_status","outcome_reason_code","outcome_checked_at","compensation_reason_code ⟨47 unchanged words⟩
⟨14 unchanged words⟩ "type":["string","null"]},"outcome_payload":{"description":"Write-once outcome. Resume baseline is the rest of the ad account on the post-change days. Other action types retain their existing payloads.","properties":{"baseline":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"}},"type":"object"},{"type":"array"}]},"metrics":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"loss_threshold_percent":{"type":"string"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"},"verdict":{"enum":["held","lost","not_judged",null],"type":["string","null"]}},"type":"object"},{"type":"array"}]},"observed_at":{"type":"string"},"reason":{"type":["string","null"]},"reason_code":{"type":["string","null"]},"status":{"enum":["measurable","not_measurable","unavailable"],"type":"string"}},"type":["object","null"]},"outcome_reason_code":{"type":["string","null" ⟨39 unchanged words⟩ ","null"]}},"required":["receipt_status","outcome_payload","outcome_status","outcome_reason_code","outcome_checked_at","compensation_reason_code ⟨17 unchanged words⟩
⟨33 unchanged words⟩ "type":["string","null"]},"outcome_payload":{"description":"Write-once outcome. Resume baseline is the rest of the ad account on the post-change days. Other action types retain their existing payloads.","properties":{"baseline":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"}},"type":"object"},{"type":"array"}]},"metrics":{"anyOf":[{"properties":{"cost_per_counted_arrival_minor":{"type":["string","null"]},"counted_arrivals":{"description":"Arrivals counted by PlainRouter, never provider conversions.","type":["integer","null"]},"currency":{"type":["string","null"]},"days":{"items":{"type":"string"},"type":"array"},"loss_threshold_percent":{"type":"string"},"scope":{"enum":["target","rest_of_account"],"type":"string"},"spend_minor":{"description":"Decimal spend in ISO currency minor units.","type":["string","null"]},"timezone":{"type":"string"},"verdict":{"enum":["held","lost","not_judged",null],"type":["string","null"]}},"type":"object"},{"type":"array"}]},"observed_at":{"type":"string"},"reason":{"type":["string","null"]},"reason_code":{"type":["string","null"]},"status":{"enum":["measurable","not_measurable","unavailable"],"type":"string"}},"type":["object","null"]},"outcome_reason_code":{"type":["string","null" ⟨39 unchanged words⟩ ","null"]}},"required":["receipt_status","outcome_payload","outcome_status","outcome_reason_code","outcome_checked_at","compensation_reason_code ⟨19 unchanged words⟩
Get Account Inventory — Read the authorized workspace account inventory from the Meta mirror, with optional level, status, parent, and ID cursor filters.
Get Inventory Metrics — Read daily metrics and optional change history from the Meta inventory mirror for the authorized workspace account.
Show Creative — Show one creative in the workspace bound to the authenticated execution token.
Store Creative — Store one JPEG, PNG, MP4, or QuickTime creative from strict base64 content in the token-bound workspace.
⟨12 unchanged words⟩ latest stored daily Meta spend and delivery metrics. platform_claimed_clicks means Meta outbound clicks. Days before 2026-06-29, or not re-read by the daily sync since 2026-09-27, may still hold Meta link clicks or all clicks.
⟨16 unchanged words⟩ ,"failed","rolled_back","rollback_incomplete","blocked","halted"],"type":"string"},"disposition":{ ⟨81 unchanged words⟩
⟨7 unchanged words⟩ or creative-duplication actions for the approved ad account.BudgetCanonical pause, resume, increase_budget, andstatusdecrease_budgetproposalsactionsareexecuterecommendationsthroughonly;thetheirgoverned pipeline after workspace policy allows the action or a person approves it, subject to dispatch proof and the executioniskilldisabledswitch.inLegacythisset_statusrelease.and adjust_budget remain non-executable. Supported JPEG/PNG uploads and paused ad copies require ⟨11 unchanged words⟩
Index Creatives — List creatives in the workspace bound to the authenticated execution token.
Show Creative — Show one creative in the workspace bound to the authenticated execution token.
Store Creative — Store one JPEG, PNG, MP4, or QuickTime creative from strict base64 content in the token-bound workspace.
Duplicate Ad With Creative — Submit a canonical proposal to duplicate a source Meta ad with a different creative asset. Approved copies are always created PAUSED.
Show Spend Cap Approval — Render the static spend-cap approval preview card. Reads and writes nothing.
Upload Asset — Stage a JPEG/PNG image and submit a canonical upload action through the policy and approval gate.
{"properties":{"account_id":{"description":"Advertising account ID.RequiredSignalswhenreads use the workspacehasMetamoredestinationthanwhenoneomitted;activeotheraccount.tools may require an ID when multiple accounts are active.","minimum":1,"type":"integer"} ⟨7 unchanged words⟩
before
—after
{"properties":{"data":{"properties":{"batch_status":{"enum":["pending","approved","approved_without_execution","auto_approved","rejected","executing","executed_pending_verification","compensating","measuring","completed","failed","rolled_back","rollback_incomplete","blocked"],"type":"string"},"disposition":{"properties":{"compensation_reason_code":{"type":["string","null"]},"late_restored":{"type":"boolean"},"outcome_checked_at":{"type":["string","null"]},"outcome_reason_code":{"type":["string","null"]},"outcome_status":{"enum":["measurable","not_measurable","unavailable",null],"type":["string","null"]},"receipt_status":{"enum":["pending","attempting","reconciliation_required","committed","executed_pending_verification","measuring","verified","compensating","compensated","compensation_failed","irreversible","failed","reconciliation_exhausted",null],"type":["string","null"]},"recovery_disposition":{"enum":["no_compensation","restored","unrestored","contradictory","irreversible","uncertain",null],"type":["string","null"]}},"required":["receipt_status","outcome_status","outcome_reason_code","outcome_checked_at","compensation_reason_code","recovery_disposition","late_restored"],"type":"object"}},"required":["batch_status","disposition"],"type":"object"}},"required":["data"],"type":"object"}{"properties":{"account_id":{"description":"Advertising account ID.RequiredSignalswhenreads use the workspacehasMetamoredestinationthanwhenoneomitted;activeotheraccount.tools may require an ID when multiple accounts are active.","minimum":1,"type":"integer"} ⟨7 unchanged words⟩
before
—after
{"properties":{"data":{"properties":{"actions":{"items":{"properties":{"batch_status":{"enum":["pending","approved","approved_without_execution","auto_approved","rejected","executing","executed_pending_verification","compensating","measuring","completed","failed","rolled_back","rollback_incomplete","blocked"],"type":"string"},"disposition":{"properties":{"compensation_reason_code":{"type":["string","null"]},"late_restored":{"type":"boolean"},"outcome_checked_at":{"type":["string","null"]},"outcome_reason_code":{"type":["string","null"]},"outcome_status":{"enum":["measurable","not_measurable","unavailable",null],"type":["string","null"]},"receipt_status":{"enum":["pending","attempting","reconciliation_required","committed","executed_pending_verification","measuring","verified","compensating","compensated","compensation_failed","irreversible","failed","reconciliation_exhausted",null],"type":["string","null"]},"recovery_disposition":{"enum":["no_compensation","restored","unrestored","contradictory","irreversible","uncertain",null],"type":["string","null"]}},"required":["receipt_status","outcome_status","outcome_reason_code","outcome_checked_at","compensation_reason_code","recovery_disposition","late_restored"],"type":"object"}},"required":["batch_status","disposition"],"type":"object"},"type":"array"},"batch_status":{"enum":["pending","approved","approved_without_execution","auto_approved","rejected","executing","executed_pending_verification","compensating","measuring","completed","failed","rolled_back","rollback_incomplete","blocked"],"type":"string"},"restoration_summary":{"enum":["all_receipts_compensated_late",null],"type":["string","null"]}},"required":["batch_status","restoration_summary","actions"],"type":"object"}},"required":["data"],"type":"object"}{"properties":{"account_id":{"description":"Advertising account ID.RequiredSignalswhenreads use the workspacehasMetamoredestinationthanwhenoneomitted;activeotheraccount.tools may require an ID when multiple accounts are active.","minimum":1,"type":"integer"} ⟨7 unchanged words⟩
before
—after
{"properties":{"chain_entry":{"type":"object"},"disposition":{"properties":{"compensation_reason_code":{"type":["string","null"]},"late_restored":{"type":"boolean"},"outcome_checked_at":{"type":["string","null"]},"outcome_reason_code":{"type":["string","null"]},"outcome_status":{"enum":["measurable","not_measurable","unavailable",null],"type":["string","null"]},"receipt_status":{"enum":["pending","attempting","reconciliation_required","committed","executed_pending_verification","measuring","verified","compensating","compensated","compensation_failed","irreversible","failed","reconciliation_exhausted",null],"type":["string","null"]},"recovery_disposition":{"enum":["no_compensation","restored","unrestored","contradictory","irreversible","uncertain",null],"type":["string","null"]}},"required":["receipt_status","outcome_status","outcome_reason_code","outcome_checked_at","compensation_reason_code","recovery_disposition","late_restored"],"type":"object"},"document":{"type":"object"},"document_sha256":{"type":"string"}},"required":["document","document_sha256","chain_entry","disposition"],"type":"object"}{"properties":{"account_id":{"description":"Advertising account ID.RequiredSignalswhenreads use the workspacehasMetamoredestinationthanwhenoneomitted;activeotheraccount.tools may require an ID when multiple accounts are active.","minimum":1,"type":"integer"} ⟨2 unchanged words⟩
{"properties":{"account_id":{"description":"Advertising account ID.RequiredSignalswhenreads use the workspacehasMetamoredestinationthanwhenoneomitted;activeotheraccount.tools may require an ID when multiple accounts are active.","minimum":1,"type":"integer"} ⟨22 unchanged words⟩
{"properties":{"account_id":{"description":"Advertising account ID.RequiredSignalswhenreads use the workspacehasMetamoredestinationthanwhenoneomitted;activeotheraccount.tools may require an ID when multiple accounts are active.","minimum":1,"type":"integer"} ⟨35 unchanged words⟩ Offered only where the workspace plan keeps thathistory.history and the workspace is set to keep it.","enum":[12],"type":"integer ⟨2 unchanged words⟩
{"properties":{"account_id":{"description":"Advertising account ID.RequiredSignalswhenreads use the workspacehasMetamoredestinationthanwhenoneomitted;activeotheraccount.tools may require an ID when multiple accounts are active.","minimum":1,"type":"integer"} ⟨23 unchanged words⟩
before
—after
{"properties":{"data":{"items":{"properties":{"batch_status":{"enum":["pending","approved","approved_without_execution","auto_approved","rejected","executing","executed_pending_verification","compensating","measuring","completed","failed","rolled_back","rollback_incomplete","blocked"],"type":"string"},"disposition":{"properties":{"compensation_reason_code":{"type":["string","null"]},"late_restored":{"type":"boolean"},"outcome_checked_at":{"type":["string","null"]},"outcome_reason_code":{"type":["string","null"]},"outcome_status":{"enum":["measurable","not_measurable","unavailable",null],"type":["string","null"]},"receipt_status":{"enum":["pending","attempting","reconciliation_required","committed","executed_pending_verification","measuring","verified","compensating","compensated","compensation_failed","irreversible","failed","reconciliation_exhausted",null],"type":["string","null"]},"recovery_disposition":{"enum":["no_compensation","restored","unrestored","contradictory","irreversible","uncertain",null],"type":["string","null"]}},"required":["receipt_status","outcome_status","outcome_reason_code","outcome_checked_at","compensation_reason_code","recovery_disposition","late_restored"],"type":"object"}},"required":["batch_status","disposition"],"type":"object"},"type":"array"},"meta":{"type":"object"}},"required":["data","meta"],"type":"object"}after
{"properties":{"account_id":{"minimum":1,"type":"integer"},"actions":{"items":{"anyOf":[{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"additionalProperties":false,"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"pattern":"^[0-9]+$","type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["increase_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"additionalProperties":false,"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"pattern":"^[0-9]+$","type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["decrease_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"pattern":"^[0-9]+$","type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["pause"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"additionalProperties":false,"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"pattern":"^[0-9]+$","type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["resume"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["replace_creative"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["shift_spend"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["rollback"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_campaign"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_ad_set"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_ad"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"asset_type":{"enum":["image"],"type":"string"},"content_sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"filename":{"maxLength":255,"type":"string"},"mime_type":{"maxLength":255,"type":["string","null"]},"size_bytes":{"minimum":1,"type":["integer","null"]},"staged_asset_id":{"maxLength":255,"pattern":"^stage_[a-f0-9]{40}$","type":"string"}},"required":["staged_asset_id","asset_type","filename","content_sha256"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["upload_asset"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["adjust_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"status":{"enum":["active","paused"],"type":"string"}},"required":["status"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["set_status"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"asset_id":{"maxLength":255,"pattern":"^(image|video):.+$","type":"string"},"name_suffix":{"maxLength":100,"type":["string","null"]},"status":{"enum":["paused"],"type":"string"}},"required":["asset_id","status"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["duplicate_ad_with_creative"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"}]},"maxItems":25,"minItems":1,"type":"array"},"evidence":{"items":{"additionalProperties":false,"properties":{"action_index":{"minimum":0,"type":"integer"},"fields_used":{"items":{"maxLength":255,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"source_tool":{"enum":["get_account_state","get_signal_health","get_performance","get-creative-library","staged-asset-manifest"],"type":"string"}},"required":["source_tool","fields_used"],"type":"object"},"maxItems":3,"minItems":1,"type":"array"},"idempotency_key":{"maxLength":64,"type":"string"},"rationale":{"maxLength":4000,"type":"string"},"target_source":{"enum":["human_supplied"],"type":"string"}},"required":["actions","rationale","idempotency_key","evidence","target_source"],"type":"object"}after
{"properties":{"account_id":{"minimum":1,"type":"integer"},"actions":{"items":{"anyOf":[{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["increase_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["decrease_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["pause"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["resume"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["replace_creative"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["shift_spend"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["rollback"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_campaign"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_ad_set"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["create_ad"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"asset_type":{"enum":["image"],"type":"string"},"content_sha256":{"pattern":"^[a-f0-9]{64}$","type":"string"},"filename":{"maxLength":255,"type":"string"},"mime_type":{"maxLength":255,"type":["string","null"]},"size_bytes":{"minimum":1,"type":["integer","null"]},"staged_asset_id":{"maxLength":255,"type":"string"}},"required":["staged_asset_id","asset_type","filename","content_sha256"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["upload_asset"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"new_daily_budget_minor":{"minimum":1,"type":"integer"}},"required":["new_daily_budget_minor"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["adjust_budget"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"status":{"enum":["active","paused"],"type":"string"}},"required":["status"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["set_status"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"},{"properties":{"idempotency_key":{"maxLength":255,"type":"string"},"params":{"properties":{"asset_id":{"maxLength":255,"type":"string"},"name_suffix":{"maxLength":100,"type":["string","null"]},"status":{"enum":["paused"],"type":"string"}},"required":["asset_id","status"],"type":"object"},"rationale":{"maxLength":2000,"type":"string"},"target_entity":{"additionalProperties":false,"properties":{"id":{"maxLength":128,"type":"string"},"name":{"maxLength":255,"type":["string","null"]},"type":{"enum":["ad_account","campaign","ad_set","ad"],"maxLength":64,"type":"string"}},"required":["type","id"],"type":"object"},"type":{"enum":["duplicate_ad_with_creative"],"type":"string"}},"required":["type","target_entity","params","rationale"],"type":"object"}]},"maxItems":25,"minItems":1,"type":"array"},"evidence":{"items":{"additionalProperties":false,"properties":{"action_index":{"minimum":0,"type":"integer"},"fields_used":{"items":{"maxLength":255,"type":"string"},"maxItems":50,"minItems":1,"type":"array"},"source_tool":{"enum":["get_account_state","get_signal_health","get_performance","get-creative-library","staged-asset-manifest"],"type":"string"}},"required":["source_tool","fields_used"],"type":"object"},"maxItems":3,"minItems":1,"type":"array"},"idempotency_key":{"maxLength":64,"type":"string"},"rationale":{"maxLength":4000,"type":"string"},"target_source":{"enum":["human_supplied"],"type":"string"}},"required":["actions","rationale","idempotency_key","evidence","target_source"],"type":"object"}Get Action — Get one proposed action for the authorized workspace and advertising account.
Get Action Batch — Get a proposed action batch for the authorized workspace and advertising account.
Get Action Decision Receipt — Get the persisted decision receipt for an authorized proposed action.
Get Action Policy — Get the effective Actions policy for the authorized workspace without creating a policy row.
List Actions — List proposed actions for the authorized workspace and advertising account.
Get Arrivals Comparison — Return counted arrivals beside platform-claimed clicks for the authorized workspace and selected trailing window.
Get Install Instructions — Return managed-hostname Path A installation material and first-arrival state for the authorized workspace. Returns no same-origin forwarding material.
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"}},"type":"object"}
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"days":{"default":7,"description":"Number ⟨17 unchanged words⟩
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"days":{"default":7,"description":"Trailing ⟨20 unchanged words⟩
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"actions":{"description":"One to twenty-five typed ⟨539 unchanged words⟩
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"asset_type":{"description":"The creative asset type. ⟨106 unchanged words⟩
{"properties":{"account_id":{"description":"Advertising account ID. Required when the workspace has more than one active account.","minimum":1,"type":"integer"},"days":{"default":7,"description":"Trailing ⟨20 unchanged words⟩