MCP tool · TikTok and Snapchat
set_platform_daily_budget
Prepares a new daily budget for a TikTok or Snapchat campaign or ad set, in the ad account's currency; execute_action runs it after your OK. Refused above the safety cap, on a lifetime budget, on an ad set whose campaign holds the budget, and on TikTok Smart+ budgets.
What it does
TikTok or Snapchat: prepare a new daily budget for a campaign (its campaign budget) or an ad set (TikTok ad group / Snapchat ad squad), in the ad account's currency. Refused above the safety cap, on a lifetime budget, on an ad set whose campaign holds the budget, and on TikTok Smart+ budgets. In Apogee this only PREPARES the change: 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
-
platformstring requiredtiktok or snapchat (Meta has its own reads and actions)
-
ad_account_idstring requiredThe ad account, from list_ad_accounts with the same platform: a TikTok advertiser id (digits), a Snapchat ad account id (a UUID)
-
levelstring requiredcampaign (its campaign budget) or adset (a TikTok ad group / a Snapchat ad squad)
-
idstring requiredThe campaign or ad set (get_platform_performance shows its daily_budget)
-
daily_budgetnumber requiredThe new daily budget, in the ad account's currency (not cents or micro)
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": "set_platform_daily_budget",
"arguments": {
"platform": "tiktok",
"ad_account_id": "7000000000000000001",
"level": "campaign",
"id": "120200000000000001",
"daily_budget": 50
}
}
} 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":"set_platform_daily_budget","arguments":{"platform":"tiktok","ad_account_id":"7000000000000000001","level":"campaign","id":"120200000000000001","daily_budget":50}}}' 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
TikTok and Snapchat: list_ad_accounts, list_campaigns, list_adsets, list_ads, get_launch_questions and prepare_launch take platform: "tiktok" or "snapchat" (default "meta"); launch and launch_status follow the plan whatever its platform: the same interview, the same recap, the same explicit yes. The tools below read their numbers and change their status and budgets, one platform at a time: money in the ad account's currency, days in its time zone, TikTok and Snapchat never added up.
get_platform_overview: One TikTok or Snapchat ad account's totals over a period: spend, impressions, clicks, CTR, CPC, CPM, reach, purchases, revenue, ROAS, CPA, add to carts. For Meta:get_account_overview.get_platform_performance: One row per campaign, ad set (TikTok ad group, Snapchat ad squad) or ad, with its status, daily budget and metrics, sorted by spend by default. TikTok's Smart+ ads included.get_platform_daily_breakdown: Day by day (92 days at most, every day listed) for the ad account or one campaign, ad set or ad, with the period's totals. For Meta:get_daily_breakdown.get_platform_top_performers: The best and the worst ads, ad sets or campaigns by a metric, among those that spent: what to scale, what to cut. For Meta:get_top_performers.list_targeting: TikTok interests, behaviors and languages, Snapchat interests and countries, with the launch field their ids go in. Meta's targeting:search_targeting.list_tiktok_posts: TikTok Spark Ads: the existing posts a launch can run as ads, keeping their likes and comments.source: "account"(default): the video posts of one of the brand's TikTok accounts (the first one, oridentity_idfrom the launch interview), a page at a time;source: "authorized": the posts creators authorized for this ad account. Each post says whether it can run and gives itsspark_postforprepare_launch.list_tiktok_music: TikTok carousels (image ads run with a music): the music of TikTok's carousel library a launch can use.q: a keyword (e.g. "upbeat"); without one, the music this ad account used. Each gives itsmusic_idforprepare_launch(tiktok.ad_settings.music_id); none given, TikTok picks one for each carousel at the launch.list_platform_templates: TikTok and Snapchat: the Quick Bulk Edit templates saved in the Apogee app ("Save as template" in the ad group / ad squad and ad params), per ad account.level: "adgroup": an ad group's (TikTok) or an ad squad's (Snapchat) settings;level: "ad": an ad's (TikTok account, texts, URL, call to action…).prepare_launchuses one as its base:tiktok.adgroup_template_id/tiktok.ad_template_id,snapchat.adsquad_template_id/snapchat.ad_template_id. Saving and deleting templates stay in the app.set_platform_status: Prepares pausing or turning on TikTok or Snapchat campaigns, ad sets or ads;execute_actionruns it after your OK. TikTok GMV Max and legacy Smart+ campaigns, and the ads TikTok generates inside Smart+ ad groups, are changed in TikTok Ads Manager.