MCP tool · Actions
scale_budget
Scales ad set budgets by a percentage (+100% at most per change).
What it does
Scale budgets of ad sets by a percentage (e.g. +30% or -20%). Fetches current budgets, calculates new ones, and shows confirmation with before/after. Max +100% per operation, min 1€/day.
In Apogee this only PREPARES the action: it returns an action_id and what will change. Show it to the user and call execute_action only after their explicit OK (valid 24 hours).
Parameters
-
adset_idsarray of strings requiredArray of ad set IDs to scale
-
percentagenumber requiredPercentage to scale by (e.g. 30 for +30%, -20 for -20%). Max +100, cannot go below 1€/day.
-
ad_account_idstring requiredMeta ad account id (act_…), from list_ad_accounts
-
adset_namesarray of strings optionalNames of the ad sets
Example
Your assistant calls it for you when you ask in your own words. What it sends (MCP tools/call, JSON-RPC 2.0):
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "scale_budget",
"arguments": {
"adset_ids": [
"120200000000000002"
],
"percentage": 1,
"ad_account_id": "act_1234567890"
}
}
} The same call over HTTP with an API key, for an MCP client of your own (an assistant that signs in sends its OAuth token instead):
curl -X POST https://app.apogee.ad/mcp \
-H "Authorization: Bearer $APOGEE_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"scale_budget","arguments":{"adset_ids":["120200000000000002"],"percentage":1,"ad_account_id":"act_1234567890"}}}' Access and cost
| Plans | Pro and Scale. |
|---|---|
| Scope | actions: a connection or an API key without it does not see this tool (scopes). |
| Effect | Stores a plan or an action and says what it will do. Nothing changes on the ad account until it is confirmed. |
| Credits | Free up to the daily free reads (5,000 a day on Pro, 10,000 on Scale), then 1 credit per read. A call that fails costs nothing (credits). |
| Rate limit | 600 MCP requests per 15 minutes on Pro, 1,200 on Scale (rate limits). |
| Daily cap | Counts 2 units toward the 2,000 units one API key or assistant connection can use in 24 hours. |
In the REST API
The same thing for your own code, with an API key:
- Create action:
POST /actions
Related tools
Actions: Each tool only prepares: it returns an action_id and what will change. Nothing changes until execute_action, after your explicit OK, within 24 hours. Created objects are paused unless you ask otherwise.
pause_ad: Pauses ads.pause_adset: Pauses ad sets.activate_ad: Turns paused ads back on.activate_adset: Turns paused ad sets back on.update_budget: Sets new daily budgets for ad sets.update_campaign_status: Pauses or turns on a whole campaign.update_adset_targeting: Changes an ad set's targeting.duplicate_ad: Copies an ad into other ad sets of the same ad account, keeping the same post (likes, comments, shares).duplicate_adset: Copies an ad set with its ads, each keeping its post; created paused.duplicate_campaign: Copies a campaign with its ad sets and ads; created paused.create_adset: A new ad set in an existing campaign, from scratch or copying another ad set's targeting and conversion; created paused.create_ad: A new ad on an existing post or creative; created paused.create_ad_from_post: A new ad on an existing Facebook or Instagram post, which keeps its likes and comments, with every Advantage+ enhancement explicit; paused by default.execute_action: Runs a prepared action (or a prepared campaign), once, after your explicit OK. Returns what was created.